Hi
I was been breaking my nuts a few days trying to find documentation related to the expansion port of the Nintendo 64 controller, and seems that this is the best place to ask for.
Apparently the comunicación protocol between the Nintendo 64 and the CNT-NUS has been hacked a long time ago, since 1999 as I found in old web pages, in honor to my interest they describe the software protocol to identify the kind of device attached to the expansion port, from where I learned that the CNT-NUS just dump to the Controller Pak a data array of 32 bytes (looks like one per pin), and that the Rumble Pak its driven like a SRAM memory in witch the system writes "1" or "0" in order to turn it on or off. They even talk about the two missing buttons of the controller ("X" and "Y")
One said that, there is a complete lack of documentation about for example the Transfer Pak, or the own protocol of the expansion port.
Looks like Nintendo never designed the port for nothing more than the Controller Pak (maybe that's why have this name instead of "Memory Pak"), apparently seeking for cost reduction in their pre-planned 64DD, not even Super Mario 64 (one of the first games, if not the first) have rumble support.
In fact the implementation of the Rumble Pak goes through the IC VDEC-CNT, a proprietary chip that seems to fake a SRAM. And not even the PSU of the system its adapted to stand the high current of multiple Rumble Pak's at onces, that is apparently the reason of why it uses double AAA batteries when is posible make it run without batteries.
The Transfer Pak was developed by Rare focused only in Perfect Dark and with the purpose in mind of read the memory of the Game Boy Camera, that later was discarded, and was the own Nintendo who reuses this device to dump the rom and save-state of Pokemon games (and a few more games).
All the info that I can find in this forum and other webpages its only relative to the communication from the system to the controller and vice versa, with the main purpose of making a USB version of the controller presumably to use it on emulators, and after that, the hijack of the signal to make a Game Cube controller compatible with the Nintendo 64 due the problems replacing the joysticks when they get weared, or even wireless/Bluetooth versions.
On the software side the Controller Pak and Rumble Pak share the same address space, but the Rumble Pak writes go to a pretty high address, outside of the Controller Pak valid area.
Games explicitly check what accessory is currently plugged, and all games supporting multiple accessories have a screen telling you to remove the Controller Pak and insert the Rumble Pak.
As far as I know games only write/read the Controller Pak if it is in the first player controller, almost if is not to make a copy of the data from one Controller Pak to another, but Rumble Pak's can be used in all controllers simultaneously, and Transfer Pak can be used independently in whatever controller port.
All the system have proprietary components, the controllers, the Rumble Pak, and the Transfer Pak, even the cartridges, so this put very hard the challenge of understand what is going on...
My purpose is to design new hardware for the controller, but I need to know the controller expansion protocol and right practices.
Some Chinese manufactures are making Nintendo 64 copycat controllers, so that means that the specifications of the CNT-NUS are already known outside Nintendo, also since their days are Controller + Rumble Pak's that with a simple switch change the device detected, so that mean that the specifications of the VDEC-CNT are also already known.
Someone can help me to find any info about this subjet? schematics about that mentioned Controller + Rumble Pak's? or the Transfer Pak?
Update:
I was been breaking my nuts a few days trying to find documentation related to the expansion port of the Nintendo 64 controller, and seems that this is the best place to ask for.
Apparently the comunicación protocol between the Nintendo 64 and the CNT-NUS has been hacked a long time ago, since 1999 as I found in old web pages, in honor to my interest they describe the software protocol to identify the kind of device attached to the expansion port, from where I learned that the CNT-NUS just dump to the Controller Pak a data array of 32 bytes (looks like one per pin), and that the Rumble Pak its driven like a SRAM memory in witch the system writes "1" or "0" in order to turn it on or off. They even talk about the two missing buttons of the controller ("X" and "Y")
One said that, there is a complete lack of documentation about for example the Transfer Pak, or the own protocol of the expansion port.
Looks like Nintendo never designed the port for nothing more than the Controller Pak (maybe that's why have this name instead of "Memory Pak"), apparently seeking for cost reduction in their pre-planned 64DD, not even Super Mario 64 (one of the first games, if not the first) have rumble support.
In fact the implementation of the Rumble Pak goes through the IC VDEC-CNT, a proprietary chip that seems to fake a SRAM. And not even the PSU of the system its adapted to stand the high current of multiple Rumble Pak's at onces, that is apparently the reason of why it uses double AAA batteries when is posible make it run without batteries.
The Transfer Pak was developed by Rare focused only in Perfect Dark and with the purpose in mind of read the memory of the Game Boy Camera, that later was discarded, and was the own Nintendo who reuses this device to dump the rom and save-state of Pokemon games (and a few more games).
All the info that I can find in this forum and other webpages its only relative to the communication from the system to the controller and vice versa, with the main purpose of making a USB version of the controller presumably to use it on emulators, and after that, the hijack of the signal to make a Game Cube controller compatible with the Nintendo 64 due the problems replacing the joysticks when they get weared, or even wireless/Bluetooth versions.
On the software side the Controller Pak and Rumble Pak share the same address space, but the Rumble Pak writes go to a pretty high address, outside of the Controller Pak valid area.
Games explicitly check what accessory is currently plugged, and all games supporting multiple accessories have a screen telling you to remove the Controller Pak and insert the Rumble Pak.
As far as I know games only write/read the Controller Pak if it is in the first player controller, almost if is not to make a copy of the data from one Controller Pak to another, but Rumble Pak's can be used in all controllers simultaneously, and Transfer Pak can be used independently in whatever controller port.
All the system have proprietary components, the controllers, the Rumble Pak, and the Transfer Pak, even the cartridges, so this put very hard the challenge of understand what is going on...
My purpose is to design new hardware for the controller, but I need to know the controller expansion protocol and right practices.
Some Chinese manufactures are making Nintendo 64 copycat controllers, so that means that the specifications of the CNT-NUS are already known outside Nintendo, also since their days are Controller + Rumble Pak's that with a simple switch change the device detected, so that mean that the specifications of the VDEC-CNT are also already known.
Someone can help me to find any info about this subjet? schematics about that mentioned Controller + Rumble Pak's? or the Transfer Pak?
Update:
GitHub - nicedude/N64_Controller_Wireless_Rumble: a mix of raphnet.net's n64 & gamecube usb adapter and Jakob Schaefer's universal wireless retro controller
a mix of raphnet.net's n64 & gamecube usb adapter and Jakob Schaefer's universal wireless retro controller - GitHub - nicedude/N64_Controller_Wireless_Rumble: a mix of raphnet.net's...
github.com
GitHub - bigbass1997/PIC-CNT64: A modern replacement for the Nintendo 64's NUS-CNT serial communication chip.
A modern replacement for the Nintendo 64's NUS-CNT serial communication chip. - bigbass1997/PIC-CNT64
github.com
GitHub - jtryba/atmega328-N64-controller: A stand alone replacement to the Nintendo CNT-NUS N64 controller chip, with built in rumble, for use in portables.
A stand alone replacement to the Nintendo CNT-NUS N64 controller chip, with built in rumble, for use in portables. - jtryba/atmega328-N64-controller
github.com
GitHub - DragonMinded/libdragon: Open source library for N64 development.
Open source library for N64 development. Contribute to DragonMinded/libdragon development by creating an account on GitHub.
github.com
Controller
n64brew.dev
Video game system
Complete Patent Searching Database and Patent Data Analytics Services.
www.freepatentsonline.com
VDECCNT【Nintendo】 PRICE and PDF, BUY VDECCNT in HKin.com
Electronic Components Distributor Sales VDECCNT Nintendo .
www.hkinventory.com
N64/Snes/Nes controller to gamecube/Wii conversion project
Snes/Nes controller to gamecube/Wii conversion project. Schematics, PCB and software
www.raphnet.net
N64 Memory: Battery Backed SRAM
SRAM to FRAM memory swap. Battery life calculations for typical and worst case. Controller Pak and Game Pak measurements to estimate life remaining.
rothw.com
Pin Name
--------------
1 GND
2 A14
3 A12
4 A7
5 A6
6 A5
7 A4
8 A3
9 A2
10 A1
11 A0
12 D0
13 D1
14 Detect
15 3V3
16 D2
17 GND
18 A15
19 /CE
20 /WE
21 A13
22 A8
23 A9
24 A11
25 /OE
26 A10
27 D7
28 D6
29 D5
30 D4
31 3V3
32 D3
--------------
1 GND
2 A14
3 A12
4 A7
5 A6
6 A5
7 A4
8 A3
9 A2
10 A1
11 A0
12 D0
13 D1
14 Detect
15 3V3
16 D2
17 GND
18 A15
19 /CE
20 /WE
21 A13
22 A8
23 A9
24 A11
25 /OE
26 A10
27 D7
28 D6
29 D5
30 D4
31 3V3
32 D3
Last edited: