UPDATE: GCN MemCard Recover 0.2.1 is out! (after a 6-month delay... :V)
Download:
v0.2.1 is a bugfix release that fixes a few crashes and improves performance. There's also a new Russian translation (contributed by Egor305) and some more file definitions. There's also a fix for the database files being incorrect in the Windows build due to cmake stripping out variable names.
Save file database entries:
--- original post follows ---
In January 2012, I was expanding my GCN collection by getting some games I had on my backlog. One of the games I decided to get was Mario Party 4. So I get Mario Party 4 in the mail, put it in my Wii, and was greeted with the following screen:
"Oh no!," I thought to myself. "All of my save files are gone!"
I went back to the Wii system menu and checked the Wii save file manager, and got the same error.
I ended up reformatting the card in order to play Mario Party 4.
Now, I've done work with repairing and refurbishing PCs, and one thing that you learn while doing this is formatting a hard drive doesn't actually erase the data. It only erases the filesystem. I spent the next day looking for a utility to dump the raw data from a GCN memory card, and eventually found Ctr-Gcs-DacoTaco-Edition. I did a full raw dump and then opened it in a hex editor. On a hunch, I searched for the string "Sonic", since I had several save files from the various GCN Sonic games on the card.
There it is! The description matches what's displayed on the GCN and Wii memory card manager. It turns out that this description is actually part of the file data, and not the filesystem tables that are erased during formatting. All I had to do was reconstruct the directory entry by copying the 64-byte GCI header from another SADX save file and then copy the GCI file back to the memory card using ctr-gcs. I managed to recover all of my save files by doing this. (The blocks overwritten by the Mario Party 4 save were actually used by a file that was previously deleted, so I didn't lose anything there.)
While manual file recovery using a hex editor might be relatively easy to do for someone who's technically inclined, it still takes a long time, especially with larger memory cards. I started writing a utility to recover files from GCN memory cards automatically shortly after I recovered my files, but the project was put on hold for a while. I continued working on it around 2 weeks ago, and it mostly works now!
Download links are at the top of the post.
NOTE: GCN MemCard Recover only supports recovering files from a corrupted filesystem. It is *not* capable of fixing individual save files - that is, if the files on the card are viewable normally but one game complains that its save file is corrupted, GCN MemCard Recover cannot fix it.
NOTE 2: Only files known to GCN MemCard Recover can be recovered. Currently, the database contains entries for 61 files (all NTSC-U). If you have files that aren't present in the database, I would appreciate it if you sent them to me so I could add them to the database.
I'd appreciate any comments or suggestions regarding the GCN MemCard Recover program in order to further improve the software.
Download:
- Windows (32-bit): mcrecover_0.2.1-win32.zip
- Ubuntu 10.04+ (32-bit): mcrecover_0.2.1_i386.deb
- Ubuntu 10.04+ (64-bit): mcrecover_0.2.1_amd64.deb
- Source code: mcrecover-0.2.1.tar.gz
v0.2.1 is a bugfix release that fixes a few crashes and improves performance. There's also a new Russian translation (contributed by Egor305) and some more file definitions. There's also a fix for the database files being incorrect in the Windows build due to cmake stripping out variable names.
Save file database entries:
- USA: 105 files
- PAL: 59 files
- JPN: 7 files
- KOR: 0 files
- Unlicensed: 1 file
- Homebrew: 1 file
--- original post follows ---
In January 2012, I was expanding my GCN collection by getting some games I had on my backlog. One of the games I decided to get was Mario Party 4. So I get Mario Party 4 in the mail, put it in my Wii, and was greeted with the following screen:

"Oh no!," I thought to myself. "All of my save files are gone!"
I went back to the Wii system menu and checked the Wii save file manager, and got the same error.

I ended up reformatting the card in order to play Mario Party 4.
Now, I've done work with repairing and refurbishing PCs, and one thing that you learn while doing this is formatting a hard drive doesn't actually erase the data. It only erases the filesystem. I spent the next day looking for a utility to dump the raw data from a GCN memory card, and eventually found Ctr-Gcs-DacoTaco-Edition. I did a full raw dump and then opened it in a hex editor. On a hunch, I searched for the string "Sonic", since I had several save files from the various GCN Sonic games on the card.

There it is! The description matches what's displayed on the GCN and Wii memory card manager. It turns out that this description is actually part of the file data, and not the filesystem tables that are erased during formatting. All I had to do was reconstruct the directory entry by copying the 64-byte GCI header from another SADX save file and then copy the GCI file back to the memory card using ctr-gcs. I managed to recover all of my save files by doing this. (The blocks overwritten by the Mario Party 4 save were actually used by a file that was previously deleted, so I didn't lose anything there.)
While manual file recovery using a hex editor might be relatively easy to do for someone who's technically inclined, it still takes a long time, especially with larger memory cards. I started writing a utility to recover files from GCN memory cards automatically shortly after I recovered my files, but the project was put on hold for a while. I continued working on it around 2 weeks ago, and it mostly works now!

Download links are at the top of the post.
NOTE: GCN MemCard Recover only supports recovering files from a corrupted filesystem. It is *not* capable of fixing individual save files - that is, if the files on the card are viewable normally but one game complains that its save file is corrupted, GCN MemCard Recover cannot fix it.
NOTE 2: Only files known to GCN MemCard Recover can be recovered. Currently, the database contains entries for 61 files (all NTSC-U). If you have files that aren't present in the database, I would appreciate it if you sent them to me so I could add them to the database.
I'd appreciate any comments or suggestions regarding the GCN MemCard Recover program in order to further improve the software.