Ocarina of Time 3D Save Editing Progress

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by MichiS97, Feb 7, 2015.

  1. MichiS97
    OP

    MichiS97 "Leftist snowflake milennial"

    Member
    GBAtemp Patron
    MichiS97 is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    1,359
    759
    Jun 14, 2011
    Germany
    Munich
    Hey, I've just started doing some save editing on my OoT3D save file and I thought some of you guys might be interested in my findings.

    So here is what I have found out so far:

    1. Link's Health:
    The overall number of heart containers you have is stored in the offset 42 (heh). Now, one full heart container has the decimal value of 16. So the decimal value in offset 42 will be 48, 30 in hex, when you start a new game, as you'll have 3 heart containers. If you now want to give yourself more heart containers you'd just have to add 16 to the decimal value at 42 or 10 to the hex value. Link's current health is stored in offset 44 and is calculated just the same. Should you have taken some damage and have 2 1/2 hearts health at the moment you saved the hex value at 44 will be 28 or 40 in decimal. Basically, the decimal value for your current health can be calculated with the formula: Number of hearts * 16

    2. Rupees:
    This is probably the most useful aspect of save editing: maximizing your money. The value for your current number of rupees is stored in the offset 48. This is still WIP though, since I only have started the game just yet and I can't carry more than 99 rupees "legally" anyway. The offset for values bigger than FF/255 probably is 47 though.

    3. Various items:
    The number of Deku Sticks you currently have is stored in the offset A6, Deku Nuts in A7, Deku Seeds (aka Slingshot ammo) in AC

    4. Fixing the checksum:
    This step is very important, since you'll end up with a corrupt save file if your edited file doesn't pass the checksum integrity check. The checksum is stored in offsets 14DB and 14DC and is a simple CRC-16 checksum. If you need to recalculate it for your edited save just fill in those two bytes with 00 00 and let your hex editor (I use HxD) calculate the CRC-16 checksum for the entire file. Fill in the result in REVERSED ORDER (if the hex editor stated that the checksum is 12 34 you'd have to enter it as 34 12)

    I will update this post with more info as I progress through the game. I'd also greatly appreciate if you could make any contributions or you could also help me very much if you'd send me a completed save file of the game, preferably already decrypted as a save0x.bin file.

    I also want to apologize for some wrong technical terms I might have used, I'm still kind of a beginner when it comes to hex editing.

    Now if only we could edit the RAM as well...personally, I'd love some Infinite Ammo or "Always have a Fairy in bottle #1" type of cheats :P
     
  2. daxtsu

    daxtsu GBAtemp Guru

    Member
    5,546
    3,955
    Jun 9, 2007
    Antarctica
  3. MichiS97
    OP

    MichiS97 "Leftist snowflake milennial"

    Member
    GBAtemp Patron
    MichiS97 is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    1,359
    759
    Jun 14, 2011
    Germany
    Munich
    I feel so useless right now :P
     
  4. Woody8275

    Woody8275 GBAtemp Advanced Fan

    Member
    635
    91
    Sep 4, 2013
    I think you made a mistake 14DB is 00 always and 14DC does not exist in the save file
    Its 14D8 and 14D9 before the last 2 bytes which are always 00
     
    Last edited by Woody8275, Nov 18, 2015
  5. MichiS97
    OP

    MichiS97 "Leftist snowflake milennial"

    Member
    GBAtemp Patron
    MichiS97 is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    1,359
    759
    Jun 14, 2011
    Germany
    Munich
    Yup, you're right.
     
  6. Bobissad

    Bobissad Member

    Newcomer
    21
    3
    Jan 17, 2016
    Macau
    Hi guys
    I need a ocarina of time save at the spirit temple or before it.