Sonic and Sega Retro Message Board: Exploring Sonic Championship - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
Page 1 of 1
    Locked
    Locked Forum

Exploring Sonic Championship Oddities abound!

#1 User is offline Tiberious 

Posted 24 October 2012 - 10:26 PM

  • Yeah, I'm furry. Got a problem?
  • Posts: 559
  • Joined: 18-August 03
  • Wiki edits:1
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:

Quote

SONIC .
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


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.
-------.
-------.
-------.
-------.
-------.


'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.

#2 User is offline biggestsonicfan 

Posted 24 October 2012 - 11:08 PM

  • Model2B Junkie
  • Posts: 316
  • Joined: 09-May 07
  • Gender:Male
  • Project:Sonic the Fighters ... Always
I made a program to combine .15 and .16 years ago, it will also split the edited .BIN file back into the ROM and makes it playable.

If you want, I can dig through all my notes and post some stuff. Been a few years since I actually messed with the combined ROM files though. Here's the Sonic the Fighters binary and Sonic Championship binary.

Fighting Vipers Bookkeeping for comparison.

Quote

JANE �
GRACE �
HONEY �
TOKIO �
BAHN �
PICKY �
RAXEL �
SANMAN �




JANE �
GRACE �
CANDY �
TOKIO �
BAHN �
PICKY �
RAXEL �
SANMAN �




BASKES�
CAMP�
EZ�
GANG�
JAPAN�
PIKY�
RAXEL�
SAN�
SHUN�
ACHO�
LION�
DUM3�
DUM4�
-----�
-----�
-----�


Note the names are listed twice for the region settings.
This post has been edited by biggestsonicfan: 24 October 2012 - 11:23 PM

#3 User is offline Tiberious 

Posted 25 October 2012 - 12:30 AM

  • Yeah, I'm furry. Got a problem?
  • Posts: 559
  • Joined: 18-August 03
  • Wiki edits:1
So that explains most of them. Makes sense that they'd be leftovers of leftovers.

The one it doesn't explain is 'KOTAILS'. Still no clue what that was supposed to be.

Edit: Would be nice if you could post that tool up. Beats the hell out of having to try hacking the ROMs separately.
This post has been edited by Tiberious: 25 October 2012 - 01:21 AM

#4 User is online Caniad Bach 

Posted 25 October 2012 - 08:12 AM

  • Let's go make some CRAZY money!
  • Posts: 1576
  • Joined: 18-March 10
  • Gender:Male
  • Location:Cardiff
Maybe it was planned to have Tails pull you up if you were thrown out of the ring?

#5 User is online Black Squirrel 

Posted 25 October 2012 - 10:40 AM

  • buy my lovely game
  • Posts: 2821
  • Joined: 27-December 03
  • Gender:Male
  • Location:Northumberland, England
  • Project:Sega Retro
  • Wiki edits:20,569
My guess is that "KO Tails" was used for the super-early press shots. Rather than having playable characters at that stage, each "slot" might have just been an animation
http://sost.emulatio...icfighters1.jpg
http://sost.emulatio...he_fighters.jpg

Tails is the only one ever seen to not be standing still. In some of these shots he appears to be floating about, or perhaps "KO-ed". Maybe that's what that slot was used for.


In Fighting Vipers, one of its major selling points was the idea that characters could be kicked through the sides of the stage in an ultra-dramatic fasion. It's probably based on that.

#6 User is offline biggestsonicfan 

Posted 25 October 2012 - 08:32 PM

  • Model2B Junkie
  • Posts: 316
  • Joined: 09-May 07
  • Gender:Male
  • Project:Sonic the Fighters ... Always

View PostTiberious, on 25 October 2012 - 12:30 AM, said:

Edit: Would be nice if you could post that tool up. Beats the hell out of having to try hacking the ROMs separately.

I'll have to re-make it this weekend. I built other routines inside that program to take care of another hacking project that was similar.

View PostBlack Squirrel, on 25 October 2012 - 10:40 AM, said:

My guess is that "KO Tails" was used for the super-early press shots. Rather than having playable characters at that stage, each "slot" might have just been an animation
http://sost.emulatio...icfighters1.jpg
http://sost.emulatio...he_fighters.jpg

Tails is the only one ever seen to not be standing still. In some of these shots he appears to be floating about, or perhaps "KO-ed". Maybe that's what that slot was used for.


In Fighting Vipers, one of its major selling points was the idea that characters could be kicked through the sides of the stage in an ultra-dramatic fasion. It's probably based on that.


I've got a gut feeling that that isn't the case. The tails that Tails has there are still objects programmed into the game, but I'm assuming the model rigging used for that model is long gone. In fact, there are a lot of objects in the game that 100% match these early press photos. They are static, non rigged objects just placed in stages. Tails's tails are now a series of objects which cycle through an animation, much like a 3D sprite.

#7 User is offline Dr. Kylstein 

Posted 25 October 2012 - 10:22 PM

  • Posts: 84
  • Joined: 05-June 08
  • Gender:Not Telling

View PostTiberious, on 24 October 2012 - 10:26 PM, said:

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.

That interleaving looks like 16-bit ROM chips being used in a 32bit system. The pointers are probably little-endian, but my brief look into the i960 hasn't turned up anything about it. (I hope I'm not being a Captain Obvious here. )

#8 User is offline Tiberious 

Posted 26 October 2012 - 03:33 PM

  • Yeah, I'm furry. Got a problem?
  • Posts: 559
  • Joined: 18-August 03
  • Wiki edits:1
Here's what has me scratching my head...

I can find about 5 references to the start of a pointer list that points at the various names on the high score screen, including the extra blank spots (097D1C), but apparently nothing that says which characters use what spaces.

My goal is to be able to put names in for all the 'extra' characters so that they will have at least unique names for the 'top 15' list.

Here's my intended names for when I figure this out:

08 - Eggman (Fighters) / Robotnik (Championship)
09 - B.E. / B.R. (to match the FV Mahler/B.M. distinction)
0B - Egg-Mech (there's a texture under the ground when you fight this boss saying 'E-MECH ACTIVATED')
0C - EGG-1701
0D - EggRobot
0E - R.Metal


The idea being that currently, 'Eggman' shows when you use characters 08, 09, 0B, or 0C, and there's no way to tell which one was actually played. Same for the first blank name being shared by Rocket Metal and the 'EggRobot'.

I'm not sure how I can stop those times from being written to the 'Top Times for Each Character' fields, but small steps for now.

#9 User is offline biggestsonicfan 

Posted 27 October 2012 - 01:48 AM

  • Model2B Junkie
  • Posts: 316
  • Joined: 09-May 07
  • Gender:Male
  • Project:Sonic the Fighters ... Always
Rebuilt my utility with knowledge I've obtained in the few years that I didn't have when I made my first one.

Get it here
New version here! Added support for merging .7 and .8 files, also decreased overall filesize by 1/3.

When you split a merged bin file, it will automatically recognize if it's SCHAMP or SFIGHT and name the files accordingly, ready for emulator use.

If there are any bugs please let me know.

EDIT:

What you said about pointers... I'd never realized that before... this could change the game completely...

Posted Image

First attempt, but I may be able to restore the debug menu.

EDIT2:

Got a texture display menu working. Won't display textures, but the menu itself works... I think the menu is supposed to be activated DURING a game or something?

Posted Image

HOW THIS WORKS:

Offset 0x0DCA64 in SCHAMP.bin said:

B8 BE 05 00 B0 BA 09 00

The first 4 bytes are a pointer to 0x05BEB8, which begins the Memory Test function
The second 4 bytes are a pointer to 0x09BAB0, which is the Memory Test menu select item within the service menu.

The texture menu routine begins at 0x05B57C

So if I replace the existing offsets with the following, I can access the texture menu: 7C B5 05 00 B0 BA 09 00

Hopefully with that information out there, we'll be able to access other routines in the game that are unused.

EDIT3:

This is not the debug mode I'm looking for...
Spoiler


EDIT4:

Test Menu Offsets for SFIGHT (Schamp crashes more often)
Spoiler

This post has been edited by biggestsonicfan: 30 October 2012 - 10:46 PM

Page 1 of 1
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users