Controller connector: Difference between revisions

From SNESdev Wiki
Jump to navigationJump to search
(Reformats the pinout to match our typical layout (names and directions in the diagram). De-densifies the information. Adds more detailed signal descriptions.)
m (Fixes JOY register typo.)
 
Line 29: Line 29:
* '''OUT0''': Output to the controller, used on standard controllers to latch the current button state. Written manually via [[MMIO_registers#JOYOUT|JOYOUT]] D0 or automatically during autoread.
* '''OUT0''': Output to the controller, used on standard controllers to latch the current button state. Written manually via [[MMIO_registers#JOYOUT|JOYOUT]] D0 or automatically during autoread.
* '''joypad 1 /OE''', '''joypad 2 /OE''': Clocks the joypad. Asserted when reading [[MMIO_registers#JOYSER0|JOYSER0]] (joypad 1) or [[MMIO_registers#JOYSER1|JOYSER1]] (joypad 2) and during autoread.
* '''joypad 1 /OE''', '''joypad 2 /OE''': Clocks the joypad. Asserted when reading [[MMIO_registers#JOYSER0|JOYSER0]] (joypad 1) or [[MMIO_registers#JOYSER1|JOYSER1]] (joypad 2) and during autoread.
* '''joypad 1 D1..0''': Controller input read manually via [[MMIO_registers#JOYSER0|JOYSER0]] D1..0 or automatically via [[MMIO_registers#JOY1|JOY1]] (D0) and [[MMIO_registers#JOY2|JOY2]] (D1).
* '''joypad 1 D1..0''': Controller input read manually via [[MMIO_registers#JOYSER0|JOYSER0]] D1..0 or automatically via [[MMIO_registers#JOY1|JOY1]] (D0) and [[MMIO_registers#JOY3|JOY3]] (D1).
* '''joypad 2 D1..0''': Controller input read manually via [[MMIO_registers#JOYSER1|JOYSER1]] D1..0 or automatically via [[MMIO_registers#JOY3|JOY3]] (D0) and [[MMIO_registers#JOY4|JOY4]] (D1).
* '''joypad 2 D1..0''': Controller input read manually via [[MMIO_registers#JOYSER1|JOYSER1]] D1..0 or automatically via [[MMIO_registers#JOY2|JOY2]] (D0) and [[MMIO_registers#JOY4|JOY4]] (D1).
* '''joypad IO D7..6''': Bidirectional IO bits accessed through [[MMIO_registers#RDIO|RDIO]] and [[MMIO_registers#WRIO|WRIO]] D7..6. D7 also functions specially as a light pen input via [[PPU_registers#OPHCT|OPHCT]] and [[PPU_registers#OPVCT|OPVCT]].
* '''joypad IO D7..6''': Bidirectional IO bits accessed through [[MMIO_registers#RDIO|RDIO]] and [[MMIO_registers#WRIO|WRIO]] D7..6. D7 also functions specially as a light pen input via [[PPU_registers#OPHCT|OPHCT]] and [[PPU_registers#OPVCT|OPVCT]].



Latest revision as of 10:47, 12 January 2024

Pinout

Port 1
  _
 / \
| 7 | -- GND
| 6 | <> joypad IO D6
| 5 | <- joypad 1 D1
|---|
| 4 | <- joypad 1 D0
| 3 | -> OUT0
| 2 | -> joypad 1 /OE
| 1 | -- +5V 
|___|

Port 2
 ___
|   |
| 1 | -- +5V
| 2 | -> joypad 2 /OE
| 3 | -> OUT0
| 4 | <- joypad 2 D0
|---|
| 5 | <- joypad 2 D1
| 6 | <> joypad IO D7
| 7 | -- GND
 \_/

Signal descriptions

  • OUT0: Output to the controller, used on standard controllers to latch the current button state. Written manually via JOYOUT D0 or automatically during autoread.
  • joypad 1 /OE, joypad 2 /OE: Clocks the joypad. Asserted when reading JOYSER0 (joypad 1) or JOYSER1 (joypad 2) and during autoread.
  • joypad 1 D1..0: Controller input read manually via JOYSER0 D1..0 or automatically via JOY1 (D0) and JOY3 (D1).
  • joypad 2 D1..0: Controller input read manually via JOYSER1 D1..0 or automatically via JOY2 (D0) and JOY4 (D1).
  • joypad IO D7..6: Bidirectional IO bits accessed through RDIO and WRIO D7..6. D7 also functions specially as a light pen input via OPHCT and OPVCT.

Standard controller wiring

Color Pin Name
White 1 +5V
Yellow 2 joypad /OE
Orange 3 OUT0
Red 4 joypad D0
Brown 7 GND