The Super NES Controller (SHVC-005, SNS-005, SNS-102) is very similar to the NES's 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 Virtual Boy controller likewise returns button states in nearly the same order, with the right Control Pad corresponding to ABXY on the Super NES.
The last 4 bits will always read 0 from a standard SNES controller. Other values here may indicate other devices, such as a mouse or a Virtual Boy controller.
After the 16 bit report, subsequent bits will read as 1.
An incomplete list of NES games with special support for SNES controllers:
- Standard controller at SNESdev Wiki
- ↑ FullSNES: SNES Controller Hardware ID Codes
- ↑ Nova the Squirrel (WIP) - forum post discussing SNES controller support.
- ↑ Tweet by E.C. Myers