Swiss future Memory Card Manager feature

Discuss one of the most feature filled GameCube applications here :)
Post Reply
PFRA89
Posts: 5
Joined: Mon Feb 07, 2011 9:40 pm

Swiss future Memory Card Manager feature

Post by PFRA89 » Mon Feb 07, 2011 10:26 pm

Hello.

I don't know if this is the correct place to post this.

I know it will take a while to see this feature, but I want to talk about the error I researched and found on current memory card backup and restoring apps (especifically GCMM and it seems Dolphin emulator too). I hope this error can be prevented in the development of this feature in Swiss.

The memory card (*.gci) header starts at 0x0, actual game save data starts at 0x40.
What happens it's that most memory card saves (*.gci) have the description strings at 0x40, at the beginning of the actual game save data. The memory card header stores address of those strings in the game data as 0x0 in 0x3c with 0x4 length. So, when loading the strings, if the offset is 0x0 GC will load the strings from 0x40.

The problem it's that there are a few games that doesn't store the strings at 0x0 (0x40). My game it's Zelda Twilight Princess Japanese version. It stores the strings at 0x2400 (0x2440). When GCMM and I think Dolphin emulator too tries to restore the data on the memory card the data gets corrupted because by some reason I don't know, they save the 0x3c string offset as 0xFFFFFFFF, that address doesn't exist so I think the GC IPL captures the I/O error and just don't show strings nor banner and icon. Would it be that this 0x3c register is ignored and GCI restoring code just assumes it will be always 0x0.

I noticed this because I backed up a save, then restored it with GCMM, it appeared corrupted, backed up the corrupted save, then took both save files and erased the header. Finally I 7-zipped both files without header and they had the same CRC check. So the corruption happens in the header, at 0x3c. I think Dolphin emu have the same error because if I restored the GCI on a blank .raw MC file it appeared exactly as it does on the GC, without the strings, banner and icons.

I will attach my memory card files where I did the research.

UPDATE: The Dolphin error doesn't seem to be this one but may be related to the 0x3c offset. I exported a corrupted restored save in dolphin and noticed that from address 0x2040 everything is erased by putting "00" on each byte. I will talk about this issue on Dolphin Emulator forums later.
Attachments
ZeldaTPJ_MCResearch.7z
A Zelda TP JP Memory card backup, backup of the same file coruupted after restoring and both files 7-zipped without header with same CRC.
(52.1 KiB) Downloaded 174 times
Last edited by PFRA89 on Mon Feb 07, 2011 11:48 pm, edited 1 time in total.
PFRA89
Posts: 5
Joined: Mon Feb 07, 2011 9:40 pm

Re: Swiss future Memory Card Manager feature

Post by PFRA89 » Mon Feb 07, 2011 10:30 pm

I forgot to say I've learned the way Memory Card GCI files are structured by reading "Yet Another GameCube Documentation", p186.
kevstah2004
Posts: 308
Joined: Wed Mar 31, 2010 1:07 pm
Location: UK, Hull

Re: Swiss future Memory Card Manager feature

Post by kevstah2004 » Tue Feb 08, 2011 2:25 am

Have tried softdev's sdmc also?, I seem to remember reading back on tehskeen a few of the memory card managers caused curruption.
User avatar
emu_kidid
Site Admin
Posts: 4645
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss future Memory Card Manager feature

Post by emu_kidid » Tue Feb 08, 2011 2:26 am

Once compatibility becomes (a bit more) stable in swiss I will work on this.
Image
PFRA89
Posts: 5
Joined: Mon Feb 07, 2011 9:40 pm

Re: Swiss future Memory Card Manager feature

Post by PFRA89 » Tue Feb 08, 2011 11:53 pm

kevstah2004 wrote:Have tried softdev's sdmc also?, I seem to remember reading back on tehskeen a few of the memory card managers caused curruption.
I downloaded sdmc.dol here: http://www.gc-forever.com/forums/viewtopic.php?f=4&t=8

I ran it and noticed it have pretty nice GUI, which showed game icons, and I was happy because it could dump the entire memory card as raw data (that I should try in Dolphin emu).

But when I backed up my Zelda game save and made an entire memory card dump I got a totally corrupted Zelda save (even the header was corrupt) and 1KB size .mci memory card full dump (The MC is 4 Mega size). Worse I don't know the official site of this tool, I've tried tehskeen.com but only appears an unrelated store (jailbreak PS3?).
User avatar
emu_kidid
Site Admin
Posts: 4645
Joined: Mon Mar 29, 2010 10:06 am
Location: Australia
Contact:

Re: Swiss future Memory Card Manager feature

Post by emu_kidid » Tue Feb 08, 2011 11:58 pm

tehskeen has closed down now for over a year and softdev has quit his gamecube / wii coding even longer since. When I get around to writing a memory card manager I will keep this in mind (Jap Zelda).
Image
PFRA89
Posts: 5
Joined: Mon Feb 07, 2011 9:40 pm

Re: Swiss future Memory Card Manager feature

Post by PFRA89 » Wed Feb 09, 2011 12:04 am

emu_kidid wrote:Once compatibility becomes (a bit more) stable in swiss I will work on this.
I want to say that the error I explained above happens on GCMM. The error in Dolphin emulator seems to be different.

However it seems both errors happens on game saves that have the description strings offset value with a value different to 0x0, so this 0x3c header register deserves some attention when developing this feature.

I hope this can help.
Post Reply