Controller port pinout: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎PAL: mention the Four Score NESE-034)
(+famiclone pinouts)
Line 1: Line 1:
The NES controller pinout:
==Pinout==
         .-
                            +----------< $4017.D3         
   GND -- |O\
                            | +--------< D0               
   CLK <- |OO\ -- +5V
                            | | +------> OUT0            +------------------ GND
   OUT <- |OO| <- D3
                            | | | +----> CLK              | +--------------<> AUDIO
   D0 -> |OO| <- D4
                            | | | | +--< $4017.D4        | |          +---< D0
         '--'
         .-                 | | | | |                    | |          |
(Directions are relative to the jack on the front of the NES)
   GND -- |O\             +-------------+              +-------------------+
   CLK <- |OO\ -- +5V       \ O O O O O /                \ O O O O O O O O /
   OUT <- |OO| <- D3         \ O O O O /                  \ O O O O O O O /
   D0 -> |OO| <- D4         +-------+                    +-------------+
         '--'                 |  |                        |    |    |
                              |  +------ GND              |    |    +---- +5V
                              +---------- +5V              |    +---------: OUT0
                                                            +---------------> CLK
      NES port          9 pin famiclone port              15 pin famiclone port   
  * Directions are relative to the jack on the from of console
  * $4017.D4/$4017.D4 are available only at port 2 in consoles equipped only with 2x9pin ports
  * AUDIO might not always be available


=== PAL ===
== Protection Diodes ==


Some PAL region systems have a set of diodes on the inside of the controller port which make it incompatible with NTSC controllers.<ref>[https://forums.nesdev.org/viewtopic.php?p=238272#p238272 Forum post]: explaining PAL controller diodes and their function.</ref>
Some PAL region systems have a set of diodes on the inside of the controller port which make it incompatible with NTSC controllers.<ref>[https://forums.nesdev.org/viewtopic.php?p=238272#p238272 Forum post]: explaining PAL controller diodes and their function.</ref>
Line 23: Line 35:
These diodes are also present on the ports of the [[Four Score]] (NESE-034) accessory for this region.
These diodes are also present on the ports of the [[Four Score]] (NESE-034) accessory for this region.


=== Super NES ===
== Super NES ==


The [[wikipedia:FC Twin|FC Twin]] NES/SNES combo clone uses Super NES controllers, whose pinout is as follows:<ref>[https://wiki.superfamicom.org/schematics-ports-and-pinouts superfamicom.org]: Schematics, Ports, and Pinouts.</ref>
The [[wikipedia:FC Twin|FC Twin]] NES/SNES combo clone uses Super NES controllers, whose pinout is as follows:<ref>[https://wiki.superfamicom.org/schematics-ports-and-pinouts superfamicom.org]: Schematics, Ports, and Pinouts.</ref>

Revision as of 12:52, 12 June 2019

Pinout

                            +----------< $4017.D3          
                            | +--------< D0                
                            | | +------> OUT0             +------------------ GND
                            | | | +----> CLK              | +--------------<> AUDIO
                            | | | | +--< $4017.D4         | |           +---< D0
        .-                  | | | | |                     | |           |
 GND -- |O\              +-------------+               +-------------------+
 CLK <- |OO\ -- +5V       \ O O O O O /                 \ O O O O O O O O /
 OUT <- |OO| <- D3         \ O O O O /                   \ O O O O O O O /
  D0 -> |OO| <- D4          +-------+                     +-------------+
        '--'                 |   |                         |     |     |
                             |   +------ GND               |     |     +---- +5V
                             +---------- +5V               |     +---------: OUT0
                                                           +---------------> CLK
     NES port           9 pin famiclone port               15 pin famiclone port     
	 
 * Directions are relative to the jack on the from of console
 * $4017.D4/$4017.D4 are available only at port 2 in consoles equipped only with 2x9pin ports
 * AUDIO might not always be available

Protection Diodes

Some PAL region systems have a set of diodes on the inside of the controller port which make it incompatible with NTSC controllers.[1]

+5V --|>|-- jack
 D3 --|>|-- jack
 D4 --|>|-- jack
 D0 --|>|-- jack
OUT --|<|-- jack
CLK --|<|-- jack

With these diodes, the OUT and CLK lines have to be pulled high by the controller, or else the controller can't receive these signals. See: Standard controller: PAL

These diodes are also present on the ports of the Four Score (NESE-034) accessory for this region.

Super NES

The FC Twin NES/SNES combo clone uses Super NES controllers, whose pinout is as follows:[2]

 1 [oooo|ooo) 7  1:+5V  2:Clk  3:Out  4:D0  5:D1  6: I/O  7:Gnd

An adapter to use Super NES controllers on an NES (or NES controllers on an FC Twin) could be constructed as follows (leaving D3 and D4 unconnected):

        .-
 GND -- |7\
 CLK <- |21\ -- +5V
 OUT <- |3o| -- (D3)
  D0 -> |4o| -- (D4)
        '--'
  1. Buy two controller extension cables, one for NES and one for Super NES, and cut them apart. Strip the cut ends to reveal a small amount of bare wire.
  2. Using inline splice technique, wrap each wire from one cable with the corresponding wire from the other cable.
  3. With solder and a soldering iron, glue each wrapped pair together.
  4. With electrical tape, wrap each joint to insulate it from the other wires.
  5. Apply heat shrink around the whole assembly.

Notes

  • The signal read by the CPU is logically inverted from the signal input on the D0-4 lines. A low voltage on D0 will be read as a 1 bit from $4016/4017.
  • CLK will be low during reads from the CPU, then immediately return to high. This rising edge transition is used to clock the shift register inside the standard controller.
  • OUT is a signal latched and held from the last CPU write to $4016:0. For standard controller reads, the program will write a 1 to load the shift register, then return to 0 before reading the results.

See Also

References

  1. Forum post: explaining PAL controller diodes and their function.
  2. superfamicom.org: Schematics, Ports, and Pinouts.