Four player adapters

From NESdev Wiki
Revision as of 14:42, 5 March 2022 by Fiskbit (talk | contribs) (Adds information about the JoyPair and more detail about simple 4p devices.)
Jump to navigationJump to search

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. The Famicom has its own adapters, such as the Hori 4 Players Adapter. See Famicom Adapters below.

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.

Additionally, rather than being directly connected to the NES the NES Satellite transmits the controller signals to a receiver over wireless radio.

One PAL variation of the Four Score (NESE-034) can only read corresponding PAL controllers (NES-004) due to diodes on its inputs. See: Standard controller: PAL

Protocol

Input ($4016 write)

7  bit  0
---- ----
xxxx xxxS
        |
        +- Controller read strobe

This is used to strobe the OUT line of all 4 connected controllers at once.

This is normally written with bit 0 set, then again with bit 0 clear to poll the controllers before reading them out.

See: Controller reading

Output ($4016/$4017 read)

7  bit  0
---- ----
xxxx xxxD
        |
        +- Serial controller data

When the Four Score mode switch in the "4" position, it can be read like this:

  1. Read $4016 D0 8x for the 8 bit report from controller #1.
  2. Read $4016 D0 8x for the report from controller #3.
  3. Read $4016 D0 8x for the signature: three zeroes, followed by one 1, followed by four zeroes
  4. Read $4017 D0 8x for the report from controller #2.
  5. Read $4017 D0 8x for the report from controller #4.
  6. Read $4017 D0 8x for the signature: two zeroes, followed by one 1, followed by five zeroes

This allows 8 bits to be read from each of the 4 attached controllers. This is suitable for standard controllers which only report 8 bits on D0.

The signatures can be used to detect the presence of the Four Score or Satellite.

After reading all 8 bits of the Signature for either register, all subsequent reads return a value of 1.

The Four Score does not connect lines D3 or D4, so the Zapper is incompatible. The Satellite has a CTRL/GUN switch that can enable this, but not in 4-player mode. When the Four Score mode switch is in the "2" position it will operate as if controllers #1 and #2 were directly connected, ignoring the other 2 ports and not producing a signature byte.

Famicom Adapters

"Simple"

Because the Famicom only has one expansion port, a device such as the JoyPair or Twin Adapter is required to attach multiple controllers to it. Standard expansion controllers respond on D1 of $4016, and these multi-port devices redirect the second port to D1 of $4017. These may be used as players 3 and 4, though in 1- or 2-player games for the Famicom there is a convention to OR the D1 and D0 bits read to allow players to use an external controller as a substitute for the hard-wired ones. The SNES reused this convention.

The expansion ports on these multi-port devices do not pass through all of the signals and thus are limited in functionality compared to the console's expansion port.

     JoyPair CN1 |  | Famicom EXP
-----------------+--+-----------------
         GND  01 |--| 01  GND
        OUT0  12 |<-| 12  OUT0
 Joypad 1 D1  13 |->| 13  Joypad 1 D1
Joypad 1 /OE  14 |<-| 14  Joypad 1 /OE
          5V  15 |--| 15  5V

     JoyPair CN2 |  | Famicom EXP
-----------------+--+-----------------
         GND  01 |--| 01  GND
        OUT0  12 |<-| 12  OUT0
 Joypad 1 D1  13 |->| 07  Joypad 2 D1
Joypad 1 /OE  14 |<-| 09  Joypad 2 /OE
          5V  15 |--| 15  5V

(All other JoyPair pins not connected)

Hori 4 Players Adapter

This adapter plugs into the Famicom 15-pin expansion port, and has 4 identical 15-pin ports on it to attach individual controllers. It has a mode switch with two settings, labelled "2" and "4". It is the same as a Four Score, but with its lines connected a little bit differently.[1]

Ports 1 and 2 of the adapter behave in a way that is compatible with how other Famicom expansion controllers work. Ports 3 and 4 can be enabled with the mode switch set to "4", allowing four expansion controllers to be read through $4016/4017 D1 similar to the Four Score's report through D0.

Unlike the Four Score and Satellite this has no turbo feature.

Mode 2

This is the same as the Four Score's mode "2", but using D1 instead of D0. $4016 D1 reports bits directly from controller port 1, and $4017 D1 from port 2. Port 3 and 4 are not read, and there is no signature byte. Any extra bits read are simply an extended report from the port 1/2 devices. This behaves the same as the "Simple" mode above and below.

Mode 4

This is a very similar protocol to the Four Score adapter described above, with two differences:

  1. The serial stream comes through D1 rather than D0.
  2. The signature bytes swap ports.

In this mode the 4 Players Adapter actually adds 4 gamepads to the 2 built into the Famicom, potentially allowing 6-player games. However, its intended purpose seems to be offering 4-player support without requiring the hard-wired controllers.

Hardware

Inside the Four Score and Famicom Four Player Adapter is a 22-pin DIP labelled FPA-S01.

The actual IC inside the Four Score consists of two shift registers, two counters, two multiplexers, and a decoder, allowing the game to receive the contents of the first and third joypads in series, followed by the signature byte.

In case you want to build the Four Score into an arcade cabinet or some other permanent installation, you don't need to use a Four Score: you just need six total shift registers. The inputs to these shift registers are parallel, so you need separate wires for each signal, like from SMS or ZX Spectrum controllers.

Compatible games

Games known to support 3 or more simultaneous controllers:

Game Hori 4-player Adapter Four Score Simple
A Nightmare on Elm Street yes yes ?
Bomber Man II (J) no no yes
Bomberman II (U) no yes ?
Downtown Nekketsu Koushinkyoku: Soreyuke Daiundoukai yes yes yes
Gauntlet II no yes no
Greg Norman's Golf Power yes yes ?
Harlem Globetrotters no yes ?
Ike Ike! Nekketsu Hockey Bu: Subette Koronde Dai Rantou no ? yes
Indy Heat yes yes ?
Kings of the Beach yes yes ?
Kunio-kun no Nekketsu Soccer League no unlikely yes
M.U.L.E. no yes ?
Magic Johnson's Fast Break yes yes ?
Millionaire (Sachen) no no yes
Moero TwinBee: Cinnamon-hakase o Sukue! no ? yes
Monster Truck Rally no yes ?
NES Play Action Football yes yes ?
Nekketsu Kakutou Densetsu no ? yes
Nekketsu Koukou Dodge Ball Bu no ? yes
Nekketsu Street Basket: Ganbare Dunk Heroes no ? yes
Nintendo World Cup (U) yes yes ?
R.C. Pro-Am II yes yes ?
Rackets and Rivals no yes ?
Roundball: 2-on-2 Challenge no yes ?
Smash T.V. (twin-stick for 2 players) no yes ?
Spot yes yes no
Super Jeopardy! yes yes ?
Super Off Road yes yes no
Super Spike V'Ball everywhere but title screen everywhere but title screen yes
Swords and Serpents no yes ?
Top Players' Tennis yes yes ?
U.S. Championship V'Ball only during 3+player gameplay only during 3+player gameplay yes
Wit's yes yes yes

Homebrew games:

  • Double Action Blaster Guys becomes Quadruple Action Blaster Guys when Four Score is connected (NES)
  • Micro Mages (NES and Famicom)
  • NESert Golfing (NES and Famicom)
  • Spacey McRacey (NES)
  • Super PakPak (NES and Famicom)

Tech demos:

  • Eighty (NES and Famicom)
  • allpads (NES and Famicom)

Hacks:

  • Battle City - 4 Players v1.3 Ti (NES and Famicom)
  • Battle City Mario - 4 players v1.0 NesDraug (NES and Famicom)
  • Battletoads - 4 players v2.2 NakeuD2007 (emulator only)
  • Battletoads & Double Dragon - 4 players v0.9 NakeuD2007 (emulator only)
  • Super Dodge Ball - 4 Player Hack v1.00 akatranslations (Famicom)

References

  1. Forum post: Analysis of Wit's controller reading, and speculation about the Hori 4 Players adapter.