Commodore CD32 gamepad - retronicdesign/USBJoystickAdapter_v3.2 GitHub Wiki
PIN | FUNCTION |
---|---|
1 | Up |
2 | Down |
3 | Left |
4 | Right |
5 | Load/Shift |
6 | Red Button/Clock |
7 | +5v |
8 | Gnd |
9 | Blue Button/Serial data |
The Commodore CD32 controller was intended for the CD32 game console released in the mid '90. This controller use a serial shifting method to read its extra buttons via existing pins/buttons of the standard Atari style controller pinout scheme. This is no surprise for Commodore to use this technique in order to be backward compatible with the Atari standard. In fact, this controller would work on an Atari 2600/Commodore 64/Amiga using only its red button for trigger.
This "modern" controller uses a serial shifting method to read its extra buttons, mostly like Nintendo did. This method is invoked by clearing and starting the shift register via pin 5 (load/shift) low-high-low. Then, pulse pin 6 (clock) low-to-high to shift button inputs through the serial data pin 9. Buttons are stored in an 8-bit register that reads as follow:
BIT | FUNCTION |
---|---|
0 | Blue button |
1 | Red button |
2 | Yellow button |
3 | Green button |
4 | Right shoulder |
5 | Left shoulder |
6 | Pause button |
7 | always 1 |
Reading sequence looks like this: Note: Allow around 100μs for the 74LS165 to read a change of state on its inputs.