Hacking Made Easier

Debug Menu In Sonic CD

If you do some serious hacking, you might find it irritating when you, say, hack Stardust Speedway Act 1 Past, then find out that you had already beaten the game and you will have to play it all through again to see what was changed (only to discover it crashes the game...). Of course, you could always rely on Stage Select, but putting in that stupid code with a keyboard can virtually take MINUTES sometimes...all in all, it gets annoying after a while. What's a hacker to do?

This is where 'Debug Menu' hops in. Don't worry, it's not a separate program to ease level access, nor it is some weird function you must costumize the Sonic CD executable to get. No...it's a menu that was used by testers and coders to ease the pain of going through the game to see if everything works as expected. It has been really hidden from the eyes of the public until a man called Danil Galimov (forgot the email address, but it is somewhere in SSRG's hacking utilities section AFAIK) broke it free.

In order to activate it, you must first seek and locate the 'SONIC.INI' file in your c:/windows directory... or any directory where Windows keep their system and installation information files, for that matter. (Obviously, in order to get the file there, you must have Sonic CD installed on your HD...) Open it in Notepad and add the following 2 (two) lines:
[Secret]
User=Debugger
Save the file and go play Sonic CD...a bunch of stuff has appeared in the menu!

Thorough Explanation

There are two new options: Stage and FUNC.

I won't go into the depths of 'Stage' menu as it is self-explanaitonal...if you need help, check the /R1 sublist.

"FUNC" is really powerful stuff. It lets you do nearly anything possible! You ever wanted to record you own in-game demo? No problem! Selecting a particular feature will trigger the game to create a KeyXXX.bin file, where the X's are replaced by numbers of the stage you were just playing (the feature is buggy and sometimes 0 B sized files will be saved, but hey, it's the thought that counts...). You can do lots of other stuff as well, like resetting the whole map, prevent the game from playing sound and/or music etc. Let's take a look at it:

/FUNC

SpriteCmp

Apparently, this feature tells the game whether or not to display sprties...but it still needs to be researched and explained properly.

Mapinit ()

Resets the current stage/time period Sonic is in.

DEBUGFLAG
SPECIALDEBUG
TIMEWARP
GO_SPECIAL

'DebugFlag' turns debug mode ON/OFF (yipee!), 'SpecialDebug' stops the time in Special Stages, 'TimeWarp' toggles timewarping abilty (turned OFF when playing in Time Attack), and 'GoSpecial' instantly warps you into the nearest Special Stage.

GOODEND
Flags

I have no idea why they stuck these two in the same section. O_o 'Goodend'...well...displays the game's Good Ending, while 'Flags' shows flags the game triggers during gameplay. These cannot be altered, and they may only serve useful to coders / debuggers.

Frame
/60
/30

Serves the same function as the 'Smooth Sonic' and 'Fast Sonic' in the regular menu. Period.

Timer (STAT)
TimerInit (STAT)
AVE_300Frame (STAT)

These have some importance to Sonic CD's internal clock (1 tick = 1 second). 'Init' resets the timer...it could be used on the title screen where a demo is shown after a certain amount of time, but I'm not sure.

MM_TIMER

Apparently, different timer is used for the game's multimedia features (music, AVI movies...).

SndMemFree

Frees the sound buffer. It's either this one or 'WaveClose' (see below) that stops playing sound effects.

DEMO
/AVI
/11a
/SPE1
/43c
/SPE5
/82a

Select the demo you want to watch the next time title screen comes up.

WAVEOPEN
WAVECLOSE

Stops playing sounds, I think. Why would you want to prevent the game from playing any sounds, you ask? Well, for one thing, the gameplay becomes incredibly fast...

CDRESET

Resets everything that wasn't saved during the game. Sort of a 'cold reset', like the good old days when you had a Reset button on SEGA consoles...

RecStart (DEMO)
RecEnd
RecPlay
RecRead
RecWrite

The above functions are absolutley frickin' incredible! O_o To record a demo, choose a level you wish to record via the 'Stage' menu (explained below). Then, when you are ready, choose:
RecStart (DEMO)
This thing will start recording your keyboard presses, Sonic's movement, actions et cetera. When you think you've recorded enough, select
RecWrite
followed by
RecEnd.

Check the Sonic CD root directory...a new file, called KeyXXX.bin should be created (X's are, of course, the stage number...e.g. 71a for Wacky Workbench act 1 Present). If the file size reads more than 0 B, congrats, you have just recorded your own Sonic CD in-stage movie demo! If not, try choosing 'RecWrite' BEFORE 'RecStart (DEMO)', that might help.

The tricky part? PLAYING your demo. For now, I know of no other way but to record Palmtree Panic act 1 Present, Metallic Madness act 2 Present and Tidal Tempest act 3 Good Future demos, along with Special Stage ones, for one simple reason: the game has been instructed to play these demos ONLY! Well, you can do what I did... recorded a demo of Wacky Workbench (Key71a.bin) and renaming it into Palmtree Panic (Key11a.bin). See what happened - put this file into your Sonic CD root directory, then wait for the game to play it (Wow, I have no idea how I could time a jump in Wacky Workbench to destroy a badnik in Palmtree Panic...O_o). Still, you can record your best times of PPZ 1 Present or MMZ 2 Present, or even Special Stage times, and send them to your friends if they don't believe you. ^_^
The file sizes vary from 6 KB to 36 KB depending on the time you spend recording the demo. This is absolutley the best feature I've found while hacking Sonic CD, and I'm working on enhancing the menu to play ALL the demos you record. Have fun.

Back To Main