Nintendo NES and SNES joystick controller

Nintendo NES and SNES controller connectors: pinouts, the 4021 shift-register serial protocol, button bit order and the Zapper data lines.

The Nintendo Entertainment System (NES — the Famicom in Japan, 1983; North America, 1985) and the Super NES (SNES, 1990/1991) standard controllers report their buttons as a serial bitstream. The console latches all button states into a parallel-in/serial-out shift register — a 4021 — inside the pad, then clocks the stored bits out one at a time on a single data line. A pressed button reads as a logic 0. The NES pad uses one 4021 (8 buttons); the SNES pad chains two (16 bits, of which 12 are buttons). Both run on 5 V logic.

NES controller

NES/SNES controller, 7-pin

  1. +5VDC supply
  2. D3 (extra data in at $4017; unused by the standard pad)
  3. D4 (extra data in at $4017; unused by the standard pad)
  4. GND
  5. CLK (clock)
  6. Latch
  7. Data out

The NES starts the show by sending a high pulse down the Latch line, which makes the 4021 (8-bit shift register) inside the controller grab and store the state of all buttons.

Then the NES sends a series of eight low pulses down the CLK line, which makes the controller shuffle bits (one for each CLK pulse) down the Data Out line according to which buttons were pressed when latched. A low bit on the Data Out line means the button is pressed.

NES button order (one per clock pulse): A, B, Select, Start, Up, Down, Left, Right.

SNES controller

The SNES controller uses the same latch/clock/data protocol, but chains two 4021 registers to shift out 16 bits — 12 buttons followed by four bits that always read 0. Its 7-pin plug:

PinSignalDescription
1+5 VPower
2ClockShift clock from the console
3LatchLatch / poll pulse from the console
4DataSerial data, controller → console
5Second data line (used by some peripherals)
6I/OGeneral-purpose I/O (peripherals such as the Super Scope)
7GNDGround

SNES button order (16 clock pulses): B, Y, Select, Start, Up, Down, Left, Right, A, X, L, R, then four bits that always read 0.

Notes

  • On the NES, pins 2 and 3 are the console port’s extra data-in lines (D3 and D4, read at register $4017). The standard pad leaves them unconnected; peripherals use them — for example, the Zapper light gun returns its light-sense and trigger states on these lines, and the Arkanoid paddle also uses the port’s extra pins.
  • A button reads as logic 0 (low) when pressed; the console typically polls the controller once per video frame.
  • The SNES needs 16 bits because its pad has 12 buttons, more than a single 4021’s 8 stages; the NES, with 8 inputs, uses one 4021.

References

Category:VideoGame Connectors