Sunday, November 8, 2015

CoCo Conversion for SMS Joypad

I've never been a huge fan of gaming with a joypad, but many people are. With that said, I do agree that a digital gaming input can certainly be more effective than the CoCo's analog joysticks for any number of games. My preference for digital joysticks on the CoCo was strong enough to lead me to build a CoCo joystick from arcade components for use when showing Fahrfall to the general public. I even published the schematic I used for building the internals of that joystick in an earlier post on this blog.

Using an arcade stick for playing (most) CoCo games is great! But an arcade stick can be a bit large and unwieldy, and it certainly does not travel well. Having a joypad is a nice alternative, but making one from scratch is a lot to manage. Using a donor joypad is an attractive option, but which one? The NES controller fits OK, but it has more buttons than the CoCo can use. It turns-out that the SEGA Master System controller is also a good fit, and it has the same number of buttons as are supported by the CoCo3.

Part of me hates destroying one vintage device to enhance another. However, there are a lot of SMS controllers out in the wild. So, I made the call to sacrifice an SMS controller in order to make the world better for CoCo users! If you think this was a bad choice, well, then I hope you'll forgive me and move on... :-)

Peeking Inside

As a first step, we must open the SMS controller. Inside (at least for the ones I have seen), there are a couple of small PCBs with conductive pads for all the buttons.

The wires from the joystick cable connect to the edge of the PCB holding each button, and a small wire connects the two PCBs for a shared ground signal. This is about as simple as things get..

Cut and Splice

Removing the wires on the direction pad made room for installing the resitors needed for the circuit that turns the button inputs into the analog signals needed by the CoCo. The existing PCB had most of the connections needed, but one problem is that the original SMS controller circuit had each button designed to pull a signal to ground when pressed. As a result, there was one trace that connected to all four direction buttons.
Direction PCB w/ central ground connection
The CoCo circuit needs two of the buttons to connect to Ground, but it needs the other two buttons to connect to +5V. As a results, the PCB needed to be modified to accommodate that connection. A hobby knife was useful here both for breaking the connections and for scraping away enough solder mask to allow for new connections to be made.
Direction PCB w/ modification
Once the direction PCB was modified, it was a trivial (if somewhat tedious) operation to attach the eight resistors need to implement the switched voltage divider circuit used to feed the CoCo's analog joystick inputs.

"Big" resistors connected
One axis completed

Both axes completed
Twist and Tuck

With the resistors added to the direction PCB, all that is left are the finishing touches. The existing cable was retained, but the connector was removed and replaced with the CoCo's 6-pin DIN joystick connector. The wires were connected to the existing PCB holes for the two buttons and ground, and directly to the resistor leads for power and the direction axes. A little creative twisting and some nip and tuck made everything fit neatly back into the original SMS housing.

With everything sealed-up, I used a standard label maker to indicate what I had done. Maybe you can dress yours up more nicely?

That is pretty much it! Please refer to the joystick schematic from my earlier posting for more information about the switched voltage divider circuit. Thanks for reading, and happy CoCo-ing!

No comments:

Post a Comment