While looking at the standard Atari 2600 and Genesis pinouts a while back...
- Atari
1... Up
2... Down
3... Left
4... Right
5... Paddle
6... Button
7... +5v
8... GND
9... Paddle
Genesis
1... Up
2... Down
3... Left
4... Right
5... +5v
6... Button A/Button B
7... Select
8... GND
9... Start/Button C
...it occurred to me that if you switched pins 5 and 7, you might be able to control the Select line of the multiplexer in the Genesis controller with the Paddle line. (Some Genesis buttons share wires; the status of one pair of buttons is returned when the Select line is hi, and the status of another pair of buttons is returned when Select is low.)
The first test confirmed the theory, but it was apparent I needed a pull-up resistor between 5 and 7, to allow the Paddle cap to charge again after a button press. I found that a 10k resistor did the trick.
Buttons A, B, C, and Start can be read with this configuration, and I believe with a bit of software protocol work that the remaining buttons on a 6-button pad can be read too.
While this isn't as slick as the 2-button read, since it involves modification to the pad, it's still pretty cool to be able to read the additional Genesis buttons on a 2600 for a 10 cent investment. And given that genesis compatible pads can be bought for around $5, it would be viable to sell a modified pad with a homebrew title that required multiple buttons.
In case anyone decides to tread down this road someday, a sample program to report the 4 buttons on a Genesis pad follows...
3buttonread.asm.txt 1.52K
42 downloads
3buttonread.bin 4K
30 downloadsSomeday I'm gonna hack this into Defender 2 and play it in all of 4 button glory it deserves!














