NES Technical Document

Famicom Four-Player Adapters

Richard Hoelscher - December 11, 2003

Overview

Most models of the Nintendo Famicom are equipped with an expansion port for alternative controllers, such as keyboards and light guns. To support up to four players, the expansion port can be equipped with either an adapter to support two additional controllers, or a joystick equipped with an secondary expansion port that will route data from the fourth controller to the primary expansion port.

PIN #Famicom Expansion PortController Device
1GNDGND
7PORT1-D1JOYPAD #4 DATA
9PORT1-CLKJOYPAD #4 CLOCK
12OUT0STROBE
13PORT0-D1JOYPAD #3 DATA
14PORT0-CLKJOYPAD #3 CLOCK
15+5V+5V

GND, STROBE, and +5 are identical to the ones used for joypads #1 and #2. PORT0-CLK is shared by controllers #1 and #3, and PORT1-CLK is shared by controllers #2 and #4.

With a four player adapter, the data lines (PORT0-D1 and PORT1-D1) are connected directly to each controller. On a joystick that features an expansion port, PORT1-D1 on the primary expansion port is wired to PORT0-D1 on the secondary expansion port.

How It Works

In four player Famicom games, a read of each joystick port will return a byte in the form of "010000XY" (binary), where Y is the bit returned from D0, and X is the bit returned from D1. In most cases, the game will read and extract each bit 8 times to get a complete set of controller data that can easily be stored in a single byte.

NES Incompatibility

The NES was designed to accommodate the use of the light gun and robot that were already being used for the Famicom, without making the console more complicated. To accommodate this without redesigning their devices and programs, the ports of the removable joysticks were equipped not only with data line D0, but also D3 and D4. Unfortunately, this prevented games that used other methods of communicating with the Famicom expansion port, including keyboard and four player games, from being released on the NES without major modifications.

To accommodate four player gaming on the NES, Nintendo released the Satellite and Four Score, which requires games to support another method of reading the joystick ports (first eight reads come from the first controller on the port, second eight reads come from the second controller on the port, followed by another 8 reads that includes a signature, letting the game know whether or not a four-player device is plugged in).