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 +-+-+-+-+-+-+-+ |R|P|B|I|Y|O|G| +-+-+-+-+-+-+-+ |6|3|1| | | | | |4|2|6|8|4|2|1| +-+-+-+-+-+-+-+ |0|1|0|1|0|1|1|=43=2Bh +-+-+-+-+-+-+-+ 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