[James] has been working with GameCubes, emulators, and Animal Crossing for a while now, and while emulators are sufficient, he’d like to play on real hardware. This means he needs to write to a GameCube memory card. While there are a few options to do this, they either require a Wii or hardware that hasn’t been made in a decade. The obvious solution to this problem is to reverse engineer the GameCube memory card to read and write the memory with a Raspberry Pi.
There’s an incredible amount of unofficial documentation for every console, and [James] stumbled upon a GC-Forever forum post that describes the electrical signals inside the GameCube memory card. There’s your standard compliment of power and ground pads, along with a DI, DO, CS, Clk, and an INT pin. [James] broke out the magnet wire and soldered up a pin header to these cards. Data was then captured with a Salae logic analyzer, and lo and behold, it looked like a standard SPI protocol.
With the low-level protocol worked out, [James] checked out the Yet Another GameCube Documentation to get the main functions allowed through the SPI bus. The ‘read block’, for instance, starts off with 0x52 and an address offset. A little bit of Python on a Raspberry Pi meant [James] could read and write the entire GameCube memory card. Right now the code is a little rough, but all the work is available should you want to edit your Animal Crossing save with a Raspberry Pi.
This work follows [James]’ earlier work on getting into the debug menu of Animal Crossing, allowing him to add items to his inventory. With this latest advancement, it’s only a matter of time before we plug Raspberry Pis directly into a GameCube.








[William] acknowledges that the build is a bit of a hack job, but the project page does a good job of documenting his build process and covering the kinds of decisions involved in interfacing to a separate piece of hardware. After all, most budding hackers have sooner or later asked themselves “how do I make my gadget press a button on this other thing?” [William] ends up using a small relay to close the connection between the traces for the B button when triggered by a microphone module, but he points out that it should be possible to do a non-destructive version of the mod. Examples exist of 