| Pin | Signal |
|---|---|
| 1 | Vcc 3v3 |
| 2 | Signal |
| 3 | Ground |
| Pin | Signal | Extension cable |
|---|---|---|
| 1 | Ground | Black |
| 2 | Signal | White |
| 3 | Vcc 3v3 | Red |
NOTE. Nintendo 64 provides 3.6v.
In its idle state the data line is high (3,3v).
Each bit transmitted takes 4μs of time.
| value | secuence (4μs) |
|---|---|
| 1 | 0 1 1 1 |
| 0 | 0 0 0 1 |
The first 11 bits of the two bytes are the address. The next 5 bits are CRC.
https://code.google.com/archive/p/micro-64-controller/wikis/CRC.wiki
The controller responds with three bytes to identify itself.
Response
- first byte: 0x05
- second byte: 0x05 (some: 0x00)
- third byte:
- 0x01 if there is a controller pack plugged in.
- 0x02 if there is no controller pack.
- 0x04 if the previous controller read/write address CRC showed an error.
Response
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17-24 | 25-32 | 33 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | B | Z | START | UP | DOWN | LEFT | RIGHT | unused | unused | L | R | C-UP | C-DOWN | C-LEFT | C-RIGHT | X-AXIS | Y-AXIS | stopbit |
The stopbit is always "1".
For each button a "1" represents a pressed button, and a "0" means: button released.
Parameters: 2 bytes
addres + crc
Response: 32 bytes
Contents of that address and ends with a data CRC.
Parameters: 2 + 32 bytes
addres + crc + contents
Response: 1
CRC
Response: same as 0x00
Turn on 03 C0 1B 01 01 01 ...
Turn off 03 C0 1B 00 00 00 ...
Gamecube to N64 Controller Adaptor
DreamKatz controller interface
N64 read write complex example
N64 read write complex example
N64 Controller protocol, very accurate extra information about controller pak
N64 Controller connector ~1.5€




