Four player adapters: Difference between revisions
Rainwarrior (talk | contribs) (→Output ($4016/$4017 read): mild rewrite, trying to clarify what the mode switches do, and how it would operate with other controllers) |
Rainwarrior (talk | contribs) (→Input ($4016 write): try to describe more specifically what it does, rather than assuming standard controller) |
||
Line 16: | Line 16: | ||
xxxx xxxS | xxxx xxxS | ||
| | | | ||
+- Controller | +- Controller read strobe | ||
This is used to strobe the [[controller port|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) === | === Output ($4016/$4017 read) === |
Revision as of 22:52, 1 May 2019
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 with different protocol, 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.
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:
- Read $4016 D0 8x for the 8 bit report from controller #1.
- Read $4016 D0 8x for the report from controller #3.
- Read $4016 D0 8x for the signature: $10
- Read $4017 D0 8x for the report from controller #2.
- Read $4017 D0 8x for the report from controller #4.
- Read $4017 D0 8x for the signature: $20
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 $10 and $20 are send most significant bit first. This can be used to detect the presence of the Four Score or Satellite.
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" it will operate as if controllers #1 and #2 were directly connected, ignoring the other 2 ports and not producing a signature bit.
Famicom Adapters
Famicom expansion controllers attach extra controllers to D1 of $4016 and $4017. These may be used as players 3 and 4, though in 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.
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". [1] [2]
Mode 2
More information is needed to verify this.
Presumably this is analogous to 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.
Mode 4
This is a very similar protocol to the Four Score adapter described above, with two differences:
- The serial stream comes through D1 rather than D0.
- The signature bytes swap ports, with $20 read via $4016 and $10 read via $4017
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
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
- Wit's
Homebrew games:
- Double Action Blaster Guys becomes Quadruple Action Blaster Guys when Four Score is connected
- Micro Mages
- NESert Golfing
- Spacey McRacey
- Super PakPak
Tech demos:
- Eighty
- allpads
References
- ↑ Forum post: Analysis of Wit's controller reading, and speculation about the Hori 4 Players adapter.
- ↑ Forum post: Discussion of Hori 4 Players support in Micro Mages.