ePanorama.net - Joystick Documents


Special joysticks used in TV games

Atari 2600

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 contact
Here is a typical circuit diagram sor Atari 2600 stick:

Atari 2600 stick wiring diagram

Special 2 button Atari 7800 sticks

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%[email protected] (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 8
Button

7800 control (buttons)
                                       /----------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 Ports

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 genesis joysticks

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 2
Sega 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.

Sega master System

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           

Sega MegaDrive

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 Sarturn

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
     +----------> Power          
Up, 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 Joysticks

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

NEO GEO Controller Pins are described in document which is available at http://www.gamesx.com/controldata/neocont.htm.

TurboGrafx/Duo Controller Pinout

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 Button
This TurboGrafx/Duo Controller Pinout is description is taken from document which is available at http://www.gamesx.com/controldata/turbocont.htm.

Sony Playstation controller information

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:

More information on similar topics

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.


author: Tomi Engdahl