I've decided to re-educate me on electronics and programming during this winter and thought a little retro project which might be useful for me would make a nice start. I am planing a USB Controller device around the Leonard Clones so I can use a given Set of Retro Joysticks and Game pads on my Computer. I know this has been done before, and if it was just a basic Atari 2600 Joystick Adapter, things would be a lot more easy...
This is what I want it to do:
Support Basic Commodore/Atari 2600 Joysticks,
Atari 7800 Joysticks
Sega Master System gamepads
Sega Mega Drive gamepads (3 Button Version for now, don't have a 6 Button Version)
Amiga CD32 7 Button gamepad
As I don't have paddles (yet) Support for those is optional, as well as for classic Atari/Amiga Mice. The former however are mandatory.
The Device should act as two HIDs Supporting two Pads/Joysticks
And now for the tricky Part, I want that setup to be switchless, but I don't know if this is an achievable approach?
What I have done so far is toying around with the Sega Master System Pad, Atari 7800 Pad, Commodore/Atari Joysticks. I also compiled a pin matrix to see how complicated things get, luckily I have at least a common ground for all the retro devices, VCC however has to be provided on the fly.
Now, this is a long text already so i guess I better ask my questions and provide more information accordingly:
- Is it actually possible to differentiate all the controller given in the list above? I know that Atari 2600/Commodore are just basic switches up to three Buttons, SMS Controller goes into this category as well, beside the fact that this one would need vcc on pin 5 vs vcc on pin 7 (DB9).
The Atari 7800 Controller is different already, as it would need OUTPUT HIGH on Pin 6 (DB9) to activate two Button Mode (the Buttons are pulled to ground internally with resistors). I haven't looked into Sega MD Controller at all, and CD32 "should" be easy to detect, as it needs clock and data line and I would just need to read that.
What I am concerned is speed, even if I manage to find a reasonable detection routine, as I would have to detect controller in every loop cycle since afair I cannot tell the difference between nothing connected at all or simple switch pads connected.
-
Regarding the VCC on pin 5/7 Problem, So far it seems that I really just need vcc for autofire devices (not counting yet the higher developed Controllers). I am a bit worried that they might draw to much current, however my cheapo Multimeter suggests they don't. But I haven't tested yet (much) with Sega MD and CD32 Pads, so I don't know. Would you consider this save though?
-
Regarding the CD32 Pad. What I have actually done is to look what other people did, and what I found is that they added resistors of 220 Ohm in the data/clock line. I assume this is to protect the hardware, but why? And would that approach be safe? (I really would hate to destroy the arduino, let alone my precious CD32 Honeybee Pad)
So, that's it for now, forgive the long text and possible typos.