Ever since I read
this post on the BenHeck forums about modding an N64 Controller Pak to eliminate the need for a battery to maintain the save data. I decided to take it one step further and build one from scratch. The first step was to draw up the schematic for the existing Controller Pak, and modify it from there. For that, I needed a pinout for the card edge. I found one with a few errors, used it to fill out the schematic, and determined the function of the remaining contacts from there. Here's the working pinout:
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 CE1
19 /CE2
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
The Detect line is pulled low inside the controller through a pull-down resistor. The Controller Pak connects Detect to 3V3 to indicate the presence of a cart in the slot (this is true for both the Controller Pak and the Rumble Pak; the controller determines which type of cart it is by strobing a specific address and reading the response).
From this, it's fairly trivial to connect an FRAM chip in place of the original SRAM. I chose to use the Ramtron FM28V020, though the any of the FM18*08 chips should work as well. If we don't really care about the dual CE lines, we can ignore CE1 and connect /CE2 directly to the RAM. After that, all that is needed is a pull-up resistor on the /CE line (10Kohm is a good value) and a smoothing cap between 3V3 and GND (100nF is good).
I'll be working on a 4x version soon, using a 1Mbit FRAM chip (Ramtron FM28V100). The basic wiring for this is the same as above, but add pull-up resistors on the A15 and A16 lines, then connect those lines to a 4-position switch that connects to GND. Use diodes to isolate the connections between the address lines and the switch, since one position on the switch will pull both lines to GND, but you don't want *every* position to do that.
If you'd like to buy a pre-assembled, nonvolatile N64 Controller Pak (1x or 4x), shoot me an email. I have a lot of extras sitting around...
I've swapped my sram for an fram ramtron chip. Could you please explain what else you need to do other than swap out the sram and remove battery? You mentioned a resistor...
ReplyDeleteIf you're just doing a chip swap on an original board and removing the battery, you'll also need to connect the positive battery terminal to the 3v3 rail, otherwise the SRAM protection circuit will detect the fact that the battery is gone and disable the chip. There are a few places you can tap into the 3V3 rail, including pins 14/15 on the card edge, any vias attached to those pins, or pin 28 on the chip, or just use a continuity tester and use anywhere on the board connected to the rail. It's been awhile since I've done anything with these, so I can't 100% confirm that will do it, but it should. If you want to be safe, you could use a 10K resistor instead of just connecting it directly (i.e. BAT+--10K--3V3).
Delete