don't click here

SADXPC save files

Discussion in 'Engineering & Reverse Engineering' started by RattleMan, Jan 4, 2009.

Thread Status:
Not open for further replies.
  1. RattleMan


    Here are my notes on what I've found so far for SADXPC's .snc save files located in the "savedata" folder. I hope to add more to this very soon.

    Sonic Adventure DX PC: Savefile hacking, Japanese version
    2009-01-04, 1148z


    SADXPC save files seem to have a checksum somewhere
    which will not allow you to load your file if it has been hacked.
    To circumvent this, do the following:

    1) Have at least two save files present in the SADXPC "savedata" folder
    2) Boot SADXPC up
    3) Go to the initial file select screen
    4) Select the file you are NOT hacking and load it
    5) Head to the Options and choose File Change
    6) Put the "cursor" over the file you are NOT hacking, but don't load it
    7) Leave SADXPC open and hack using your hex-editor; save the file when done
    8) Return to SADXPC, select the file you hacked and load it
    9) Go to Message Settings and select any option so that the game saves.

    Your hacked file is now able to be used! If you ever forget to do these steps,
    your save file will not be visible in the file select dialog. Just rename one of the working files to the hacked file and the hacked file to the working file while SADXPC is still open and complete the above steps.
    SCORES, stored in the save file in order by internal level number

    Practically, stored in "backwards" order, e.g. a score of 104,340 (19794 in hex)
    in Sonic's Speed Highway is stored as the three bytes 94 97 01 in a block
    between 0x14 and 0x16.

    In actuality, the available score is four bytes long (in Sonic's Speed Highway, 0x14-0x17),
    but the score counter of the Trial menu can't show beyond three bytes
    (highest is 999,999 [0F423F, stored as 3F 42 0F])
    Emerald Coast: 0x0A, 0x09, 0x08
    Windy Valley: 0x0E, 0x0D, 0x0C
    Casinopolis: 0x2A, 0x29, 0x28
    Icecap: 0x26, 0x25, 0x24
    Twinkle Park: 0x12, 0x11, 0x10
    Speed Highway: 0x16, 0x15, 0x14
    Red Mountain: 0x1A, 0x19, 0x18
    Sky Deck: 0x1E, 0x1D, 0x1C
    Lost World: 0x22, 0x21, 0x20
    Final Egg: 0x2E, 0x2D, 0x2C


    Each mission status is stored as one byte, with Mission #1 at 0x4A0 and Mission #60 at 0x4DB.

    Valid mission statuses are:

    00 (not activated)
    41 (activated but not completed)
    C0 (activated and completed)

    The GameGear games unlocked are determined by the amount of missions completed.

    0x268 controls who is unlocked, represented in binary; 1 = unlocked, 0 = locked. There
    are seven valid bits used for the seven characters and an eighth bit at the end which is nothing.


    a = Super Sonic (I.e. 10000000 for only Super Sonic unlocked)
    b = Big
    c = E-102
    d = Amy
    e = Knuckles
    f = Tails
    g = Sonic
    h = [seems to be unused]

    Example -> Everyone except Super Sonic unlocked: 01111110 (7E in hex)
    Example -> Only Super Sonic unlocked: 10000000 (80 in hex)
    Example -> Only Super Sonic and Amy unlocked: 10010000 (90 in hex)

    EDIT: Typo
  2. PsychoSk8r


    PsychedelAnt | Tone Turner Oldbie
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Ah, it's great to see you're still researching all this. Some excellent notes you have there! I'll definately be putting them to good use later.
  3. Err...whenever I go out of SADX' window (or minimize it from full screen, either way) it closes >_>
  4. GIHunter


    A little groundless theory, but, I think h could possibly be Metal Sonic, because isn't Metal Sonic unlocked differently than everyone else? Other than that, interesting finds. Keep up the good work.
  5. Dude


    Tech Member
    Southbridge, MA
    Random VR/AR trash
    Yeah, sadx doesn't support alt-tab. You'll have to run it in windowed mode to do that.

    Change 'screen' from 1 to 0 in sonicdx.ini
  6. RattleMan


    Tonight's update brings a complete emblem documentary and the total play time.


    Stored in 17 bytes between 0x240 and 0x250, represented in binary format, stored in internal level order. Refer to the section “LEVEL ORDER REFERENCE” for help on determining what levels you're modifying.

    ~Level A/B/C-Ranks~

    0x240 = Eight of Sonic's A-ranks (8)
    0x241 = Sonic's remaining two A-ranks (2), all of Tails’ (5), one of Knuckles’ (1)
    0x242 = Knuckles’ remaining (4), all of Amy's (3), one of E-102's (1)
    0x243 = E-102's remaining (4), all of Big's (4)

    0x244, 0x245, 0x246, and 0x247 control the character's B-ranks (36)
    0x248, 0x249, 0x24A, and 0x24B control the character's C-ranks (36)

    Example -> Changing 0x240 from FF to 00 removes eight level A-rank emblems from
    Sonic, removed in internal level order (only Casinopolis and Final Egg are unchanged,
    but this is because they are levels 9 and 10, which are not covered by this byte)

    Example -> Changing 0x241 from FF to 00 removes the remaining A ranks from Sonic, all of Tails’ A ranks, and one of Knuckles’
    0x24C controls both Twinkle Cart emblems (2), one Hedgehog Hammer emblem (1), both Sky Chases’ two emblems (4), and a Sand Hill emblem (1)

    0x24D controls all five Chao Race emblems (5), the other Sand Hill Emblem (1), the
    other Hedgehog Hammer emblem (1), and one of characters’ ending emblems (1)

    0x24E controls the remaining characters’ endings (6), and two emblems found in the Adventure Field [2] (likely Station Square)

    0x24F controls eight more Adventure Field emblems (8), of which two seem to be Station Square, all four of Egg Carrier, and two of Mystic Ruins’

    0x250 controls the last two emblems found in what seems to be the Mystic Ruins Adventure Field

    0x05, 0x06 and 0x07 control total time played on that save file. Change 0x07 for the biggest effect.

    This is useful when editing bytes represented in binary such as emblems.
  7. Dude


    Tech Member
    Southbridge, MA
    Random VR/AR trash
    you could probably find the checksum by making multiple save files, and comparing the differences in a hex editor.

    no idea on how to find out what kind of checksum they're using though.
  8. GerbilSoft


    RickRotate'd. Administrator
    I remember figuring out the checksum format for SA1 a while ago. I believe it was called "FCS-16". Not sure if SADX/PC uses the same format, since that checksum might have been a general-purpose VMU file checksum and not an SA1-only checksum.
Thread Status:
Not open for further replies.