SNES controller: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(linking Virtual Boy controller to point out correspondence)
(replacing wikitable with simpler monospaced text)
Line 3: Line 3:
[[Category:Controllers]]
[[Category:Controllers]]


The 16 bit report:
The 16 bit report will read, in order:
{| class="wikitable"
 
! bit !! input
  0 - B
|-
  1 - Y
| 0 || B
  2 - Select
|-
  3 - Start
| 1 || Y
  4 - Up
|-
  5 - Down
| 2 || Select
  6 - Left
|-
  7 - Right
| 3 || Start
 
|-
  8 - A
| 4 || Up
  9 - X
|-
  10 - L
| 5 || Down
  11 - R
|-
  12 - 0
| 6 || Left
  13 - 0
|-
  14 - 0
| 7 || Right
  15 - 0
|-
| 8 || A
|-
| 9 || X
  |-
| 10 || L
  |-
| 11 || R
  |-
| 12 || 0
  |-
| 13 || 0
  |-
| 14 || 0
  |-
| 15 || 0
|}


Note that the first 8 values map directly to the original NES controller's 8 inputs (SNES '''B''' = NES '''A''', and SNES '''Y''' = NES '''B''').
Note that the first 8 values map directly to the original NES controller's 8 inputs (SNES '''B''' = NES '''A''', and SNES '''Y''' = NES '''B''').

Revision as of 02:48, 21 April 2019

The SNES controller is very similar to the NES' standard controller, with a collection of digital inputs that are latched and read in series. With a suitable adapter, reading the SNES controller is like reading an NES controller with 4 extra buttons.

The 16 bit report will read, in order:

 0 - B
 1 - Y
 2 - Select
 3 - Start
 4 - Up
 5 - Down
 6 - Left
 7 - Right
 8 - A
 9 - X
10 - L
11 - R
12 - 0
13 - 0
14 - 0
15 - 0

Note that the first 8 values map directly to the original NES controller's 8 inputs (SNES B = NES A, and SNES Y = NES B).

The last 4 bits will always read 0 from a standard SNES controller. Other values here may indicate other devices[1].

After the 16 bit report, subsequent bits will read as 1.

See also

References

  1. FullSNES: SNES Controller Hardware ID Codes