Atari 2600 video game was one of the first TV games which became widely succesful. Atari 2600 video game used 9 pin digital joystick interface which later became a de-facto standard in home computer industry. I could not find original Atari 2600 spacs, but here is the specs from Commodore 64 interface which uses the same pinout.
Pin Color Function 1 White Up 2 Blue Down 3 Green Left 4 Brown Right 5 no contact 6 Orange Fire button 7 Red +5V, max. 50 mA 8 Black Ground 9 no contactHere is a typical circuit diagram sor Atari 2600 stick:
The original ATARI 2600 video game set some kind of se-facto standard for 9 pin digital joystick connector. Theat system supported onlu one buttons and lately different manufacturers added more buttons using different methods. Also Atari made some changes to orignal design in it's 7800 video game.
From: galt%asylum.cs.utah.edu@cs.utah.edu (Greg Alt)
_________________ \ o5 o4 o3 o2 o1/ \ o9 o8 o7 o6 / \___________/ pin # 2600 control 7800 control 1 WHT- Up WHT- Up 2 BLU- Down BLU- Down 3 GRN- Left GRN- Left 4 BRN- Right BRN- Right 5 unused RED- Button (R)ight (-) 6 ORG- Button ORG- Both buttons (+) 7 unused unused 8 BLK- Ground(-) BLK- Ground(-) 9 unused YLW- Button (L)eft (-)2600 control (button)
pin 6 ORG(+) --------------()------------BLK(-) pin 87800 control (buttons)
Button
/----------YLW(-) pin 9 Button L / /---------()---| YLW splits / \----/\/\/-----\ pin 6 ORG(+) -------| ORG splits 520 ohm |---BLK(-) pin 8 \ /----/\/\/-----/ \---------()---| 520 ohm Button R \ RED splits \----------RED(-) pin 5
Atari Enhanced Joystick Port is used in Atari STe, Atari Falcon030, Atari Jaguar games console, C-Lab Falcon mk II, and other C-LAB Falcon clones. An EJP is a female 15 pin high density D connector. The connector on the joypad or other device to plug into it is consequently a male high density 15 pin D connector.
Looking into the port on the computer, the connector looks something like this:
-------------------------------------------------- \ * * * * * / \ 5 4 3 2 1 / \ / \ * * * * * / \ 10 9 8 7 6 / \ / \ * * * * * / \ 15 14 13 12 11 / \________________________________/The pins are nominally allocated as follows. Please note, however, that this is according to the Falcon030 manual:
PORT A PORT B ====== ====== 1 - UP 0 1 - UP 1 2 - DOWN 0 2 - DOWN 1 3 - LEFT 0 3 - LEFT 1 4 - RIGHT 0 4 - RIGHT 1 5 - PADDLE 0 : Y AXIS 5 - PADDLE 1 : Y AXIS 6 - FIRE 0/LIGHT GUN 6 - FIRE 1 7 - Vcc (+5V DC) 7 - Vcc (+5V DC) 8 - Not connected 8 - Not connected 9 - GROUND 9 - GROUND 10 - FIRE 2 10 - FIRE 3 11 - UP 2 11 - UP 3 12 - DOWN 2 12 - DOWN 3 13 - LEFT 2 13 - LEFT 3 14 - RIGHT 2 14 - RIGHT 3 15 - PADDLE 0 : X AXIS 15 - PADDLE 1 : X AXIS
Port actually consists of a pair of analogue to digital convertors, as well as a number of digital input lines and digital output lines. In principal, therefore, the EJPs can be wired up to form a quite sophisticated I/O port.
There is a large FAQ on Atari Enhanced Joystick Ports at http://www.gamesx.com/controldata/ejp_faq.htm. This short description of Atari Enhanced Joystick Ports is based on the information from that FAQ.
Sega genesist used a little but different approach in joystick connection than Atari. Because it seem that there are lots of Sega joysticks also loating around and people want to convert them to other videogames or computer, I include here one schemtic whichj should help to figure out how the conversion can be done. The Sega joytick pinout seems to be the "standard" 2 button joystick configuration where pins 6 and 9 are used for buttons which ground the pin when pressed. The only strange thing is that the joystick seems to want +5V also at pin 5.
Pin Joystick 1 Forward 2 Back 3 Left 4 Right 5 +5V 6 Button 1 7 +5V 8 GND 9 Button 2Sega has added more buttons to it's newer joystick models (there are 3 and 6 bitton models). Those joysticks use basically the same interface, but more buttons are added by extra electronics which multiplexes the new button signals with the existing joystick signals using control bit in connector pin 7. For more information on this, check an article written by Charles Rosenberg at http://www.cs.cmu.edu/~chuck/infopg/segasix.txt. There is a good Sega Genesis joystick description available at http://www.gamesx.com/controldata/gencont.htm.
The SMS gamepads are almost exactly the same as normal "Atari" joystick, except that it has 2-buttons. It uses the following pinout:
+-----------> Power | +---------> Right | | +-------> Left | | | +-----> Down | | | | +---> Up | | | | | _____________ 5 \ o o o o o / 1 \ o o x o / 9 `~~~~~~~' 6 | | | | | +----> Button 1 | +--------> Ground +----------> Button 2
The Sega Genesis (in Europe sold as Sega MegaDrive) pads are an extension to the Sega Master System pads. They use more buttons (3+1, 5+1, 6+1). They use the one usnused pin as a select pin for reading more buttons.
Sega Saturn has eight buttons, and to transfer that, without hacks it need two select pins. Its pinout is very different from anything else:
+-----------> Select 1 | +---------> Power | | +-------> Up | | | +-----> Down | | | | +---> Ground | | | | | _____________ 5 \ o o o o o / 1 \ o o o o / 9 `~~~~~~~' 6 | | | | | | | +----> Select 2 | | +------> Right | +--------> Left +----------> PowerUp, Down, Right, Left, Power and Ground pins work basically in the same way as in "Atari" josyticks, altough they are in different pins. I have no detalis how to read the ste of all the buttons in the joystick.
Super Nintendo Entertainment System (SNES) joysticks work
differnetly compared to other joystics. SNES does not use
separate pins for every joytick function but uses special
serial protocol between the joystick and the game system.
Here is the pinout information (notice that the pin numbering might not be according
the Nintendo official numbering scheme):
----------------------------- ---------------------
| | \
| (1) (2) (3) (4) | (5) (6) (7) |
| | /
----------------------------- ---------------------
Pin Description Color of wire in cable === =========== ====================== 1 +5v White 2 Data clock Yellow 3 Data latch Orange 4 Serial data Red 5 ? no wire 6 ? no wire 7 Ground Brown
There is a description of the protocol available at http://plop.phys.cwru.edu/repairfaq/REPAIR/F_SNES.html and information how to interface the joystick to PC at http://www.csc.tntech.edu/~jbyork/. You can find a good SNES joystick pinout description at http://www.gamesx.com/controldata/snesdat.htm.
Linux Joystick porport drivers give the following pinouts:
Pinout for NES gamepads Pinout for SNES gamepads +----> Power +-----------------------\ | 7 | o o o o | x x o | 1 5 +---------+ 7 +-----------------------/ | x x o \ | | | | | | o o o o | | | | | +-> Ground 4 +------------+ 1 | | | +------------> Data | | | | | | +---------------> Latch | | | +-> Ground | +------------------> Clock | | +----> Clock +---------------------> Power | +-------> Latch +----------> Data
For the power which the joystick uses there is conflicting information availabvle. According some documents the conmtroller works at 5V, but some documents state that PSX controller is indeed designed to operate at 3.7V voltage and might not work well on 5V.
NEO GEO Controller Pins are described in document which is available at http://www.gamesx.com/controldata/neocont.htm.
TurboGrafx/Duo Controller use 15 pin connector (looks same as PC joystick connector) with the following pinout.
1 Common 10 NC 2 NC 11 Start 3 Select 12 C Button 4 D Button 13 A Button 5 B Button 14 Left 6 Right 15 Up 7 Down 8 NC 9 D ButtonThis TurboGrafx/Duo Controller Pinout is description is taken from document which is available at http://www.gamesx.com/controldata/turbocont.htm.
Sony Playstation (PSX) controllers are intelligent devices and communicate with the Playstation device using a special syncrosound serial bus and protocol. The controller system is implemented in bus architechture, which means that all signal wires are all tied together in PSX end (except select which is seperate for each device).
The Playstation Controller Pinouts (from http://www.gamesx.com/controldata/psxcont/psxcont.htm):
LOOKING AT THE PLUG
-------------------------------
PIN 1->| o o o | o o o | o o o |
\_____________________________/
PIN # USAGE 1.DATA (Signal from Controller to PSX.) 2.COMMAND (Signal from PSX to Controller) 3.N/C (9 Volts unused) 4.GND 5.VCC (can vary from 5V down to 3V) 6.ATT (select) 7.CLOCK (Signal from PSX to Controller) 8.N/C 9.ACK (Acknowledge signal from Controller to PSX)The following picture (fron Linux parallel port joystick driver document) gives a little bit better view how the signal are organized in the PSX connectroller connector. Note that the picture below uses a different pin numbering scheme than the picture above:
+---------+---------+---------+ 9 | o o o | o o o | o o o | 1 \________|_________|________/ | | | | | | | | | | | +--------> Clock | | | | +------------> Select | | | +---------------> Power | | +------------------> Ground | +-------------------------> Command +----------------------------> Data
All transmissions are eight bit serial LSB first. All timing in the PSX controller bus is syncronous to the falling edge of the clock. One byte of the transmissions will look kinda like this:
|BIT 0|BIT 1|BIT 2|BIT 3|BIT 4|BIT 5|BIT 6|BIT 7| CLOCK -----___---___---___---___---___---___---___---___----------- DATA -----000000111111222222333333444444555555666666777777-------- * * * * * * * * CMND -----000000111111222222333333444444555555666666777777-------- ACK ----------------------------------------------------------__-
More information on Sony Playstation joysticks can be found at http://www.gamesx.com/controldata/psxcont/psxcont.htm. That page includes lots of technical information and a circuit to emulate PSX controller. It might be also worth to check the following documents:
Game Station X web site at http://www.gamesx.com/ has lots of technical information on game consoles. It is a good place to look for game console joystick information.