The ZX Spectrum +2B machine I picked up in London offers two joystick ports. The control stick that arrived with my unit is wired for use with Atari compatible devices, rather than being Sinclair compatible. For instance, moving the stick to the right, triggers the “fire” action, and other directions do not respond. Digging deeper, the user manual provides the following section:
Note the line that reads: “Other types of joystick (eg. Atari) will not operate directly, as their connecting plugs are wired differently.”
Taking a quick look at the specification for an Atari wired joystick, there doesn’t seem to be anything truly different about the actual hardware other than the arrangement of the pins. To test this idea, I built a proof of concept that simply re-orders the pins from one connector to another.
Next, I created a mapping of the pin arrangements to quickly identify the corresponding directions and button pins between the two devices. The map, as shown in the chart, provides the corresponding pins and the colors that are assigned to the cable. (note, if you decide to use a similar approach, you should verify the cable colors and pins are correct or make the necessary adjustments) .
After soldering the correct pins onto a DB9 male plug, I have a working prototype. Initial tests seem positive and I plan to improve the build with a 3d printed case. You can watch the videos of this build in both summary and extended play versions. The summary version quickly wraps up the overall project in a 7 minute video. The extended version gives you 30 minutes of exploration, planning, soldering, and testing.