Pinout at the solder side in the computer is equivalent to the pinout at the outside of the plug at the cable, pinout at the solder side of the plug at the cable is equivalent to the pinout at the outside of the computer.
(Sinclair ZX Spectrum)
|3||/Left||/Left||/Left||/Left||/Left||/Left||/Left||/Left||/Left||/Left||1Y (-, /Left)||unused||Audio.1 Out||/Left||/Left|
|4||/Right||/Right||/Right||/Right||/Right||/Right||/Right||/Right||/Right||/Right||2Y (-, /Right)||Button||Audio.2 Out||/Right||/Right|
|5||/Button 3||Paddle B||Button Right||unused||Button 3 (POTY)||/Button 3 (POTX)||Shift Load OUT||/Button 3||VCC||VCC (+5V)||VCC (+5V)||Up||VCC (+5V)||0V||/Button 3|
|6||/Button 1||/Button||Button common||/Button 1||/Button 1||/Button 1||/Fire, Clock OUT||/Button 2||/Button 1||TL (/A)||TL (/A, /B)||Right||P/S Out||/Button 1||/Button 1|
|7||VCC (+5V)||VCC (+5V)||VCC (+5V)||VCC (+5V)||VCC (+5V)||VCC (+5V)||VCC (+5V)||/Button 1||/Button 2||TH (unused)||TH (Select OUT)||Left||CLK Out (125kHz)||VCC (+5V)||VCC (+5V)|
|8||GND||GND||GND||GND||GND||GND||GND||GND (Row 9) (*5)||Strobe OUT||GND||GND||GND||GND||Joy1 GND (Strobe)||GND|
|9||/Button 2||Paddle A||Button Left||/Button 2||Button 2 (POTX)||/Button 2 (POTY)||Serial Data IN||GND (Row 6) (*5)||GND||TR (/B)||TR (/Start, /C)||Down||Serial Data In||Joy2 GND (Strobe)||/Button 2|
(*1) The Atari 7800 buttons require special wiring (Atari FAQ)
(*2) Pin9 (RMB) of the first port is shared with Pin6 (Fire) of the second port to be able to use a mouse with two buttons (in the first port). On the second port Pin9 is not connected. That means only the first port supports two buttons, and only when the second port is not used at the same time. Atari STe and Atari Falcon have two DE-15 Extended Joystick Ports, which could with a passive adapter be connected to two DE-9 joysticks (see here). Atari Jaguar Controllers also have DE-15 connectors, but with different pinout which exposes a button matrix (see here).
(*3) For the second button/right mouse button the POT X line is used (and for 3rd button/middle mouse button POTY), which - different to the other lines - must be pulled to VCC via the button.
(*4) The CD32 supports "game pad mode" and uses pin 5 to switch to it (it is pulled to active high by the CD32). Actual CD32 controllers have active components. Regular "atari" joysticks will work at the CD32, but CD32 controllers will not work at eg a C-64 (see here and here)
(*5) The respective GND lines are pulled low to select the respective "row". Regular Joystick uses row 9.
(*6) The "SEGA" controllers can not be converted into "Atari" Joysticks simply by rewiring them. Unlike regular "Atari sticks" they contain pull-up resistors for each signal line (which might interfere with scanning the keyboard on C64) and some controllers may contain active circuits and will not work without the VCC. The Megadrive controllers use an active circuit. (see here or here). Megadrive Controllers can be used as "Atari" Joysticks with a simple adapter, see here.
(*7) Pinout refers to the "Interface Two" ("Sinclair" aka "+3")
(*8) 3DO controllers use a serial interface, similar to SNES controllers.
(*9) regular "Atari" Joysticks will work on the Sam Coupé. To connect two joysticks a special interface is needed, see here.
The Apple-II uses analog joysticks and can not use the common digital joystick with the pinout shown above, see here.
The Sega Saturn controllers use a different plug and also contain an active circuit (see here).
The Sinclair-QL has completely different controller ports. (The US and German versions of the QL later made by Samsung both had standard 9 pin serial and joystick ports, meaning that any Atari standard joystick could then be used.)
The Commodore C16/C116/Plus4 have two mini-DIN ports which are electrically compatible with standard DB9 ports, so they can be used with an adapter.
The Covox Sound Master is a rare PC Soundcard that has two Atari-compatible DB9 joystick ports.
2/3 Button modification
Most traditional DB9 "Atari" Joysticks are wired for one button only, however some - such as the Competition Pro - have more than one button, so it is tempting to rewire them so the additional buttons can be used separately. This is supported by some classic Amiga and C64GS games (second button at the POTX line), and also supported by some Chameleon cores.
There have been two different ways to handle the additional buttons:
- The classic C64GS two button joystick ("Cheetah Annihilator") uses the POTX line, which when the button is pressed is connected to VCC. For a third button, the same can be done with the POTY line. These two buttons can then be read from the paddle inputs: When the button is not pressed the POT line is floating, which equals a large resistance to VCC, and will read as $FF. When the button is pressed the POT line is connected to VCC, which equals no resistance to VCC, and will read as $00.
- For use with the Amiga or the Chameleon docking station the above would not work, as their button inputs are low active (rather than "high active" as the POT lines are). So to be able to use the modified joystick with that, the respective lines must be pulled to GND rather than VCC.
Fortunately there is a switch contained in the Competition Pro Retro which is normally wired to disable the small switches. We can rewire this switch so we can toggle between pulling the POT lines to either GND for the docking station, or VCC for the C64. As a safety precaution, it is recommended to not connect the POT lines directly to VCC or GND, but to use a small resistor that acts as a current limiter in series. (Note that the classic joysticks usually do not have these)
After this modification, do NOT use the joystick on any other equipment than an Amiga, the chameleon docking station or a C-64 (or C64GS)! For this reason we recommend to somehow clearly mark it as modified (eg with a permanent marker).
Detailed instructions for modifying the Competition Pro Retro
- First open the Joystick and find out if the required wires are available in the joystick cable (if not you will have to install a new one).
- In the current (second and third) batch of the Competition Pro Retro this is the case and looks like this: (confirm this using a continuity tester / multimeter before proceeding, as it may change without notice)
Pin Signal Wire colour 9 POT X (second button) green 5 POT Y (third button) blue 7 VCC (+5V) grey
- Pull out the small PCB that carries the switch, detach the small piece of plastic foam and desolder all wires from it.
- Carefully pull out the mounting plate for the four directional micro switches
- Disconnect the (green) wires that come from the small buttons from the micro switches at the normal fire buttons
- Remove the (green) wires that come from the small buttons also from the small buttons
- Connect the POTX (blue) and POTY (green) lines that come from the joystick cable to the small buttons where the (green) wires were
- Get the switch PCB again, connect one end of the 270Ohm resistor to both of the two (orange) wires that come from the small buttons, and the other end of the resistor to the middle pin of the switch. (you may use a slightly larger resistor too, i used 330Ohm here because that was the closest i could find in my drawer :))
- cut a small piece of electrical tape and wrap it around the resistor and the blank solder point to the cable
- Connect the VCC line (grey) from the joystick cable to one side (eg left) and the leftover free (orange) cable (which is connected to GND) to the other (eg right) pin of the switch
- Now check with a continuity tester that VCC at the switch has no shortcut with any other wires. Under no circumstances it should make contact to any other lines except the POT lines (when a button is pressed and the switch is in the respective position). Double check if you are not sure.
- Attach the small piece of plastic foam to the back of the switch PCB, and reassemble the joystick in reverse order. Putting the back cover on can be a bit fiddly - very little force is needed - if it doesnt go back together easily, you may have to open the joystick again and relocate some cables slightly.
Many early home computers and game consoles came with the classic one button joystick, and supporting more than that was rare. The following list omits the later released systems where controllers with two or more buttons became standard. (like MSX, SEGA Mastersystem, etc)
Only the C64GS had some games which officially supported a second joystick button, and since the C64GS came out very late in the C64's lifespan, it never became common
- Alien 8 by Rod & Emu - 2nd button can be used for pick/drop in directional mode.
- Battle Command (Ocean Cartridge) - 2nd button toggles between tank- and menu control, hold for menu bar
- Chase HQ2 (C64GS Cartridge) - 2nd button enables turbo boost
- Double Dragon (Ocean)
- Giana Sisters 30th Anniversary Hack by The Seven-A-Three (WIP)
- Last Ninja Remix (C64GS Cartridge) - The button used to start the game becomes the "fighting moves" button, the other button becomes the "weapon select" button. The selection can be changed at the beginning of each level by pressing the respective button to start it.
- Navy Seals (Ocean) - 2nd button restarts the game
- Myth (C64GS Cartridge) - hold 2nd button to change weapon with left+right
- Pang (Ocean) - 2nd button pauses the game
- Paradroid Redux - "Press 2nd button while title screen is shown to start game in two-button mode. Use second button to go into transfer mode, first button for everything else."
- Robocop 2 (C64GS Cartridge) - optionally use 2nd button for "jump"
- Spacegun - 2nd button to change weapon
- Super Mario Bros (Zeropaige version) - optionally use 2nd button for "jump"
- Turbo Charge - 2nd button enables turbo boost
On the Amiga supporting two buttons became much more common (also due to the popular WHDLoad that allows patching games accordingly):
- 1943 (WHDLoad)
- Agony (WHDLoad/original?)
- Alien 3
- Alien Breed 2
- Alien Breed - Tower Assault
- Arabian Nights
- Battle Squadron (WHDLoad)
- BC Kid
- Black Viper
- Brutal Sports Football
- Bubble and Squeak
- Cool Spot
- Desert Strike (WHDLoad)
- Fifa International Soccer
- Fightin' Spirit
- Fire and Ice
- Football Glory
- The Great Giana Sisters (jump only)
- Hybris (WHDLoad)
- Joe & Mac: Caveman Ninja
- John Madden American Football
- Mega Typhoon
- Mega Twins (WHDLoad)
- Midnight Resistance (WHDLoad)
- Mortal Kombat
- Mortal Kombat 2
- Mr Nuts
- Nigel Mansell's World Championship
- Pegasus (WHDLoad)
- Project X
- R-Type 2
- Rainbow Islands (WHDLoad)
- Ruff'n'Tumble (WHDLoad)
- Shadow Fighter (CD32)
- Skeleton Krew
- Snow Bros
- Soccer Kid (?)
- Street Fighter 2
- Super Street Fighter 2
- Tony & Friends In Kellogg's Land
- Total Football
- Turrican II
- Turrican 3
- Xtreme Racing
- Yo! Joe!
- Joystick on c64-wiki.de (german)
- Joystick on c64-wiki.com
- Atari joystick port on wikipedia, with a familiar table in the article :)
- Amstrad CPC Joystick Port info
- Discussion Thread on English Amiga Board
- Discussion Thread on Forum 64 (german)
- Joystick Interface for the Sinclair ZX81
- Amiga Controlport Pinout, Joystick Info
- CD32 Gamepad Schematic and protocol
- Atari Interface at Deskthority wiki has another large table