Famicom Four-Player Adapters Technical Document [ v1.1 / 10.20.2002 ] [ Richard Hoelscher : http://rahga.com/contact/ ] Overview: --------- Most models of the Nintendo Famicom are equipped with 2 primary joypads an expansion port for alternative controllers, including 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. The following pinout diagram shows how the expansion port receives data for four player games (requires a fixed-width font): +------------------------+ +-------------------+ +-| Famicom Expansion Port |---+--| Controller Device |------------------+ | +------------------------+ | +-------------------+ | | | | | _ | _ | | (pin #1) \(9) | (9)/ (1) | | GND |Po| PORT1-CLK <|> JOYPAD #4 CLK |oP| GND | | SOUND |Po| OUT2 <|> |oP| | | IRQ |Po| OUT1 <|> |oP| | | PORT1-D4 |Po| OUT0(STROBE)<|> STROBE |oP| | | PORT1-D3 |Po| PORT0-D1 <|> JOYPAD #3 DATA |oP| | | PORT1-D2 |Po| PORT0-CLK <|> JOYPAD #3 CLK |oP| | | PORT1-D1 |Po| +5V <|> +5V |oP| JOYPAD #4 DATA | | PORT1-D0 |P/(15) <|> (15)\P| | | (8)/ | \(8) | | | | +------------------------------+-----------------------------------------+ 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 a the bit returned from D0, and X is a 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). Other Notes: ------------ By rewiring my Four Score and making an adapter for the NES expansion port, then plugging games like Nekketsu Kakutou Densetsu into the Famicom-to-NES cartridge adapter included with Stack-Up, I can switch between playing four-player NES and Famicom games on my NES console. I plan to post instructions at rahga.com eventually.