Dolphin, the GameCube and Wii emulator - Forums

Full Version: [PATCH] F-Zero and Phantasy Star Online Memory Card Manager support
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi,

I think many of you are aware that F-zero and Phantasy Star Online (Ep I&II and III) are serial-protected, thus a savegame can't be transfered from one card to another.

Well, Ralf was kind enough to port his action replay codes to dolphin and Gamecube Memory Manager, and I've ported them to dolphin's memory card manager, so now those savegames can be transfered from and to any memory card (copying or trough single savegame files).

Original information:
http://board.gscentral.org/retro-hacking/53093.htm

I'm attaching the patch to latest dolphin git. It may not be the best implementation to dolphin's source code, but it works (at least with F-Zero, PSO games SHOULD work, I checked the files after the copy and everything should be OK).

Also, the memory card manager may benefit from some features of these tools:

http://code.google.com/p/gcmm/wiki/Raw_Tools

Not that they are really needed, but it'd be nice to have the functionality on a GUI. At least I think that the ability of padding a raw image to a bigger size card may be useful for people using real raw images.

-----------------------
Best regards, suloku
thanks for the patch, when I saw the update to gcmm I was hoping to add this feature to the memorycard manager Smile

in the past I made local changes to the memorycard manager to have features like your raw tools, but never added them to the repository, I wasn't sure that there was much interest.

If there is interest it shouldn't be too difficult to add the features back in
You should do it :p
Given that dolphin's memory card manager is the only tool available for pc to work with gamecube savegames and memory cards and it is a multiplatform tool, I think it won't be any bad to centralize tools in one application.

It is true that most users won't tweak raw cards and the ones that would want to proably know how to use command line, but I still think that having more features can't be bad.

By the way, I had trouble building latest manager under linux ( I gave up on windows), I always got a missing libcommon error, so I had to build the full dolphin instead.

I had to use a virtual machine, that's why I haven't tested it as much as I wanted, but it should work well as I said.
building the standalone manager should be fixed in linux. I can build it on windows without issue, I'll need to setup a vm to test compiling with a new installation of visualstudio.

there is an error building on windows with your patch as is, it should be a simple fix, but I want to make sure not to break the feature before committing it
(09-22-2012, 04:36 AM)LPFaint99 Wrote: [ -> ]building the standalone manager should be fixed in linux.

there is an error building on windows with your patch as is, it should be a simple fix, but I want to make sure not to break the feature before committing it
As I said, it is almost surely not the best implementation, it's not like I excel at coding or anything (I had lots of trouble just because I wasn't casting the header structure to to a void pointer).

A simple test is to have a raw image with an f-zero and pso games (both working).

Then extract the gci files, delete them in the card and import the gci files again to the card. Now extract again and compare the first gci files with the newly extracted, if they are equal, the serial and checksum where generated and properly put in place.
Alternatively, you can send me the windows build and I'll make the tests.

By the way, what's the error?
casting the header structure to a void pointer is what causes the error,
"2>Src\HW\GCMemcard.cpp(1278): error C2036: 'void *' : unknown size"

I changed it to u8 pointer it compiles/works correctly on both linux and windows.

your patch does not include the 'From' line that git patches use to differentiate between the name of the person who commits a patch and the author of the patch, would you like me to use your gmail address from gcmm as the author of the patch, or just write 'patch by suloku' in the commit message?
(09-22-2012, 05:04 AM)LPFaint99 Wrote: [ -> ]your patch does not include the 'From' line that git patches use to differentiate between the name of the person who commits a patch and the author of the patch, would you like me to use your gmail address from gcmm as the author of the patch, or just write 'patch by suloku' in the commit message?

I don't really mind, use the mail adress, maybe it's better, but I think Ralf should be mentioned in the commit message anyways, since it's actually his code.
Just tested latest svn build with PSO, working fine. I though I should post it.

I'm trying to get jap versions of the games and see if the same patch works with them without modifications.

I noticed a bug when showing the icons, sometimes some saves with a single icon show 3 icons, the last 2 being the ones of the previous savegame with 3 or more icons.

BTW, I just checked the debug build in the memory manager in google code and noticed that what is shown as serial number is the escrambled flash ID of the memory card.

Scrambled flash ID is descrambled with the time format value, wich gives the real flash ID of the card. On a real cube, if the real flash ID and scrambled flash ID don't match the card is reported as broken.

Also, all unofficial cards share the same real flash ID (0x000000000000).

The function for obtaining the real serial number is already in the patch, it is split in two u32 just for convenience (it's actually an u64).

GCMM has a function for obtaining the real flash ID of the card if you are interested.

ps: anyone knows a config that can make GCMM run under dolphin?
yeah, I haven't gotten around to changing that, it is just showing the first n bytes of the header in hex
dolphin also has a function for obtaining the flash id, it is how dolphin is able to use full memory card dumps.

I haven't compiled/tested with the latest source of gcmm, but I was able to run the original 1.0/1.1 source compiled in wii mode, with the .elf file.
With most homebrew it is necessary to enable real External Frame Buffer (hacks tab of graphics config)

edit: forgot to mention the icons, offhand I know that I have seen it, and haven't ever looked into it, the icon display code was written before I started work on it
Pages: 1 2