don't click here

Sonic CD for Android Save Game Hacking Guide 1.0

Discussion in 'Engineering & Reverse Engineering' started by BiafraRepublic, Dec 22, 2011.

  1. BiafraRepublic

    BiafraRepublic

    SSR DJ, longtime TSS staffer, and all-around nice/ Oldbie
    29
    0
    0
    Unincorporated Galveston County, TX, USA
    A/V Hijack: Mondays 6-8PM GMT/BST on SSR - http://j.mp/ssrsite
    SONIC CD FOR ANDROID SAVE HACKING GUIDE 1.0
    by BiafraRepublic
    biafra.republic-at-gmail.com

    --{This is a line to make sure this falls within the 79-character limit.}--
    12345678901234567890123456789012345678901234567890123456789012345678901234567
    ---------------------------------------------------------------------------

    WARNING: IF YOU FIND THIS GUIDE ON ANOTHER DOMAIN BESIDES THOSE LISTED BELOW,
    THEN IT WAS POSTED WITHOUT MY PERMISSION. PLEASE REPORT SUCH SITES BY
    EMAILING ME AT THE ADDRESS ABOVE.

    The following domains have permission to host my guide, and will have the
    latest (read: whenever I get to it) updates:

    forums.sonicretro.org
    gamefaqs.com
    gamespot.com
    biafrarepublic.me

    VERSION HISTORY
    ---------------------
    1.0 4/13/13
    ---
    * Added info for the bit used to Unlock Tails. Thanks John McCoy!

    0.5 12/24/11
    ---
    * Added Selected Character info for each slots
    * Formatted Guide for GameFAQs & GameSpot submission

    0.4 12/23/11
    ---
    * Added info for remaining slots

    0.3 12/23/11
    ---
    * Added Info for game settings

    0.2 12/23/11
    ---
    * Added Time Attack Settings

    0.1 12/22/11
    ---
    * Initial Post on forums.sonicretro.org

    INFO
    ------
    So far, delving into the save game file for the newly-released Android port
    of Sonic CD with a hex editor (I've been using HxD myself. YMMV on this)
    has yielded interesting results. The save game file, SGame.bin for Sonic CD
    for Android is located on your device's external storage area(where it
    copies all the files to when you clock "Move to SD" in Manage Applications),
    making it easy to access using USB Storage or ADB. The Starting addresses
    are as follows(all input order is little-endian unless otherwise noted)...:

    This save file can be found in the com.sega.soniccd/files wherever your
    external storage is located.

    For Android 2.1-4.1 devices:
    /mnt/sdcard/Android/data

    For Android 4.2 devices (where [x] is a given user's number, sans brackets):
    /storage/emulated/[x]/Android/data





    0x00: Character for Slot 1 (See "Characters" below)
    0x04: Number of Lives for Slot 1
    0x08: Score for Slot 1, stored as a 32-bit unsigned integer
    0x0C: Zone/Act for Slot 1 (see "Acts" below)
    0x10: Timestones collected variable for slot 1 (see "Timestones" below)
    0x20: Character for Slot 2 (See "Characters" below)
    0x24: Number of Lives for Slot 2
    0x28: Score for Slot 2, stored as a 32-bit unsigned integer
    0x2C: Zone/Act for Slot 2 (see "Acts" below)
    0x30: Timestones collected variable for slot 2 (see "Timestones" below))
    0x40: Character for Slot 3 (See "Characters" below)
    0x44: Number of Lives for Slot 3
    0x48: Score for Slot 3, stored as a 32-bit unsigned integer
    0x4C: Zone/Act for Slot 3 (see "Acts" below)
    0x50: Timestones collected variable for slot 3 (see "Timestones" below)
    0x60: Character for Slot 4 (See "Characters" below)
    0x64: Number of Lives for Slot 4
    0x68: Score for Slot 4, stored as a 32-bit unsigned integer
    0x6C: Zone/Act for Slot 4 (see "Acts" below)
    0x70: Timestones collected variable for slot 4 (see "Timestones" below)
    0x84: Music Volume: Minimum Level=00h=0, Maximum level=64h=100
    0x88: Sound Effect Volume: Minimum Level=00h=0, Maximum level=64h=100
    0x8C: Spin Dash setting: 00h=Genesis style, 01h=Original style
    0x90: Unlock Tails when selecting a New Game bit: 00h=No 01h=Yes
    0x98: Soundtrack setting: 00h=JP, 01h=US
    0xC0: Time Attack times in 1/100 of a second for each time attack level.
    These are in 32-bit unsigned integers as well. Handy for unlocking
    D.A. Garden, Visual Test, Sound Test, and Level Select, which are
    unlocked based the sum of these variables being less than a given
    value.

    CHARACTERS: 00h=Sonic, 01h=Tails

    ACTS: Apparently, the game treats each place in time (Past, Present,
    Good Future, Bad Future) as an act/level proper, so there are 10
    Zone/Act Variables for each zone, (4 each for acts 1 and 2, and
    2 for act 3)

    TIMESTONES: The variable is the hexadecimal representation of a binary
    array of which Timestones Sonic has. Example:

    G=Green, O=Orange, Y=Yellow, I=Dark Blue, B=Light Blue, P=Purple, R=Red

    Code (Text):
    1. +-+-+-+-+-+-+-+
    2. |R|P|B|I|Y|O|G|
    3. +-+-+-+-+-+-+-+
    4. |6|3|1| | | | |
    5. |4|2|6|8|4|2|1|
    6. +-+-+-+-+-+-+-+
    7. |0|1|0|1|0|1|1|=43=2Bh
    8. +-+-+-+-+-+-+-+
    9.  
    Anyways, have fun, and remember to back up before you tinker...

    CREDITS
    -------
    SEGA West, for creating this game
    Christopher "Taxman" Whitehead, for porting to Android
    Maël Hörz, for HxD
    John McCoy, for finding the Unlock Tails bit.
    Sonic Retro, for hosting this
    Dr. Pepper Snapple Group, for the caffeine
    YOU, for reading this
     
  2. Aerosol

    Aerosol

    Not here. Moderator
    11,162
    572
    93
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Isn't there a leaderboard on the Android version? This is going to wreck havoc on it.
     
  3. BiafraRepublic

    BiafraRepublic

    SSR DJ, longtime TSS staffer, and all-around nice/ Oldbie
    29
    0
    0
    Unincorporated Galveston County, TX, USA
    A/V Hijack: Mondays 6-8PM GMT/BST on SSR - http://j.mp/ssrsite
    As far as I can determine, there is no native leaderboard on Sonic CD for Android, nor are there any external leaderboard libraries such as OpenFeint or ScoreLoop.
     
  4. Aerosol

    Aerosol

    Not here. Moderator
    11,162
    572
    93
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Ah, alright then.
     
  5. BiafraRepublic

    BiafraRepublic

    SSR DJ, longtime TSS staffer, and all-around nice/ Oldbie
    29
    0
    0
    Unincorporated Galveston County, TX, USA
    A/V Hijack: Mondays 6-8PM GMT/BST on SSR - http://j.mp/ssrsite
    A quick update has been posted to add in the addresses for the other save slots. Enjoy.
     
  6. BiafraRepublic

    BiafraRepublic

    SSR DJ, longtime TSS staffer, and all-around nice/ Oldbie
    29
    0
    0
    Unincorporated Galveston County, TX, USA
    A/V Hijack: Mondays 6-8PM GMT/BST on SSR - http://j.mp/ssrsite
    Updated guide to show new address for Unlocking Tails. Thank you John McCoy (johnmccoy1991 -at- gmail -dot- com) for this! :D
     
  7. Covarr

    Covarr

    Sentient Cash Register Member
    4,233
    3
    18
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    Nope, try again. Christian Whitehead.

    I might make a GUI tool based on this research, if I ever stop being lazy. If I do, it'll be Windows only, because it's easier and I'm lazy. Strong chance that I'll forget about it before I get around to doing anything, though, because I'm lazy.
     
  8. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    A lot of this seems eerily familiar... almost as if I've seen much of it before... HERE (albeit on a different platform)
    I'd advise taking a look at mine, as you'll notice some missing info regarding Machines and Holograms, and other things.
    Good guide, though missing some items that my guide can fill in some of the blanks for. Easy enough considering its the same game, therefore the SGame.bin's are similar enough for both.
     
  9. BiafraRepublic

    BiafraRepublic

    SSR DJ, longtime TSS staffer, and all-around nice/ Oldbie
    29
    0
    0
    Unincorporated Galveston County, TX, USA
    A/V Hijack: Mondays 6-8PM GMT/BST on SSR - http://j.mp/ssrsite
    To be fair, mine was earlier than yours. Check the opening post date above.

    Also, there are differences between the iOS and Android guides (No known achievement system on Android, mine has the addresses of all FOUR save slots, etc.)
     
  10. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Yes I am aware. Just pointing it out as the files in question ARE very similar... I would've thought they wouldn't be quite the same, as they are different platforms... but maybe that has nothing to do with it... On a side note though, I'm surprised I never noticed this guide when it came out then...

    I did notice had some differences in offsets, some missing from each. (A couple of which you pointed out due to the Android not having an Achievements function) And mine also does have all 4 slots. Maybe my way of wording the stuff wasn't that great. I noted it before going into the offsets.

    I did this to save writing time... Also were you able to figure out how Special Stages work with this offset?