SNES controller interface - marcosassis/gamepaduino GitHub Wiki
SNES | Super Nintendo | Super Famicom
controllers
communication protocol and pinout
The SNES gamepad!
physical interface - connector pins
_________________
| o o o o | o o o ) looking into the controller cable
1 2 3 4 5 6 7
+5V C L D x x GND
↑ ↑ ↓
- +5V
- data clock: data driven by by console, clocks controller's shift registers
- data latch: console drives when ready to read controller, latches shift registers
- serial data: on each clock pulse (and after latch pulse) controller sends next button state
- unused
- unused
- ground
communication protocol
->| |<- 12us
___ ->| |<- 6us
data latch ___| |___________________________________________________________________
_________ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ___
data clock |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_|
_______ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ _______________________
serial data |_B_|_Y_|___|___|___|___|___|___|_A_|_X_|_L_|_R_| ? ? ? ?
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
button name/id / / | \ \ \
select start up down left right
serial data is 0V when button is pressed
example:
___ B and select pressed
data latch ___| |_________________...
_________ _ _ _ _
data clock |_| |_| |_| |_| ...
___ ___ _____...
serial data ___| |___| |___|
|<->| 12us
The SNES mouse!
physical interface - connector pins
communication protocol
biblio
Super Nintendo Entertainment System: pinouts & protocol 1996 gamefaqs mouse 2008 etc
Hardware Report - Thomas D 2008
https://gamesx.com/wiki/doku.php?id=controls:nes_snes_controller
https://learn.adafruit.com/usb-snes-gamepad/disassemble-the-snes-controller
https://dragaosemchama.com/2015/11/snes-controller-to-pc-adapter-with-arduino-micro/
http://uzebox.org/files/NES-controller-Hydra-Ch6All-v1.0.pdf