You know, I've always felt that there was something fundamentally wrong with the Universe...
Tuesday, October 23, 2012
I have a domain :)
I just finished registering my very own domain :) This blog can now be found at blog.qwertymodo.com, and my Zelda: Parallel Worlds mapping site can be found at zelda.qwertymodo.com.
Tuesday, October 16, 2012
Non-volatile N64 Controller Pak
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...
Subscribe to: Posts (Atom)