Posted By: Darksaviour69
via gtpunch blog
When I wanted to play Paperboy on my ZX Spectrum, I went out to the shops and bought a Kempston Interface so that I could plug in a proper joystick. Seems only logical then that I should want the same thing for playing Paperboy on my Xbox 360.
I went over to EB Games and bought an ugly blue GameStop wired controller. It's not as nice as an official Microsoft one, but has the big advantage of being half the price (especially important in case I screw up and break it). As a bonus it has no funny 'Torx-with-a-hole-in' security screws, and has nice big contacts on the directional pad for easy soldering.
Once I'd soldered the leads onto the board, I plugged the controller into my PC and tested the connections' relative voltages looking for a common ground etc. I played around cross-connecting them in different ways using the driver properties dialog to see what inputs the controller was seeing. Unfortunately there was no common ground, which a standard 'Atari' DB-9 joystick uses. Even more unfortunately any cross-connections (e.g. connecting the 'up' +ve to the 'button A' -ve) caused other inputs to be detected. I found an easy place to access the USB +5v and ground, but I needed to keep this isolated from the signals on the pads. I came up with the idea of using a Phototransistor Optocoupler for each signal. It works like a solid state relay. The joystick plugged into the DB-9 connector switches each optocoupler, which simulates the button press. I can add more detail on this if anyone's interested in replicating this.
The Kempston joystick replaces the directional pad, with the 'fire' button mapped to Button A. The standard Atari-style pinout only allows for one joystick button, and the majority of retro arcade titles only need Button A.
for more info and pics read gtpunch blog