NOTE: This is for schamp.zip, the US version of Sonic the Fighters. Things may very well have moved around in the sfight.zip ROMs. Further, these are the 15 and 16 ROMs. I haven't really looked much at the 7 and 8 ROMs, which are the second half of the program.
If you want to see these for yourself, you'll need a hex editor, and this zip file. It has the 15 and 16 ROMs, as well as the two combined, extracted from a memory dump of the Model 2 Emulator.
So, with the rerelease of Sonic the Fighters announced, I started looking in the Model 2 ROMset again, just to see what there is. Some things, though, just made me shit bricks. Here's some of what I've found.
First off, at 0DADE4, the data there, in both the ROMs and the dump, is a select screen hack, so the data isn't original (Sorry).
If you want to restore the original data, look below.
hack: 00 01 06 02 04 07 0A 05 0D 03 0E 0B 08 0F
(Sonic, Tails, Knuckles, Amy, Nack, Espio, Bean, Bark, 'Eggman's Robot', Metal Sonic, Rocket Metal, Eggman (Mech), Eggman, Honey)
(Note: 0D is the number of entries in the list as well as the 'Eggman's Robot' character)
original: 00 01 04 0A 05 07 02 06 07 07 00 00 00 00 00
(Sonic, Tails, Nack, Bean, Bark, Espio, Amy, Knuckles)
Now, go back up to 097CA0...
This area deals with the 'High Scores' screen. At first, you'll see some of the default initials, and later on, you'll come across this:
Yes, you see that right. Each name has a full 10 characters, even if only 3 get used, and there are a whopping 13 blank slots. However, before you get too carried away, unless a hack can be done to point other characters at these blank spaces, most are going to be useless for now, as both Rocket Metal and 'Eggman's Robot' use the first blank space.
At 097EF0, you'll find an initials filter and replace scheme.
There are 8 that will trigger a replacement. These are:
('bad' initials first, then replacement initials; an underscore is a space)
The first few are fairly self-explanatory, but later entries are, well, a bit strange. Why 'YOS' or 'HAC' is filtered, I don't know. 'HAC' is an even odder case, as it gets changed to the number '894', despite there not even being numbers available normally. The final one is also a real headscratcher, as it apparently 'changes' the initials to exactly what you entered, making it a pointless entry.
But for a real 'WTF?' moment... go to 090C80. This text apparently is in with the Bookkeeping data. Again, it's a list of character names, but check them out:
'SHUN'? Like Shun Di? 'LION'? I mean, considering Fighters was built on Fighting Vipers, 'PI[C]KY' might be reasonable, but Virtua Fighter characters? And just what the hell is a 'KOTAILS'? Oh look, some extra blank slots.
I'm not quite as technically inclined as other members here, so maybe other things can be dug up.
Things to note:
This game uses a strange interleaving pattern, where if the first 16 bytes of the 'whole' are:
then the .15 file will have its first 8 bytes as:
and the .16 file will fill it out with its first 8 bytes being:
Pointers are backwards. For example, the first high score character name entry ('SONIC .') is at 097D84. In order to search for the pointer to it, you would search for: 84 7D 09 00.
If anyone else learns anything, post it up here. My hope is this initial set of finds turns into a concerted effort to bend this title to our will.
If you want to see these for yourself, you'll need a hex editor, and this zip file. It has the 15 and 16 ROMs, as well as the two combined, extracted from a memory dump of the Model 2 Emulator.
So, with the rerelease of Sonic the Fighters announced, I started looking in the Model 2 ROMset again, just to see what there is. Some things, though, just made me shit bricks. Here's some of what I've found.
First off, at 0DADE4, the data there, in both the ROMs and the dump, is a select screen hack, so the data isn't original (Sorry).
If you want to restore the original data, look below.
hack: 00 01 06 02 04 07 0A 05 0D 03 0E 0B 08 0F
(Sonic, Tails, Knuckles, Amy, Nack, Espio, Bean, Bark, 'Eggman's Robot', Metal Sonic, Rocket Metal, Eggman (Mech), Eggman, Honey)
(Note: 0D is the number of entries in the list as well as the 'Eggman's Robot' character)
original: 00 01 04 0A 05 07 02 06 07 07 00 00 00 00 00
(Sonic, Tails, Nack, Bean, Bark, Espio, Amy, Knuckles)
Now, go back up to 097CA0...
This area deals with the 'High Scores' screen. At first, you'll see some of the default initials, and later on, you'll come across this:
Quote
SONIC .
TAILS .
AMY .
BEAN .
FANG .
BARK .
KNUCKLES .
ESPIO .
METAL .
EGGMAN .
HONEY .
SUPERSONIC.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TAILS .
AMY .
BEAN .
FANG .
BARK .
KNUCKLES .
ESPIO .
METAL .
EGGMAN .
HONEY .
SUPERSONIC.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Yes, you see that right. Each name has a full 10 characters, even if only 3 get used, and there are a whopping 13 blank slots. However, before you get too carried away, unless a hack can be done to point other characters at these blank spaces, most are going to be useless for now, as both Rocket Metal and 'Eggman's Robot' use the first blank space.
At 097EF0, you'll find an initials filter and replace scheme.
There are 8 that will trigger a replacement. These are:
('bad' initials first, then replacement initials; an underscore is a space)
Quote
SEX - HEX
XXX - TX_
XX_ - WX_
X_X - WX_
___ - S.F
YOS - CGT
HAC - 894
OSI - OSI
XXX - TX_
XX_ - WX_
X_X - WX_
___ - S.F
YOS - CGT
HAC - 894
OSI - OSI
The first few are fairly self-explanatory, but later entries are, well, a bit strange. Why 'YOS' or 'HAC' is filtered, I don't know. 'HAC' is an even odder case, as it gets changed to the number '894', despite there not even being numbers available normally. The final one is also a real headscratcher, as it apparently 'changes' the initials to exactly what you entered, making it a pointless entry.
But for a real 'WTF?' moment... go to 090C80. This text apparently is in with the Bookkeeping data. Again, it's a list of character names, but check them out:
Quote
SONIC .
TAILS .
AMY .
METAL .
FANG .
PIKY .
KNUCKLES .
SAN .
SHUN .
DUM1 .
LION .
DUM3 .
KOTAILS.
-------.
-------.
-------.
-------.
-------.
TAILS .
AMY .
METAL .
FANG .
PIKY .
KNUCKLES .
SAN .
SHUN .
DUM1 .
LION .
DUM3 .
KOTAILS.
-------.
-------.
-------.
-------.
-------.
'SHUN'? Like Shun Di? 'LION'? I mean, considering Fighters was built on Fighting Vipers, 'PI[C]KY' might be reasonable, but Virtua Fighter characters? And just what the hell is a 'KOTAILS'? Oh look, some extra blank slots.
I'm not quite as technically inclined as other members here, so maybe other things can be dug up.
Things to note:
This game uses a strange interleaving pattern, where if the first 16 bytes of the 'whole' are:
Quote
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
then the .15 file will have its first 8 bytes as:
Quote
00 01 04 05 08 09 0C 0D
and the .16 file will fill it out with its first 8 bytes being:
Quote
02 03 06 07 0A 0B 0E 0F
Pointers are backwards. For example, the first high score character name entry ('SONIC .') is at 097D84. In order to search for the pointer to it, you would search for: 84 7D 09 00.
If anyone else learns anything, post it up here. My hope is this initial set of finds turns into a concerted effort to bend this title to our will.


03


