Save editing

Discussion in 'NDS - ROM Hacking and Translations' started by deathfisaro, Jun 20, 2007.

  1. deathfisaro
    OP

    deathfisaro Narcistic Deathfisaro Fan

    Member
    2,053
    0
    Mar 16, 2007
    Canada
    Vancouver, BC
    I use hex editor to edit saves, but can't figure out how to get the checksum right
    I usually swap two values (Like 25 01 into 01 25) which worked for earlier consoles but doesn't seem to work for DS.
    Is there any way to figure out how to get it correct?

    I tried other games save file editors but it seemed to be adding or subtracting to random addresses.
     
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    Checkusms and hashes can be everything from parity to bytesums to md5 grade stuff, figuring out what (usually via disassembly or a decent emulator) is half the fun.

    If it turns out to be a BIOS based hash function (normally a crc16 variant) how they are implemented can be found in GBATek:
    http://nocash.emubase.de/gbatek.htm#biosfunctions
     
  3. deathfisaro
    OP

    deathfisaro Narcistic Deathfisaro Fan

    Member
    2,053
    0
    Mar 16, 2007
    Canada
    Vancouver, BC
    Awww...
    I opened up a save and found it wasn't encrypted so I was thinking dude this is piece of cake. But looks like I'm in for a hellota trial and error
     
  4. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    Trial and error should not take up that much time, try getting many (30 or so) saves with very little difference (one step further, 1 second longer or a copy to another "file" is a good one sometimes).

    That way you can start to pinpoint the hash and what the save file does.

    You could also bypass the save check (crackers trainer for Final Fantasy 3 does if I recall) enabling you to reverse engineer the save first.
     
  5. deathfisaro
    OP

    deathfisaro Narcistic Deathfisaro Fan

    Member
    2,053
    0
    Mar 16, 2007
    Canada
    Vancouver, BC
    Meh gave up
    Too many things change between saves and i can't figure out the checksum.
    I guess I gotta get a real time save enabled flashcart, for real time save/load are not checked
     
  6. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,711
    9,581
    Nov 21, 2005
    United Kingdom
    Try an emulator and a windows debugger before saving back and using the emulator made save.
     
  7. Pikachu025

    Pikachu025 GBAtemp Advanced Fan

    Member
    969
    35
    May 3, 2006
    Australia
    Austria
    Usually you can just (with the proper Hex-Editor (for example WinHex)) highlight the whole file except header/checksum, tell the prog to calculate checksum (Tools -> Compute Hash in WinHex (the last thing I did used Checksum 32bit)), then either add or substract a certain number to get the correct checksum. Play a little till you get the correct thing, it's not too hard after you've done it once.

    At least, that's what has worked for me the few times I tried to hack a save...