Four player adapters
The NES Four Score and NES Satellite accessories allow four NES controllers to be connected to the NES's two controller ports. Controllers connected to this accessory are read using the same process as the standard controller. After the normal 8 reads from one port to get one controller data, 8 more are done to get another controller.
Note that the NES Four Score is not compatible with the convention widely used on the Famicom, which connects the 3rd and 4th players to data bit 1 instead of bit 0. That functionality is described in greater detail on the standard controller article.
D3 and D4 are not connected on the Four Score, so accessories like the Zapper and Power Pad will not work with it. The Satellite has a separate "CTLR GUN" mode switch to permit use of the Zapper. (The Four Score has a similar switch for 2-player mode, but it merely disables the multi-tap feature, it still can't pass the extra lines.)
On both devices there are additional switches for turbo fire on the A and B button reports, which apply to all 4 ports.
Protocol
Input ($4016 write)
7 bit 0 ---- ---- xxxx xxxS | +- Controller shift register strobe
Writing 1 to this bit will record the state of each button on the controller. Writing 0 afterwards will allow the buttons to be read back, one at a time.
Output ($4016/$4017 read)
7 bit 0 ---- ---- xxxx xxxD | +- Serial controller data
- Read $4016 8 times to get the 8 buttons for controller #1.
- Read $4016 8 more times to get the buttons for controller #3.
- Read $4016 8 more times to get the signature, $10.
- Read $4017 8 times to get the 8 buttons for controller #2.
- Read $4017 8 more times to get the buttons for controller #4.
- Read $4017 8 more times to get the signature, $20.
Button status for each controller is returned in the following order, as on the standard controller: A, B, Select, Start, Up, Down, Left, Right. 1 if pressed, 0 if not pressed.
The $10 and $20 signatures are sent most significant bit first. They can be used to detect 1. whether the Four Score switch is in the 4 player position and 2. whether a DMC sample fetch caused a bit deletion.
Controllers #3, #4, and the two signatures are only sent when the Four Score switch is in the 4 player position. When the switch is in the 2 player position those reads get the same result as a normal controller, either $00 or $FF depending on the controller.
Famicom Analog
Hori's "4-Players Adapter", when its switch is set to the "4" position, uses the same protocol as the Four Score above, with two changes:
- The signature bytes swap ports, with $20 read via $4016 and $10 read via $4017
- The serial stream comes in on the next more significant bit.
As such, the "4-Players Adapter" actually adds four gamepads to the two built into the Famicom, potentially allowing six player games. However, not very many games seem to support it, and all of those combine the first two players inputs with those from the built-in controllers.
Hardware
If you find yourself in the situation where you want to use the Four Score electrical interface for a project, but don't want to use up a Four Score, you can simply use six shift registers instead. Daisy-chain three shift registers together:
If using 4021s:
IC1 IC2 IC3 .-\/-. .-\/-. .-\/-. 1A |1 16| Vcc 3A |1 16| Vcc Vcc |1 16| Vcc nc |2 15| 1B nc |2 15| 3B nc |2 15| Vcc NES P1 D0 |3 14| 1Sl ZZ |3 14| 3Sl YY |3 14| Vcc¹ 1Up |4 13| 1St 3Up |4 13| 3St Vcc |4 13| Gnd² 1Dn |5 12| nc 3Dn |5 12| nc Vcc |5 12| nc 1Lt |6 11| from ZZ 3Lt |6 11| from YY Vcc |6 11| Gnd 1Rt |7 10| NES CLK 3Rt |7 10| NES CLK Vcc |7 10| NES CLK Gnd |8 9| NES OUT Gnd |8 9| NES OUT Gnd |8 9| NES OUT '----' '----' '----'
If using 74'165s:
IC1 IC2 IC3 .-\/-. .-\/-. .-\/-. NES OUT |1 16| Vcc NES OUT |1 16| Vcc NES OUT |1 16| Vcc NES CLK |2 15| Gnd NES CLK |2 15| Gnd NES CLK |2 15| Gnd 1St |3 14| 1Up 3St |3 14| 3Up ²Gnd |3 14| Vcc 1Sl |4 13| 1Dn 3Sl |4 13| 3Dn ¹Vcc |4 13| Vcc 1B |5 12| 1Lt 3B |5 12| 3Lt Vcc |5 12| Vcc 1A |6 11| 1Rt 3A |6 11| 3Rt Vcc |6 11| Vcc nc |7 10| from ZZ nc |7 10| from YY nc |7 10| Gnd Gnd |8 9| NES P1 D0 Gnd |8 9| ZZ Gnd |8 9| YY '----' '----' '----'
For players 2 and 4, repeat the above, but change:
- NES P1 D0 becomes NES P2 D0
- 1xx becomes 2xx
- 3xx becomes 4xx
- IC3 pins denoted with ¹ and ² are swapped
Compatible games
From NesCartDB:
- Gauntlet II
- Greg Norman's Golf Power
- Harlem Globetrotters
- Indy Heat
- Kings of the Beach
- Kunio-kun no Nekketsu Soccer League
- M.U.L.E.
- Magic Johnson's Fast Break
- Monster Truck Rally
- NES Play Action Football
- A Nightmare on Elm Street
- Nintendo World Cup (and multicarts that contain it)
- R.C. Pro-Am II
- Roundball: 2-on-2 Challenge
- Smash T.V. (twin-stick for 2 players)
- Spot
- Super Jeopardy!
- Super Off Road
- Super Spike V'Ball
- Swords and Serpents
- Top Players' Tennis
Homebrew games:
- Double Action Blaster Guys becomes Quadruple Action Blaster Guys when Four Score is connected
- Spacey McRacey
- Super PakPak
Tech demos:
- Eighty
- allpads