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
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
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
This post has been edited by BiafraRepublic: 13 April 2013 - 07:45 AM


00