The Gamecube Memory Card: EXI vs SDPublished 2019-9-28
Since the Gamecube can read SD cards, you might think that an SD card reader could read Gamecube cards, and that perhaps you could use an SD card as a memory card.
Well, let's see...
- An SD reader CANNOT be wired to read a GC Memory Card
- An SD card CANNOT be wired to look like a GC Memory Card
Why not? Because...
- Gamecube Memory Cards use the GC-proprietary EXI protocol
- The SD Gecko reads the SD cards via SPI
In short: EXI and SPI are not compatible.
I've decided to run "Homebrew" on my Gamecube (and writing Homebrew for n00bs to document the process). Unfortunately, it seems that there's no way to do this without buying special hardware. Specifically it seems that you have to have at least one of
- XenoGC (you solder it on to put the DVD drive in debug mode)
- Action Replay (a manufactured hacked game disc)
- Hacked Memory Card (pre-loaded with exploit game saves)
Now it turns out there's the SD Gecko (DOL-SDA-01), which allows you to use a standard SD card for extra storage.
Seeing this I thought that surely the Official, Authentic Nintendo Memory Cards were just plain SD cards in a proprietary housing.
I failed, I ended up buying the Action Replay Launcher, but I'm still trying, just to tackle the challenge - the battle cry of Freedom at and all that...
Probably not. But if not, then why?
When I cracked open a Gamecube memory card, I found that it's actually CMOS Flash inside, not SD.
Doing some searching on the numbers I found inside I came across http://nus001.web.fc2.com/dol_mem_card/dol_mem_card.html, which has helped me dig up more model numbers and some datasheets.
The official memory cards have these specs:
(it seems that 5 "blocks" are used for a file system table or some such)
| 59 Block | 251 Block | 1019 Block | | :--------: | :------------: | :-----------: | | Grey | Black | White | | 4Mbit | 16Mbit | 64Mbit | | | | | | Nintendo | Nintendo | Nintendo | | DOL-008 | DOL-014 | DOL-020 | | DOL-4MC-01 | DOL-4MC-10 | DL-64MC-01 | | | | | | MX | MX (Macronix) | SEC (Samsung) | | ? | S030158 | KOREA 937 | | ? | MX25L1601MC-60 | KM29U64000T | | ERM4-DOL | ERM16-DOL | ? | | ? | 1E7548 | RRH004AA |
From the "DOL" you can tell that these are proprietary to Nintendo, but I found a few references to MX devices that I think are probably similar (CMOS Serial Flash EEPROM):
I found an aftermarket card with these specs:
| 251 Block | | :-------: | | SST | | 39VF1601 | | 70-4C-EK | | 0449260-D |
I found the SST39VF1601-70-4C-EK datasheet on mouser:
It says it's CMOS I/O and CFI compatible.
Another guide gives this pinout info for the Gamecube Memory Card (GC MC).
Here's a comparison with the EXI/Gecko wiring diagram above:
| Pin | GC MC (EXI) | SD Gecko (SPI) | SD Pin | | :-: | :----------: | :------------: | :----: | | 1 | SENSE | Sense | - | | 2 | GND | VSS1 | P3 | | 3 | INT | INT (NC) | - | | 4 | 3.3V | VDD1 3.3v | P4 | | 5 | SO | DI | P2 | | 6 | 5V | VDD2 5V (NC) | - | | 7 | SI | DO | P7 | | 8 | 3.3V | VDD1 3.3v | - | | 9 | CS | CS | P1 | | 10 | GND (Shield) | VSS2 | P6 | | 11 | SCLK | CLK | P5 | | 12 | SENSE | Sense | - |
Why can't I use an SD Card?
Upon closer inspection of the pinouts and some of the materials, what I found is that while the Official Nintendo cards appear to be a single Flash EEPROM, the 3rd party cards have an extra microcontroller in them.
This means that although 'the cube' uses SPI to read the SD card through the SD Gecko, the logic for the memory card is more proprietary and complex.
In particular, I noticed "EXI" on a few of the wiring diagrams which quickly lead me to discover that its a special Gamecube-specific protocol.
I also got a little help from the Electronics Stack Exchange.
So, in conclusion, is it reasonable to thing that you could...
- Wire the GC flash cart to an SD card adapter and read it with an off-the-shelf SD reader?
- Or perhaps using a CF adapter card and CF reader instead?
- Write the raw contents of this Flash cart to an SD card?
- Maybe with GCCM, but... no.
- Plug such an SD card into the memory card slot and have it recognized as a normal memory card?
- Absolutely not.
It's unreasonable - due to the differences between EXI and SPI (and EXI and SD), and certain that such an effort will yield no gains.
You could, of course, program a microcontroller to talk between the two... but that doesn't help at all in the direction of a lower-cost, more convenient, non-specialized way to get homebrew going, which is what I was aiming for in the first place.
By AJ ONeal
Did I make your day?
Buy me a coffee