If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Proto:Sonic the Hedgehog CD (Sega CD)/Ver0.02

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Proto:Sonic the Hedgehog CD (Sega CD).

Hiddenpalace.org logo.png  This prototype is documented on Hidden Palace.

Soniccd510titlescreen.png
Hmmm...
To do:
  • Layout differences in Palmtree Panic/Salad Plain, plus any potential unused sprites in the proto.

v0.02 is the earliest known prototype of Sonic CD for the Sega CD. The build is dated December 4th, 1992 (nine months and two days before final), predating the previously discovered 510 prototype, and was created for exhibition at the "Yuusei Sega World" event in Japan that year. It was dumped by drx on October 26th, 2019 as part of Hidden Palace's "Sonic Month."

Much of the game isn't implemented, or is buggy at best. In terms of gameplay, only Acts 1 and 2 of Palmtree Panic are present in this build, being the only level files that exist on the disk. This is also the only known prototype that acknowledges the infamous "R2", which is present in the Time Attack screen, and is selectable by using a hex editor but is not functional.

At this stage, the game calls itself CD Sonic the Hedgehog in English; an odd touch considering that the Japanese spelling does put the "CD" at the end of the name. An extra SEGA logo screen is present at the start, complete with classic "Se-ga!" jingle. It was removed after the 512 prototype.

Sub-Page

SonicCD002 Subpage1Icon.png
Layout Differences
So many small changes!

Title Screen

v0.02 - v0.28A Final
Soniccd510titlescreen.png SonicCDJPtitle.png

The title screen has several early elements that would be changed from v0.51 onward:

  • The game's title is CD Sonic the Hedgehog, rather than Sonic the Hedgehog CD.
  • A gold emblem with the Sega logo and the copyright date (1993) is present, but was removed from the final version.
  • The prototype's title screen is 320×224 at 60FPS, but was later changed to 256×224 at 20FPS.
    • All of the perspective effects in Sonic CD are calculated by a co-processor on the Sega CD, which produces tiles that have to be transferred to Genesis VRAM to be displayed. Given that this process has some bandwidth limitations, and that the Special Stage runs at the same resolution and framerate, it is likely that this accounts for the resolution drop in the final's title screen.
  • The clouds scroll from left to right, instead of using the Sega CD's graphics processor to render them scrolling towards the front.
  • Little Planet in the background is more washed out with some dithering.
  • A text string at corner right credits Japanese singer Keiko Utoku of contemporary pop-idol group Mi-Ke for the opening theme song, "Sonic - You Can Do Anything", for press purposes. The song itself also plays here, instead of the opening cutscene.

Salad Plain (Palmtree Panic)

Palmtree Panic was originally called Salad Plain, according to the Time Attack screen (see next section below).

Past Present Bad Future
CDSONIC0.02-SP1B.png CDSONIC0.02-SP1A.png CDSONIC0.02-SP2D.png
  • The color palette has slight differences, and the palette data and palette cycling data are still in the final game.
  • It's not possible to get a Good Future in this build. However, the level files for Good Future are present, alongside the flag that sets them as accessible.
  • To access the Good Future variants of the levels, set 0xFF127A in RAM to 1, or change bytes at 0xA1A in the Track 1 binary to 0070 for Zone 1, and 0058 for Zone 2.
  • The Present has a different background, notably shorter and less geometric mountains. This early background is the basis for the other time zones' backgrounds, which were unchanged in the final game. In addition, this build's background along with the final past/future backgrounds have a closer resemblance to Sonic The Hedgehog's Green Hill Zone.
  • The palm trees have a more asymmetrical design.

Time-Attack

You don't make friends with salad, Sega figured.
  • The graphics are extremely basic.
  • Times are saved by this point, with ATTACK.BIN having basic functions for Backup RAM handling.
  • Only Palmtree Panic Zones 1/2 are normally selectable, and is referred to as "Salad Plain." Although by hex editing values on the Time Attack menu, it is possible to bypass the restrictions of being stuck with R1-1 and R1-2 and you can select other levels. These entries don't have proper level loading command IDs defined, resulting in either a crash or loading an R1 level with the selected level's ID and time zone (which causes certain zone dependent things to switch on or off, and also affects which song plays during the level).
  • There are no additional zone previews on the left window for anything other than Salad Plain, and upon initialization, those graphics are hard-coded to always load.
  • This is the only prototype that explicitly references Round 2, the scrapped second round, which is listed as a level entry in the Time Attack menu. All other known versions of the game jump from R1 (Palmtree Panic) directly to R3 (Collision Chaos).
    • The table of IDs that the game pulls from for zones also has R2 present as level ID 0x100, with R3 (Collision Chaos) being ID 0x200, as every zone ID gets shifted forward by 1 compared to later builds.
  • Collision Chaos' Present theme is used here instead of the actual Time Attack music.

Graphical

  • Some of Sonic's animation frames are buggy. His "Peel-Out" animation isn't implemented.
v0.02 510 - Final
Note: The last sprite in the animation has part of it cut-off in-game. SCDImOuttaHereFinal.gif
  • The sprites for the "I'm outta here!" animation are quite different, with dimmer shading in certain frames as well as different posing for Sonic as he leaps off.
Sonic 1 v0.02 510 - Final
Sonic1 Spring.png SonicCD 0.02 Spring.png SonicCD Spring Final.gif
  • Sonic still has his spring frame from the original Sonic the Hedgehog, but it's not exactly the same - his shoes were redrawn to add the white stripe. The spinning animation also exists in this prototype, and is used during the time travel sequence.
  • The lives counter is placed slightly higher than normal, and there are no zeroes in the "SCORE" and "RINGS" counters. The RINGS counter does not flash red when the player has zero rings.
  • Active time warps are not yet indicated on the HUD.
v0.02 510 - v0.51 712 - Final
Soniccd 0.02 yousay.png
Soniccdgoalpost510proto.png
Soniccdgoalpostfinal.png
  • The goal post reads "You Say!", an apparent pun on "Yuusei," the name of the event where this build was featured[1], and does not spin when the player passes it. This also appears in the earliest screenshots available of the game.
  • The graphics for Palmtree Panic are more uniform, with less distinctions among the time zones.
  • The Time Attack mode looks nothing like the final, and features the early name for Palmtree Panic.
  • The time travel graphic is extremely basic, featuring only blue lines on a white background.

Sound

v0.02 Final
v0.02 v0.70 - Final
  • Palmtree Panic's Past theme is stored as CD audio, while in the final it was remade into sequenced PCM audio. It also uses a different mix.

The choice for the Past themes later using sequenced PCM audio is for space-related reasons; the CDDA version of the songs "just wouldn't fit" compared to the PCM ones.

(Source: Mazin on Twitter)

When accounting for four CD audio variations instead of three (for reference, an average Sonic CD track is 1-2 minutes, or 10-20 megabytes), the data and music stored on the Sonic CD disc amounts to 600 - 700 megabytes which is dangerously close to an audio CD's storage capacity limit (around 650 - 700MB).

v0.02 - v0.28A Final
  • The time warp sound is different, and very grating on the ears. This would be changed in v0.51, and again for v1.05.

Gameplay Differences

"I'm outta here!"

CDSonicv002ImOuttaHere.gif

The "I'm outta here!" trick (where Sonic jumps off the level after three minutes of no controller input) doesn't work the same as it does in the final version of the game: the camera tracks Sonic as he falls, and he dies when he reaches the bottom of the level instead of just disappearing and triggering a Game Over. Plus, after respawning, Sonic retains any rings previously collected.

Time Traveling

CDSONIC0.02-TRAVELFAIL.gif

Time traveling doesn't seem to work correctly, as using the spinners will instead cause the current level to restart rather than letting Sonic warp through time (the time warp appears short here because the black screens were trimmed out of the GIF).

Physics Oddities

CDSONIC0.02-1-1DG.gif

Sonic the Hedgehog's programming was used as the basis for Sonic CD, but at this point the physics weren't fully optimized for this game, resulting in several oddities:

  • In Salad Plain Bad Future, colliding with solid collision tiles whilst standing on the collapsing diamond platforms can cause glitches like the infamous "slope zip" glitch.
  • Charging a Peel-Out for about 21 seconds warps Sonic near the end of the act. Charging it several seconds longer will crash the game.
  • Running fast or charging a Spin Dash or Peel-Out does not cause the camera to move.
  • Sonic takes a lot longer to charge a Super Peel-Out. The maximum speed it gives is also limited by Sonic the Hedgehog's speed cap.

Miscellaneous

  • The game cannot be paused, and no code to pause the game exists yet.
  • Two additional item monitors are present in this build.
    • Blue Ring: When broken, Sonic will run faster and be granted temporary invincibility. In later builds it acts like a triple-layered shield (as-in, it gives three additional hits), but was later removed from levels.
    • Clock: Meant to freeze time for a few seconds, but is incomplete, as it only freezes the animation of objects other than Sonic.
  • Pressing Start on the second controller spawns a second Sonic. That player will then able to control that Sonic.
  • Collecting 50 rings does not spawn a Special Stage ring at the end of a level, as it is unimplemented.
  • The player can not change the direction while roll-jumping, like in the other Mega Drive / Sega Genesis Sonic games.
  • If the player loses all their lives or beats Salad Plain Zone 2, a "COMIN' SOON" screen will appear, after which the game resets. This screen actually made it into the final game, and can be viewed using the level select.
    • The Palmtree Panic Good Future theme plays on this screen instead of the invincibility theme used in later builds.
  • The system program extension file, SPX___.BIN, does not yet exist at this point, and all functions for level loading and music playback are handled in the system program in the disk's boot sector.
    • The Round/Act loading routines are not handled by one function, but all have discrete functions. Level loads are not calculated by their zone ID, but rather, are laid out as offsets into the SP's command table.
    • The function to fade out CDDA audio tracks simply stops playback.
    • For some odd reason, Salad Plain Zone 2's commands come before Act 1's, but are called in order.

Unused Level Select

v0.02 510 - 712
SonicCD v0.02 Level Select.png SCD510 levelselect.png

The level select screen is present in the files, and does have the routines that load it, unused. The layout of the IPX file itself suggests that in a build before this one, it would have been ran by default. It is unable to be accessed without modifying the IPX file to skip over the title screen.

  • Only up to "COMMING" is accounted for. It is also instead marked as "COMMING SOON".
  • Its filename on the disk is SSEL__.MMD, unlike the final game and in later prototypes, where it is named STSEL_.MMD. This was likely changed to avoid confusion between it and the sound test file present in later builds. (that is, SOSEL_.MMD)

Debug Mode

Debug mode is present in this build, unused, as nothing sets its respective flag in memory. Setting 0xFF13FA in MegaDrive RAM will partially enable it.

  • You cannot enter object placement mode, but it is present in the code, unused, as Sonic's object never calls it.
  • Unlike the final game, the ring counter is unaffected, not showing what metatile ID you are currently on.
  • Even without entering placement mode, some object collision is ignored, like the sides of monitors, springs, and the gray boulders.

Unused Objects

Object 04

This object does exist in later prototypes and in the final game. This object moves downwards and then disappears after a bit. As it moves down, it continuously places a row of blocks. According to the leftover symbol data found in the Sonic Gems Collection version, this object is called "taki", which translates to "waterfall".

(Source: Nat the Porcupine)

Object 05 & 08

Easily the most interesting unused object in this prototype. Interacting with object 05 spawns an object of ID 08 that causes the level layout above it to shift down by 8 blocks, as if it is collapsing. According to the leftover symbol data found in the Sonic Gems Collection version, the object that performs the collapsing is called "jisin", which translates to "earthquake", and the object that spawns that is called "jisin_set". This suggests that an earthquake might have been a level effect in the game at one point, which would cause the level layout to shift down when activated (and creating a hazard for Sonic). These objects were dummied out by the time the 510 prototype was compiled.

(Source: Nat the Porcupine)

Object 1E

This is the ID for the pinball flipper from Collision Chaos. The object code itself doesn't exist, with the ID just pointing to a blank object. However, the code for handling Sonic's physics on a flipper and launching him off of one do exist, and they specifically reference this object ID.

Object 23

SonicCDv0.02 Object23 Type09.gif

This object is meant to represent various kinds of projectiles. Tamabbohs spawn this object, but the subtype IDs used point to null code. The only subtype that doesn't point to null code is subtype 09, which just slowly moves left or right and displays a corrupted sprite.

Object 25

SonicCD Obj25Bridge Subtype01.gif

In the object list, this ID just points to a blank object. However, there is leftover code for a bridge object that was assigned to this ID (R11A__.MMD has it at location 0xBCA4). By re-adding the pointer back to the object list, it can seen that bridges were actually already placed in the stage. If debug mode is also re-enabled via hacking, bridges can be placed with it. Spawning a bridge with its subtype to a non-zero value will make it appear to break.

Object 27

This appears to be an unfinished tilting platform object. Its graphics get loaded at certain points in the stage, usually around the small logs. It was scrapped by the time of the 510 prototype.

(Source: Nat the Porcupine)

Object 29

This is a swinging platform. While not placed in the stage, its graphics are loaded in act 2 around the area in which a swing is placed in the final.

The number of chain links it spawns is determined by the lower 4 bits of its subtype value (0 = underflow, 1 = 0 links, 2 = 1 link, etc.). The upper 4 bits determine how it moves. There are 8 unique movement types:

  • 0x - Moves in a circular motion clockwise.
  • 1x - Moves in a circular motion counter-clockwise.
  • 2x - Moves 180 degrees downwards.
  • 3x - Moves 180 degrees upwards.
  • 4x - Moves 540 degrees, starts facing west.
  • 5x - Moves 540 degrees, starts facing north.
  • 6x - Moves 90 degrees downwards.
  • 7x - Moves in a circular motion counter-clockwise, and also spawns object 0x13, which is a Mosqui in Salad Plain. It is unknown what the object was intended to be (maybe a switch?).

The final version also features 8 different movement modes, but they are different due to the reworking of the physics.

(Source: Nat the Porcupine, Devon)

Unused Sprites

Hmmm...
To do:
Sonic has a ton of animations that aren't used here but are in the final, as well as some straight-up unused ones. Document them, and see if there are any other unused sprites.
Artwork Description
SonictH1 Gen Dead Sprite.png
A black-and-white death sprite, whose purpose is unknown. This is also present (and unused) in the original Sonic the Hedgehog and the 1996 Windows version, as well as in the final game, leftover and unused in Tidal Tempest.
SonicCD Unused SideRolling.png
Two different angles of Sonic rolling, intended for the 3D loop in Palmtree Panic 1. Only leftover mappings data can be found in the final version. These sprites are also present (unused) in the 1996 Windows version.
SCD 002 FrontRoll.png
More angled sprites of Sonic rolling. These are used in the Final version on the 3D loop.
SonicCD 002 UpBack.png
A sprite of Sonic looking over his shoulder. This is also in the final game, unused. A black pixel was removed between his legs in the final version.
SonicCD Sneeze.gif
An animation of Sonic sneezing. It's also unused in the final version.
SoniccdScdrun1.gif
An animation of Sonic waving his arms around while walking. This is also unused in the final.
SCD 002 Hang.png
An animation of Sonic hanging onto something. These sprites are also unused in the final, but a different animation is used where his feet hang down instead. His shoes were made less pointy in the final version.
SCD 002 Flume.png
A secondary hurt sprite, grabbed from Sonic 1. Used in the final version.
SCD 002 Air.png
A sprite of Sonic grabbing an air bubble, grabbed from Sonic 1. Used in the final version.
SCD 002 Spin.png
A sprite of Sonic spinning around, grabbed from Sonic 1. Used in the final version.
SCD 002 Drown.png
A sprite of Sonic drowning, grabbed from Sonic 1. Used in the final version.
SCD 002 Pole.png
A sprite of Sonic hanging onto a pole, grabbed from Sonic 1. Used in the final version.
SCD 002 MiniSonic.png
An entire sprite set for Sonic's mini form. Appears incomplete. There is unused code that calls these sprites.
SonicCD002-Unused Disc Statue.png
Sprites for a log bridge. The code for the bridge object is unreferenced, but its graphics still get loaded into VRAM, and its mappings are also referenced in the debug mode object list.

Unused Sounds

Opening FMV Audio

In the data of the opening FMV, there's some unused PCM music data containing "Sonic - You Can Do Anything". Its playback rate is about half of the final game's, but appears that it would have been implemented as stereo sound as opposed to the final game's mono, as there are two PCM channels specified in the FMV SubCPU program, with their appropriate register data. Strangely, unlike the title screen, Keiko Utoku's vocals are finalized here.

Ver0.02 Final

Early Time Travel Sound

There are earlier versions of the entire FM sound effect driver in every MMD, and the preceeding code to load it into Z80 memory. It appears to only have an earlier version of the time warp sound effect.

Mini Sonic

Setting RAM value 0xFFF75E to 01 will activate Sonic's mini form, used in the final's Metallic Madness.

Leftovers from Other Zones

The IPX by this point is very simple, and only contains some code for the level select and running acts 1 and 2 of Salad Plain. However, the zone MMD files themselves have some remnant code and data that account for zones that were either removed or not yet compiled into the game.

Zone Event Tables

The level events table has 8 entries, with R1 (Salad Plain) and R3 (Collision Chaos) being given fleshed out routines with per act routines, while the rest point to a very barebones routine.

  • R1 sets the bottom screen boundary to 0x310 for all 3 acts.
  • R3 sets the bottom screen boundary to 0x510 for all 3 acts.
  • R4 onwards set the bottom screen boundary to 0x710.
  • Interestingly, R2 is accounted for in this list, but simply points to Salad Plain's routines.

CDDA Playback Commands

The System Program CDDA playback commands for every zone are implemented by this point, having an identical amount to the final game's. This accounts for the switch to using PCM audio for the past time zones, and also accounts for R2's removal, implying that it may have never been implemented, or was removed by this point.

Collision Chaos Bumpers

There is leftover code that handles the non-standard bumpers and glass bumpers in Collision Chaos Zone (R3). It specifically checks for that zone ID, so setting the zone ID to 02 it will activate the function. The function itself is nearly identical to the final's, and even uses the same block IDs for checking collision with. Also, as mentioned here, code that handles Sonic on a pinball flipper also exists.