Four player adapters: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (moved Four score to Four Score: Proper name)
Line 25: Line 25:
         +- Serial controller data
         +- Serial controller data


Read $4016 8 times to get the 8 buttons for controller #1.
#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.


Read $4016 8 more times to get the buttons for controller #3.
The $10 and $20 signatures 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.
 
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: A, B, Select, Start, Up, Down, Left, Right.  1 if pressed, 0 if not pressed.
Button status for each controller is returned in the following order: A, B, Select, Start, Up, Down, Left, Right.  1 if pressed, 0 if not pressed.


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.
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.

Revision as of 20:28, 3 October 2011

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.

D3 and D4 are not connected on the Four Score, so accessories like the Zapper and Power Pad will not work.

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
  1. Read $4016 8 times to get the 8 buttons for controller #1.
  2. Read $4016 8 more times to get the buttons for controller #3.
  3. Read $4016 8 more times to get the signature, $10.
  4. Read $4017 8 times to get the 8 buttons for controller #2.
  5. Read $4017 8 more times to get the buttons for controller #4.
  6. Read $4017 8 more times to get the signature, $20.

The $10 and $20 signatures 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.

Button status for each controller is returned in the following order: A, B, Select, Start, Up, Down, Left, Right. 1 if pressed, 0 if not pressed.

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.