If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Proto:Sonic the Hedgehog (Genesis)
This page details one or more prototype versions of Sonic the Hedgehog (Genesis).
This prototype is documented on Hidden Palace.
A prototype of Sonic the Hedgehog was released by Hidden Palace at Midnight GMT on January 1, 2021. It shows the game in mid-development. Many stages cannot be completed due to the lack of signposts and bosses; some (like Clock Work Zone Act 3 and Final Zone) haven't been started at all, or are obvious placeholder designs (like the Special Stage).
Playing this build reveals a game that was originally tuned more for traditional platforming and exploration, rather than for speed, which eventually became the hallmark of the Sonic series. It also features a plethora of cut content that was previously only seen in grainy magazine screenshots and blurry video footage, like the giant rolling ball in Green Hill Zone, the UFOs in Marble Zone, and Spring Yard Zone when it was still Sparkling Zone. Also, Splats the Bunny!
A Sonic 1 prototype was sought after for 15 years, during which time prototypes of all the other 16-bit Sonic games were eventually found, until one was finally dumped in late 2020 by Buckaroo. According to drx, this proto was confirmed to be sourced from a UK magazine at the time.
Download Sonic the Hedgehog (Genesis Prototype)
File: Sonic_the_Hedgehog_(16-bit)_(Prototype).bin (512 KB) (info)
|
To do: Stuff to add that's not accessible in the base ROM without patches. Some of this might be in patches that are available on release:
|
Contents
Zone Differences
Normally, only eight stages are playable without the Level Select: Green Hill Acts 1-3, Marble Acts 1-3, Sparkling Act 1, and Star Light Act 1. The level select still shows the prototype level order, meaning that either the developers already decided on the final level order, or that they went back to the original level order only to go back to the prototype order near the end of development.
Final Zone isn't available in the Level Select, and levels use their early names. Every Zone contains many differences in the layouts themselves.
Zone ID 06, which is used in the final game for the ending, hasn't been implemented yet. Trying to access it by modifying the current Zone/Act address will lead to "ZONE ACT. 1" briefly appearing onscreen, followed by the game softlocking because no level data exists for this level slot.
However, the "Act 4" stage ID (03) is also functioning, to varying degrees. Most other levels either contain nothing or an object layout from the first Act of that stage. Notably, Green Hill's "Act 4" slot contains a complete duplicate of Act 3, heavily implying it was once considered for the ending cutscene before being moved to its own level slot.
Green Hill Zone You can't stop the rock. |
Marble Zone UFOs are real. |
Sparkling Zone Good luck. |
Labyrinth Zone Thankfully, there's no water here. |
Star Light Zone Under heavy construction. |
Clock Work Zone Before the big Scrap. |
Special Stage
There is only one Special Stage in this build, with a very simple and unexciting layout implying that it's only a temporary design.
- Only C can be used to jump. A and B speed up/slow down the stage's rotation counterclockwise and clockwise, respectively, and pausing the game will reset the rotation speed. There's no upper cap on the rotation speed, meaning it's possible to hold A or B for long enough to overflow it and have the stage start rotating in the other direction. It's stored as two bytes in address F782 in 68K RAM.
- Only two bumpers are in the entire stage.
- A few clusters of rings are placed near the start point, but that's all until the player gets to the "Emerald".
- Instead of a Chaos Emerald to collect, an ordinary green block is used as a placeholder, which does nothing when touched.
- Goal tiles are split in two: the blue ones (with "GOAL" on them) don't animate or function, but their second frame (red tiles) will spin the stage around rapidly like normal before pausing for a moment, then resetting the stage.
- The player cannot enter object placement mode, despite debug mode being enabled by default in this prototype, and thus cannot move freely around or place objects of any kind.
- The UP and DOWN tiles - just one of each present in the whole stage - don't animate either, and seem to function like Reverse blocks instead of adjusting the rotation speed.
- Collision detection seems to be less refined, with Sonic being able to stick to tiles much easier than in the final game.
- No score summary is displayed upon exiting the stage.
- The screen doesn't fade to white when entering or exiting the Special Stage.
If the Special Stage layout is edited to remove objects, you can go out of bounds, though the game will frequently crash when doing so. Removing the crash handler will let you explore the garbage data that exists outside the Special Stage. Notably, it differs from not only the final's out-of-bounds area but also this prerelease screenshot that also looks very much out-of-bounds.
- Only the colored blocks, bumpers, and Goal spheres can be seen in the garbage data.
- Attempting to go further down into the garbage data will cause the graphics to deform and the collision to become glitchy to the point where you can't go further down.
- Going left or right will also cause the graphics to deform, but you can continue going left or right until the strip of garbage data loops.
General Differences
ROM Header
The prototype lacks a bespoke ROM header and instead contains boilerplate information, such as a date stamp of 1989.JAN, implying that this build was somehow compiled before development had even begun. A reasonable estimation, based on visual cross-checking against UK prerelease coverage of Sonic, places this prototype around March 1991.
Pre-game Content
Proto | Final |
---|---|
Instead of the well-known "Sega!" logo and iconic chant, this prototype uses the standard (and silent) palette-cycling Sega logo which opens most other Genesis/Mega Drive games. Unlike in the final game, the logo can be skipped with the Start button.
The title screen immediately follows; there is no SONIC TEAM PRESENTS card.
Proto | Final |
---|---|
The prototype's title screen lacks a trademark (™) symbol, and features a PRESS START BUTTON legend missing from the final game; well, it is technically still in the final, but the developers accidentally dummied-out the message due to not clearing the "SONIC TEAM PRESENTS" screen (both objects use the same memory space.)The palette for Sonic used here is also slightly darker..
During attract mode, BGM doesn't immediately stop when the Sega logo is displayed; the music fades out slowly instead.
Early Demos
Green Hill Zone | Marble Zone | Sparkling Zone |
---|---|---|
Special Stage | Star Light Zone (Unused) |
---|---|
The demos are clearly from an earlier build, as Sonic dies almost immediately by running into enemies with no player interaction needed. The Special Stage demo also plays in between every stage, rather than being played only at the end of the demo order in the final release.
While the demo cycle only shows Acts 1 of Green Hill Zone, Marble Zone, and Sparkling Zone, a demo of Star Light Zone Act 1 is present. It's not normally seen due to the demo cycle having a total of 12 entries, but the demo player code forcing a loop after the sixth. It's just as broken as the used demos, however.
The inputs used actually come from an earlier build of the game and are assigned to the wrong levels: Green Hill 1, Marble 1 and Labyrinth 1 (if forced via hacking) use inputs meant for an earlier revision of Marble 1 (where Yadrins weren't present yet), Star Light 1 uses inputs for an earlier Green Hill 1. The Special Stages appear to be the only demo which uses the proper input data, although it again, is for an earlier layout. It's currently unknown what stage the inputs used in Sparkling 1 and Clock Work 1 were meant to be used for.
The demo order in code is as follows (entries marked in bold are normally unseen):
- Green Hill 1
- Special Stage
- Marble 1
- Special Stage
- Sparkling 1
- Special Stage
- Star Light 1
- Special Stage
- Marble 1
- Special Stage
- Sparkling 1
- Special Stage
Proto | Final |
---|---|
Level Select and Debug Mode are enabled automatically in this build for testing and preview purposes.
- In debug, holding A and pressing C won't yet go backward in the object list, and instead place the highlighted object regardless.
- The game acknowledges the B button as a jump input before activating debug mode with the same button. This causes Sonic to start a jump a frame before entering debug mode, and performing said jump after exiting debug mode. This was fixed for the final version.
- Spring Yard and Scrap Brain are called Sparkling and Clock Work in this build.
- The level select contains Xs next to Star Light Zone and Clock Work Zone Act 3. These were likely used for when a stage wasn't implemented (though in this build it's a bit outdated, since Star Light Zone has been implemented).
- Clock Work Act 3 cannot be selected.
- Pressing B on the Level Select will load up Act "4" of Green Hill Zone (displayed on the title card by a copy of the blue oval graphic replacing the Act number), which suggests that it might have been used to test the ending sequence stage. In the final game, the ending stage instead uses a separate Zone altogether (06).
Gameplay
Proto | Final |
---|---|
- There are several differences with the HUD:
- As seen in countless prerelease screenshots, the HUD says "RING" instead of "RINGS". The change was made circa the build seen in Shinsaku Soft Video, rather close to the end of development.
- "RING" does not flash red when the player has 0 rings, nor does "TIME" flash when the clock reaches 9:00.
- "TIME OVER" does not occur when the timer reaches ten minutes. The timer instead loops back to 9:00 indefinitely.
- The time bonus works differently.
- During a Game Over, the timer will continue counting up. The final game stops the timer.
- Sonic's jump height is lower. On flat ground, the apex of his jump is 6 pixels lower than in the final.
- Sonic's collision height doesn't change when crouching.
- Sonic's deceleration speed is slower, being $40 in the prototype and $80 in the final. The Power Sneakers deceleration speed is $80 in both this prototype and the final game, as it was not adjusted to account for the regular deceleration speed change, resulting in the Power Sneakers deceleration speed and regular deceleration speed being identical in the final.
- Walking/jumping onto objects such as platforms and bridges causes Sonic to lose some of his speed.
- When hurt, Sonic has no collison with the ceiling.
- There is no combo bonus for destroying multiple Badniks in a row yet.
- Sonic cannot run off the screen after touching the end-of-level signpost or destroying the post-boss Animal Capsule. Jumping during the ensuing end-of-level bonus tally causes Sonic to enter the "victory fist pump" pose seen in many prerelease screenshots.
- The hidden end-of-Act bonus point markers haven't been implemented yet.
To do: Perhaps a comparison video between the proto and final Special Stage ring animations should be added. |
- Special Stage rings haven't been added to the end of Acts 1 and 2 yet. The ring object does exist with full graphics and coding, though it works completely differently from the final game:
- When Sonic touches the giant ring, instead of instantly disappearing like in the retail version, he instead momentarily gains a "sparkle" effect, after which he then "warps" off of the screen (similarly to the way time travel works in Sonic CD). However, there doesn't seem to be any further coding beyond that at this point in development, as Sonic simply reappears a short distance ahead of the point where he vanished a brief moment after he disappears.
- Given this behavior, it's probable that the Special Stage rings were originally intended to be placed at ground level just past the signpost instead of up in the air, to give the illusion of Sonic running through the ring and then warping away to the Special Stage. Why this was altered is unknown, but given that remnants of this functionality still exist in the final ROM, it's likely that it was changed fairly late in development.
- Checkpoints are completely absent. In fact, they haven't been coded into the game at all at this point.
- Extra lives are earned at 50 and 100 rings, instead of 100 and 200 in the final release.
- "Ring memory" doesn't exist yet, meaning it's possible to earn two 1-Ups by collecting 100 rings, take damage, and then earn another two 1-Ups by collecting 100 more rings. In the final release, each ring threshold only grants one 1-Up per life, per level.
- The Continue screen hasn't been implemented yet, likely because there's no normal way to earn Continues in this build.
- The end cutscenes and credits are completely absent.
- Spikes damage Sonic during all forms of invincibility, including from monitors.
- Vertical positioning is extremely buggy:
- The camera is much slower when moving vertically, making it easier to outrun the camera (and, in some rare cases, die when doing so) when falling or traveling at high speeds.
- The top and bottom of the stage wrap in every level, even in stages that don't normally utilize vertical wrapping. In stages with lethal pits, this results in the player dying if they travel above the upper stage limit (since Sonic wraps to the bottom of the stage, where the game then thinks he's fallen into a pit).
Proto | Final |
---|---|
- Object placement mode ignores camera boundaries. Camera movement also works differently, meaning going to the same coordinates in the same way won't always result in the camera being positioned the same way.
Proto | Final |
---|---|
Proto | Final |
---|---|
- When a Zone is completed, graphics for the next Zone start decompressing during the fade-out, before the Act transition completes.
- If the player touches the sky, sometimes Sonic will die, or sometimes the camera will go all wonky for a second.
- Collision is noticeably glitchy, especially when rounding a small incline.
Graphical Differences
Proto | Final |
---|---|
- Title cards have an additional period after "ACT". This was removed from the final, although the period remains in the data.
- Sonic's sprites are almost identical to the final game, but he lacks his updated "breathing" animation and his extra hurt animation (used for slides).
Unused Content
Unused Sprites
To do:
|
Sprite | Location | Notes |
---|---|---|
$018000 | An 8×8 font with 3 copies in different colors. The palette used in this image is a mockup. | |
$02656E | Some dust or puffs of smoke. These are also unused in the final game, but are noteworthy in this prototype for being loaded in VRAM where the checkpoint graphics are in the final version. | |
$026672 | The Labyrinth Zone water splash, not used in this prototype as there is no water. It has simpler shading and seems to be intended to use Sonic's palette, unlike the final game which uses Labyrinth's cycling palette. It should be noted that these sprites do appear to be re-used in Sonic CD. | |
$0267D4 | Some sparkles. | |
$026BF6 | Some fireballs, possibly for use in Marble Zone. | |
$02A386 | Ball Hog is completely programmed in the prototype, but its movement, sprites, and attack are different from the final version: It walks from side to side and drops bombs down vertically. This seems to match the version seen in early prerelease footage, rather than the version seen in leaked Digitizer artwork from the game's development. | |
$060864 | A spring included in the boss attachments art file. Parts of this sprite are used on Marble Zone's boss. Given that the boss attachments tend to follow the gimmicks of their Zone, this was probably intended for the Sparkling/Spring Yard Zone boss. | |
$06505E | An R Block meant for the Special Stage. Doesn't load in the Special Stage. Use is probably the same as final, although no code for it appears anywhere. | |
$06512E | A skull meant for the Special Stage. Use unknown, though it probably had something to do with either death or losing. | |
$0651FE | What appears to be a magnet item meant for the Special Stage. Use unknown. | |
$065B76 | The graphics for the blue Chaos Emerald are present in the prototype, despite being absent from the special stages proper. The presence of only the blue Chaos Emerald without all the others may imply that the emeralds were planned to all be blue at this point in development, akin to how they are in the 8-bit version. | |
$06C8A0 | A 6th frame for the animated UFOs in Marble Zone. To properly restore it in the animation script, use the PAR code 011430:0006 |
Unused Objects
The list of objects by offset can be found at ROM address $8580. There are 94 objects in this build, well below the final's 140.
Object ID | Object Name | Note |
---|---|---|
02 and 03 | Unknown objects | These objects date back to the game's earliest development stages. They don't have graphics, and probably never did. ID 02 is a sort of "pulsating" object, and ID 03 is rectangular in shape. Both have fixed coordinates and cannot be placed anywhere in a level. They have no interaction with the player. Both objects might have served a function back then, they do not in this prototype. |
04 | Unknown object | An object similar to ID 03, but animated. It can be placed anywhere on the X axis, but its Y axis is fixed. |
05 | Unknown object | An invisible object. |
06 | Unknown object | This object follows the HUD. Possibly to test the HUD. |
10 | Animation Test | An object that seems to test all of Sonic's animations.
|
1B | Unknown object | A static, collisionless object. Whatever it is, it has a variation with another sprite. No graphics exist for either. In the final version, another object with the same ID generates the water surface in Labyrinth Zone. |
1D | Switch | An object that acts like any other switch to open a closed passage, only lacking sprites. The best guess for where this would be used is Marble Zone, since that's the only zone in this build that features switch-based interactions of any kind. This object is intact in the final version and remains unused. |
1E | Ball Hog | Ball Hog's behavior is different from the final version. |
20 | Ball Hog bomb | A sub-object of Ball Hog, this round bomb falls straight down and explodes on impact with the ground turning into a unused explosion seen to be called in this prototype. |
2A | Switch door | A door that opens by pressing a switch. This object has a variant that is set up to use other tiles, has no collision, and doesn't react to switches. No valid graphics exist for it. In the final version, this ID is used for a one-way door object in Scrap Brain Zone. |
2C | Jaws | Used in the final, but not in the proto. In this build it uses Sonic's palette and can only swim to the left, never to return. Its sprite is loaded in Labyrinth Zone, but is allocated to the wrong VRAM address. |
2D | Burrobot | Used in the final, but not in the proto. In this build, Burrobot uses the second palette line instead of Sonic's. It also does not start buried in the ground. |
43 | Roller | Can be accessed via debug mode in Sparkling Zone. Also appears in the unused object layout for Sparkling Zone Act 1. It has different behavior compared to the final version.
|
4A | Special Stage entry | This sub-object uses a special effect that was discarded from the final version. It allowed Sonic to enter a Special Stage after touching a giant ring. |
4B | Giant ring | Does not take you to Special Stages.
|
4F | Splats | A scrapped enemy accessible via Debug Mode in Marble Zone. |
5E | Seesaw (SLZ) | Only accessible through Debug Mode. Unlike the final version, this object is missing the spiky ball that gives Sonic a boost to reach high places. |
Unused Object Layout
To do: Add in the object layout map, and perhaps attempt at recreating the full chunk layout with what screenshots we have about Sparkling Zone's layout from CES builds. You can find the file for the layout here |
Located at 0x729CA is an unreferenced object position list that is presumably used for Sparkling Zone Act 1. Loading it in-game shows a number of differences, including Crabmeats near the entrance which are spawned on top of each other. To load, open the ROM in a hex editor and at 0x70040, replace 2460 with 29CA. You'll then be able to see the changes in SZ1. Interestingly, the object positions seem to match up with an early Sparkling Zone layout seen in screenshots of the pre-WCES and WCES-like builds.
Unused Level
The last level, level ID 06 act ID 00, reserved for the ending cutscene in the final version, has a map of chunks at $6E348 that don't fit any zone very well, nor does it align with any existing stage layout in this build. The game softlocks when accessing it directly, but it can be restored by hacking the layout into a working stage. Interestingly, this map holds 128 chunks and appears to be a normal level. Based on the overall structure, it seems this originally started as an early stage layout, probably dating back to the CES build; however, all level chunks besides 00 (empty space) or 01 (solid wall) appear to have been overwritten at some point, evidenced by the remaining chunks progressing in perfect sequential order going left to right, top to bottom. Whether this was deliberate (i.e. converting the old layout into some kind of test map) or an unintended side effect of other data being written to the ROM is unknown.
Unused Palette
Located after Labyrinth Zone's palette is an unused 4-line palette. It seems to have been intended for the Green Hill Zone tileset, as it fits extraordinarily well with only minor palette errors around rocks and such. The palette is nearly identical to the results screen in the Mega Play version of Sonic 1, which - coupled with this prototype's unused font (which bears similarities to the Mega Play font) - seems to suggest that the Mega Play version was already in development at the time of the Genesis version, or that the leaderboard had been intended for the Genesis version as well.
Unused Code
Plenty of unused code is hidden within this prototype. This includes:
- An unused routine that makes the Buzz Bomber turn around and loop after flying away.
- Alternate code for the Invincibility stars.
- Unused sine code, which is also leftover in the final release.
- Code that doesn't seem to do anything at first, but commenting out a part of it makes Sonic respawn after death.
- An oddity that makes the goal flash yellow.
- Some unused title card mappings that aren't used anywhere. Loading it over a normal title card's mappings show it perfectly centered.
To do: Create Pro Action Replay, Game Genie codes or address of data location in ROM to enable these. Get a picture for the card mappings as well. Also, there's supposedly a way to see the zone order for the unfinished zones, using FFD004:0D00 to activate it. Is this actually pointing to an unused function or is this just hooking into something already used? |
There are two unused Debug Mode styles in the game's data:
- One similar to the one seen in various CES screenshots; top four numbers are Sonic's current velocity (only updated on ground) and bottom eight numbers are his current position.
- Another one which seems to have lost some of its functionality, first line seems to be the current "chunk" Sonic is in (256x256 region) while the third is the upper bit of Sonic's position values; also lags the game a lot.
Sounds
There are many unused sounds unique to this prototype, which would go on to be replaced by different sound effects in the final.
Sound $A1
Similar to the sound played when touching Goal blocks in the Special Stage. Replaced by the checkpoint sound in the final release.
Sound $A8
Resembles a rocket or something similar taking off. Replaced by the aforementioned Goal block sound effect. This sound is used with the unused warping object.
Sound $A9
A longer, higher-pitched version of the rolling sound. Replaced by the sound used for touching speed/Reverse blocks in the Special Stage.
Sound $AD
A duplicate of the "badnik destroyed" sound effect. Replaced by the air bubble sound.
Sound $B0
A low-pitched siren sound. Replaced by the buzzsaw sound effect.
Sound $B1
A faster, higher-pitched siren which sounds like it was taken straight out of Pac-Man. Replaced by the sound effect used for Scrap Brain's electricity balls.
Sound $B2
Sounds like a buzzer of some sort. Replaced by the drowning sound effect.
Sound $B3
A rough, low-pitched sound that quickly rises and falls in pitch. Replaced by the sound used by the falling fireballs in the Marble Zone boss fight.
Sound $BA
Resembles the sound used by the color-changing bars in Sonic 2's Casino Night Zone. May have been an early version of the sound used by the color-changing blocks in the Special Stage, which ultimately ended up replacing this sound.
Sound $BF
Two quick, harsh-sounding noises that loop indefinitely. Replaced by the Continue sound effect.
Sound $C2
An alternate version of the "Badnik destroyed" sound effect, with one of the sound channels being a bit harsher. Replaced by the underwater timer "ding" sound effect.
Sound $C3
A deeper version of the bomb explosion sound (which, incidentally, occupies the next sound slot). Replaced by the sound effect used when entering a giant ring.
Sound $C9
A harsh, vibrating noise. Replaced by the noise used when touching end-of-stage point markers.
Sound $CA
Sounds like footsteps walking away; could have possibly been used as an "exit" sound effect for something at some point. Replaced by the Special Stage warp noise.
To do: Export sound $D3. |
Sound $D1
A louder version of the waterfall found in Green Hill Zone. This and the next two were completely deleted in the final game.
Sound $D2
A strange rhythmic pounding sound.
Sound $D3
A fiery noise that progressively oscillates. This and the previous two sounds don't end when playing in-game.
Music
- The snare drum and timpani samples used across all tracks are pitched lower than the final release, as the final game had its DAC driver code rewritten to accommodate the "SEGA!" chant, which resulted in all samples being played at a higher pitch. Curiously, the kick drum had its pitch manually lowered in each track in the final game to compensate for the driver change.
Original TR-626 Sample | Prototype | Final |
---|---|---|
- Stage music keeps playing even when the game is paused.
- The extra life theme seems to cause various minor issues with the sound driver for a brief moment after it finishes playing.
$85 (Sparkling Zone)
To do: Word this section better. |
Proto | Final |
---|---|
Has a single note difference in the bassline. The final simply reuses a section that's earlier in the track, probably to optimize the song more. The original bassline note is still in the final game's credits medley. A note was also cut slightly shorter in the final version.
$8B (Ending Theme)
Proto | Final |
---|---|
Slightly slower than the final track, and a couple of instruments towards the end are held for a bit too long. Goes unused in this build.
$8D (Final Zone)
Proto | Final |
---|---|
Goes unused in this build.
$90 (Continue Screen)
Proto | Final |
---|---|
Goes unused in this build.
$91 (Credits Medley)
Proto | Final |
---|---|
Much of the instrumentation is either slightly different or missing.
$92 (Drowning)
Crashes the game due to using invalid pointers.
$93 (Got Chaos Emerald)
Completely missing; selecting this sound ID does nothing.