CTR-GCS 0.3 : Finally, transfer F-zero savegames!

Discussion in 'Wii - Emulation and Homebrew' started by suloku, Aug 20, 2012.

Aug 20, 2012
  1. suloku
    OP

    Member suloku GBAtemp Advanced Fan

    Joined:
    Apr 28, 2008
    Messages:
    857
    Country:
    Spain
    UPDATE 14 september 2012: as of today GCMM 1.3 has the ability to restore F-zero and Phantasy Star Online Ep I&II and PSO III to any memory card, just like any other savegame.

    This renders ctr-gcs and any method described in this thread obsolete at user level, so just use GCMM 1.3 (http://gbatemp.net/topic/333469-gcmm-11/)

    note: f-zero and PSO support can be easily added to ctr-gcs 0.3b, but I won't be updating it, source code is available if you want to for some reason

    -----------------------------------------------------------------------------------------------------

    http://code.google.com/p/gcmm/downloads/detail?name=ctr-gcs_0.3b.rar&can=2&q=

    WARNING: it is NOT possible to transfer a header between official cards (and thus making f-zero savegame work). The procedure only works with unnoficial cards, because they share the same serial (flash) ID.

    UPDATE 11 september 2012: As of today it is possible "insert" the serial number of a memory card image or header to another memory card image or header. This makes serial protected savegames work. This has been tested even with official cards and works fine. More information here: http://gbatemp.net/t...ost__p__4384277
    Still, Action Replay codes may be a better method to make serial protected savegames work, as it allows to have more than one serial protected savegame (originally from different memory cards, of course) in the same card.

    There are action replay codes to make protected savegames work when restoring a gci savegame to a different card: http://gbatemp.net/t...ost__p__4358083

    F-zero codes (there may be also codes for Phantasy Star Online games):

    NTSC code: http://board.gscentr...cking/53093.htm
    PAL code: http://board.gscentr...cking/51598.htm
    zerofalcon made them compatible with dios-mios: http://gbatemp.net/t...ost__p__4366774

    The following information contains the old posts. This is only kept so the thread's post make sense, the information contained in it is outdated and wrong.

    Warning: Spoilers inside!
     
    1 person likes this.


  2. daxtsu

    Member daxtsu -

    Joined:
    Jun 9, 2007
    Messages:
    5,289
    Country:
    Antarctica
    Phantasy Star Online(Episode 1&2 at least, I would assume 3 is the same way) has save protection similar to F-Zero's, I believe. I could be wrong, though. It seems to refuse to work from a new memory card, even if you backup and move all 3 save files it makes(without doing this new method you've come up with). I could've done it wrong though, however.
     
  3. zerofalcon

    Member zerofalcon GBAtemp Advanced Fan

    Joined:
    Mar 14, 2009
    Messages:
    534
    Location:
    Somewhere close to my NES
    Country:
    Antarctica
    Great! now I can be sure my F-zero GX gamesave (unlocked everything without cheats or F-zero AX Arcade unlock feature) will remain forever ready to be loaded. Thanks a lot!
     
  4. Fudge

    Banned Fudge Remember that death is not the end, but only a tra

    Joined:
    Aug 26, 2009
    Messages:
    2,655
    Location:
    New York
    Country:
    United States
    Someone send me a completed F-Zero save :lol:
     
  5. suloku
    OP

    Member suloku GBAtemp Advanced Fan

    Joined:
    Apr 28, 2008
    Messages:
    857
    Country:
    Spain
    Thanks, I'll look into PSO, someone also reported Zelda Four swords adventures.

    By the way I messed up, I wanted to post in wii emulation and homebrew forum, Maybe some mod can move it, sorry for the inconvenience.
     
  6. daxtsu

    Member daxtsu -

    Joined:
    Jun 9, 2007
    Messages:
    5,289
    Country:
    Antarctica
    Just report the first post and request it to be moved. Should work okay.
     
  7. Arras

    Member Arras ★02

    Joined:
    Sep 14, 2010
    Messages:
    5,717
    Location:
    The Netherlands
    Country:
    Netherlands
    I could copy FSA (US) saves just fine (I backed up some of my GC saves yesterday)
     
  8. daxtsu

    Member daxtsu -

    Joined:
    Jun 9, 2007
    Messages:
    5,289
    Country:
    Antarctica
    I tested GCHeader with PSO, taking the header from my 251(2mbyte) official memory card dump, and moved it to a 16mbyte image created by Dolphin, and it worked, as expected. I successfully moved my save to the larger memory card with no issue.

    I'll try the updated CTR-GCS dol in a minute.

    Also, a random thought: Wouldn't this let you restore raw images to another memory card with no issue? Couldn't you just do the following, if you bought a new card for example:
    1. Backup flashid header & raw image of memory card A
    2. Restore raw image A to memory card B
    3. Restore flashid header of memory card A to memory card B
     
  9. suloku
    OP

    Member suloku GBAtemp Advanced Fan

    Joined:
    Apr 28, 2008
    Messages:
    857
    Country:
    Spain
    Thanks for testing, glad to know it works.

    It would be interesting to know all games that use this type of protection and their gamecode (it is written to the gci filename when extracting with ctr-gcs)
    The idea is to use the gamecode to auto-extract the header file when backing up the savegame to GCI (and save it along the GCI, with the same filename).

    I'm not so sure about auto-installing the header, but with a propper warning it should be fine.
     
  10. daxtsu

    Member daxtsu -

    Joined:
    Jun 9, 2007
    Messages:
    5,289
    Country:
    Antarctica
    By gamecode do you mean the first part of the GCI title, like "GPOE_PSO_CHARACTER.gci"? If so, PSO Episode 1 & 2 NTSC(non plus) is GPOE.
     
  11. tueidj

    Member tueidj I R Expert

    Joined:
    Jan 8, 2009
    Messages:
    2,569
    Country:
    The card ID is only the first 20 bytes (12 bytes scrambled + 8 byte PRNG seed) so you could just copy those over (and then fix the header checksum) if you wanted to transfer between different size cards.
    I'm also curious if you're using a fixed version of libogc - the sramex struct is incorrectly defined (flash id checksum is only 1 byte for each slot, not 2) which can cause problems if the card is already unlocked.
     
  12. suloku
    OP

    Member suloku GBAtemp Advanced Fan

    Joined:
    Apr 28, 2008
    Messages:
    857
    Country:
    Spain
    The header is already in the raw backup, if you restore a raw backup to another card the protected saves will work the same. This has been posible in gamecube for many years (but again, nobody tried it)

    If you mean restoring a raw image to a card of a different size, that's a bad idea, you'd be better managing your savegames on PC with dolphin's memory card manager, then add the header to the raw of the card with gcheader.exe, for example.
    I know, but I went by copying the full block (it's only 8kb anyway) and editing the card size because I only have to write 1 time to the card. Your way is probably cleaner, but more complicated and my programming skills are... well very bad. Also reading/writing the whole block was quicker, as I just had to slightly modify the backup/restore functions of ctr-gcs.

    About libogc, I'm using the same setup as savegamemanager-gx. Your version of ctr-gcs has proper dsp unlocking, so official cards work the same. I saw your commit to libogc, but I think the sramex structure isn't fixed yet right? I should recompile with latest libogc and fix the structure... gonna do it right away.

    I wanted to recompile anyway, I want to add gamecube mode with sdgecko support.

    Exactly, That's the gamecode.
     
  13. Cyan

    Global Moderator Cyan GBATemp's lurking knight

    Joined:
    Oct 27, 2002
    Messages:
    16,407
    Location:
    Engine room, learning
    Country:
    France
    I moved the topic to emu&homebrew.

    when writing the header to the new memory card, it doesn't break the saves already present?
    If you have a PSO save on the card, and add F-zero header to it, what will happen to PSO?
     
  14. tueidj

    Member tueidj I R Expert

    Joined:
    Jan 8, 2009
    Messages:
    2,569
    Country:
    Actually now that I think about it, this won't work if official memory cards are used. The reason is the flash id in the header is a scrambled version of the real flash id (the one that gets written to nand). The real flash id is obtained during the unlock function and there's no way to copy that from one card to another. If the real flash id doesn't match the descrambled flash id from the card header, the card will be rejected by games as needing formatting. Unofficial cards all use zeroes for their flash id so there's no problem copying headers between them.
     
  15. daxtsu

    Member daxtsu -

    Joined:
    Jun 9, 2007
    Messages:
    5,289
    Country:
    Antarctica
    If the headers from the two saves are from different memory cards, it'll probably break PSO.

    Consider this:
    A) PSO is on memory card A
    B) FZero is on memory card B
    C) We have a third different image(we'll call it memcard C)

    If we restore the GCI of PSO and F-Zero to memcard C, then put F-Zero's header(memcard B) on memcard C, I would imagine that PSO(memcard A) would see the saves as "corrupt" since the header would no longer match its original memcard A header.

    Now consider this situation:
    A) PSO is on memcard A
    B) F-Zero is on memcard A
    C) We want to move them to a new memcard image, memcard B

    If we move the GCIs over and then just replace memcard B's header with memcard A, it should have no issue. It's the first scenario that would/should give you problems.

    Note that the scenarios I'm talking about here are only dealing with memory card images, not real memory cards.

    Also, the test I did with PSO was with two memory card images, not real memory cards.
     
  16. suloku
    OP

    Member suloku GBAtemp Advanced Fan

    Joined:
    Apr 28, 2008
    Messages:
    857
    Country:
    Spain
    That's depressing to read, I tested with an unoficial card. Well, at least we can copy the savegame to any unoficial card.

    Then changing the hader of an official card will only break the card and there's no software solution for that? If that's so, we are again at the point of needing to change the ID in the savegame itself...

    Do you know how to get the real flash ID from the header scrambled one?
     
  17. marc_max

    Member marc_max GBAtemp Advanced Fan

    Joined:
    Jun 19, 2008
    Messages:
    815
    Country:
    Spain
    That sounds interesting, however...

    I tried to follow this tutorial in order to copy my F-Zero GX from an unofficial memory card (1019 blocks) to an official one (251 blocks).
    Thanks to suloku tools I managed to create a raw image with all my savegames from the 251 official, I changed its ID and then added my F-Zero GX savegame. Dolphin reads it correctly, but it's impossible to restore it to my 251 official using ctr-gcs (no matter what version I use, tueidj's or suloku's). It's always corrupted after restoring it.

    At first I thought it was related to tueidj's post here, but then I tried to restore my ORIGINAL (not modified) RAW to the 251 official and it gives me the same problem: the memory card is corrupted after restoring the RAW.

    I don't care about the savegames lost there because I have a copy of all of them.
     
  18. zerofalcon

    Member zerofalcon GBAtemp Advanced Fan

    Joined:
    Mar 14, 2009
    Messages:
    534
    Location:
    Somewhere close to my NES
    Country:
    Antarctica
    I tried to restore f-zero gx save and header from a third party memory card (nyko 123 blocks) to a official nintendo memory card (251 blocks) without success, it gets corrupted. Need to re-format while starting the game or going to data management.
     
  19. marc_max

    Member marc_max GBAtemp Advanced Fan

    Joined:
    Jun 19, 2008
    Messages:
    815
    Country:
    Spain
    It seems you have the same problem as me.
    Do you have an original RAW (not modified) of your official memory card? Have you tried to restore it?
    Main problem here is that even the original one doesn't restore correctly in my official 251.
     
  20. zerofalcon

    Member zerofalcon GBAtemp Advanced Fan

    Joined:
    Mar 14, 2009
    Messages:
    534
    Location:
    Somewhere close to my NES
    Country:
    Antarctica
    Yes, I tried to restore the raw dump of my official memory card but unfortunately its the same problem. Only transfering individual gci files from certain games its the only way to make it work without corrupting it.
     

Share This Page