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

Sonic the Hedgehog 2 (Genesis)/Revision Differences

From The Cutting Room Floor
Jump to navigation Jump to search
This page contains changes which are not marked for translation.
Other languages:
English • ‎polski • ‎português do Brasil

This is a sub-page of Sonic the Hedgehog 2 (Genesis).

Sonic 2 has various regional and revisional differences. Of the many, the three main versions are the original release (Revision 00), Revision 01, and Revision 02.

Region Swap Code

On the title screen, press Up, Down, Down, Down, Up, and a ring sound will chime. This swaps the game between Japanese and International mode, running the game like it's loaded into the opposite region's console. In Japanese mode, references to "Tails" are changed to Miles, and the trademark symbols are removed from the SEGA and title screens. You can enter the code again to toggle back.

Revision 00 and Revision 01

The original two retail releases, compiled on September 26th and 29th respectively. Revision 01 is the more common of these two.

  • Revision 01 waits for any active Direct Memory Access operations to complete before booting the game. This is to prevent race-conditions during soft-resets. This change appears to have been caused by the game's 'ICD_BLK4.PRG' file being updated to a newer version.
Original REV01
Sonic2CasinoNightSignpostRev00.png Sonic2CasinoNightSignpostRev01.png
  • The signpost in Casino Night Zone is placed too far into ground in the original release, resulting in the bottom portion of the goalpost being visible through the floor.

Sonic2Rings1000Rev00.png

  • There was no cap for Rings collected from monitors in the original release. This means you can go above 999 Rings collected, bugging out the counter.
Original REV01
Sonic2KalinskeRev00.png Sonic2KalinskeRev01.png
  • Thomas Kalinske was misspelled as "Tohmas Kalinske" in the original release. Revision 01 fixed this typo, but "Phenix Rie", Rieko Kodama's nickname, was never fixed, even in the 2013 version.
  • The original release forgot to set the 'remember state' flag for checkpoints in Wing Fortress, meaning dying and respawning will make them all appear activated.

Sonic2TeleportBug.png

  • Sonic and Tails briefly display garbled art after activating a Teleport Monitor in 2-player mode. This seems to be the result of both players using the other players' sprite mappings but applied to their own graphics. Revision 01 instead makes the players invisible until they start moving again.
  • In the original release, Tails would respawn after a Time Over in 2-player mode, thanks to his respawn code lacking the necessary 2-player checks, unlike Sonic's code. This is fixed in Revision 01.
  • The yellow triangle bumpers in Metropolis Zone can be bounced off of while still in invincibility frames, which results in the player getting stuck, unable to move, until the character touches the floor. This was fixed in Revision 01.
  • If you land on the pinball launcher springs while still in invincibility frames, your character enters a glitched state: They don't roll, and can still walk, but are treated like they're still attached to the spring. This was fixed in Revision 01.
Original REV01
Sonic2CasinoNightFlippers2PRev00.png Sonic2CasinoNightFlippers2PRev01.png
  • Two flippers in the 2-player Casino Night Zone Act 1 layout were moved in Revision 01.
  • The Crawl placement in the 2-player version of Casino Night Zone in Revision 01 matches Beta 8's placement.
Original REV01
Sonic2InvisibleBlocksRev00.png
Sonic2BumperObjectRev00.png
Sonic2InvisibleBlocksRev01.png
Sonic2BumperObjectRev01.png
  • The "Invisible wall" and yellow triangle bumpers collision objects are visible in the original's Debug Mode, but not in Revision 01.
  • The original release includes some debugging logic in its sprite-drawing function, which deliberately crashes the game when it attempts to draw an object with a null object ID or sprite mappings data pointer. In Sonic 1, this would occur as the result of a very common bug, where an object would delete itself and queue itself for display on the same frame. These bugs were eliminated in Sonic 2, even in the leftover Sonic 1 objects, and this debug code appears to have been used for detecting them. In Revision 01, this logic was removed, though it was replaced by a sanity check that causes the function to harmlessly skip objects with a null object ID. This sanity check would later be removed in Sonic 3.
  • Revision 01's code is better optimized, removing unnecessary code and data, such as Hidden Palace's background positioning routine.

Sonic Mega Collection

The version included in Sonic Mega Collection is Revision 01, however it now fixes a bug where the 14 continues cheat causes the Oil Ocean theme to play endlessly. This is because, despite what the sound test shows, the sound IDs actually start at $80 internally and not $00, but the cheat attempts to use the non-existent sound ID $3F instead of $BF to play the Continue jingle, which causes the sound driver to malfunction and be unable to play any new sounds or music. It's possible that the person programming the cheat mistook the continue jingle's sound test ID for its actual ID.

This unique revision would later be used, unaltered, for 3D Sonic The Hedgehog 2. All the new content in the game is handled by the emulator. It was also used for the Wii Virtual Console release, the SEGA AGES release for Nintendo Switch, and Sega Genesis - Nintendo Switch Online.

Revision 02

A third revision that never saw a standalone release, being used as the base for future versions such as Sonic Classics, Knuckles in Sonic 2, the Mega Play arcade version, Sonic Jam and Sonic the Hedgehog 3 instead. Unlike the previous two revisions, this is not present in the Sega QA archives.

This version fixed several major bugs including:

  • A crash that would sometimes happen when a Rexon is defeated.

Believe it or not, I'm walking on air.

  • The ability to transform into Super Sonic once you've passed a level's goal post. Doing this would detransform Sonic, get the player stuck mid-air, and prevent the level from successfully completing.

Sonic2WingFortressBug.png

  • The background speed and offset variables not being reset if the player continues from a checkpoint in Wing Fortress Zone. This would only ever be a problem if the player were to get a Time Over during the Wing Fortress cutscene or the ending.

Additionally, some under the hood changes were made:

  • Various aspects of the generated machine code differ, such as data being padded (automatic 'dc.b' directive padding), some instructions being optimized ('addi'/'subi' instructions becoming 'addq'/'subq'), others being unoptimized ('lea ADDRESS(pc)' instructions becoming 'lea (ADDRESS).l'), and linker data between sections of code being absent. These differences are due to the game being built with a different assembler: the other two revisions were built with ProASM (an assembler for the Amiga), while Revision 02 was built with 2500AD (as assembler for DOS that was also used to build Sonic 1 and Sonic 3 & Knuckles).[1].
  • Even more unused code was removed, including Wood Zone's level layout drawing routine, resulting in it taking a long time to draw segments of the screen.

Sonic Classics

Though it's based on Revision 02, the Sonic Classics release introduces several bugs:
Sonic2Rev02FlipBug.png Sonic2Rev02FlipBugGrabber.png

  • Grabber's legs and Mecha Sonic's flame and sparks aren't properly flipped when they're facing right.
  • The player is prevented from Spin Dashing off the Tornado in Sky Chase Zone.
  • The vertical conveyor belt platforms in Wing Fortress Zone do not cause the player to fall when they retract into the wall, leaving the player walking in mid-air.

Knuckles in Sonic 2

Hmmm...
To do:
Other differences, such as minor programming bugs. The disassembly labels all changes made.

Aside from the obvious addition of Knuckles instead of Sonic/Tails, there were some minor changes.

  • The game now saves the player's rings after exiting a Special Stage, like in Sonic 3. However, this has the unintended side effect of allowing the player to keep their rings after death if they enter a Special Stage beforehand.
  • The bottom two rows of pixels of the screen in Emerald Hill Zone were fixed.
Sonic The Hedgehog 2 Knuckles in Sonic 2
Sonic 2 Chemical Plant No Monitors.png If you're wondering, these are life and ring monitors.
  • Object layouts were altered, mostly adding monitors and rings in places only Knuckles can reach.
Hmmm...
To do:
Cover everywhere that there was a change in object layouts.
  • The shield and invincibility stars were changed to gray; this is because the colours that they originally used, Sonic's 4 shades of blue, were replaced by Knuckles' 3 shades of red and 1 shade of green. However, the water surface sprite in Aquatic Ruin Zone, which also uses these replaced colours, wasn't changed to gray.
  • All of the cheat codes were changed:
    • Level Select: On the title-screen, press Up, Up, Up, Down, Down, Down, Left, Right, Left, Right then hold A and press Start.
    • Debug Mode: On the level select, play sounds 01, 09, 09, 04, 01, 00, 01, 08.
    • All Emeralds: On the level select, play sounds 01, 06, 07, 07, 07, 02, 01, 06.
  • All objects, except for Rings and Monitors, were removed from Debug Mode, with the Monitor now being a Ring instead of the 2-Player Teleport. The removals were likely done to save space, as the game's ROM is close to full, with only 680 bytes to spare.
  • Path swappers are visible in Debug Mode, like they were in some early prototypes.
  • The Two-Player Mode and the Options screen were removed, alongside a playable Tails.
    • As a result, all tracks linked to the aforementioned Two-Player Mode (tracks 01, 03, 08, and 0C) are now unused outside of the Sound Test.
  • The Tails monitor's code was removed, leaving it to use the Sonic Monitor's code instead, meaning the Tails monitor in Hidden Palace Zone now grants an extra life.

Sonic Jam

Hmmm...
To do:
See here
  • As an upgrade over previous versions, Sonic Jam's version of Sonic 2 directly ported the code to the Sega Saturn's hardware. As a result, the game can now use streamed audio which prevents channels from being muted. Load times and slowdown are also reduced.
  • This version also fixes the screen's bottom two rows of pixels of Emerald Hill Zone.
  • There are three difficulty settings, Easy, Normal and Original; Easy removes a few levels and changes the object layout, Normal has all the levels but still alters the object layouts, and Original uses the original object layouts.
  • There's a small bug with Chemical Plant's water palette, as the background color only updates if the screen is fully underwater. This technically effects other water instances in Sonic 1 and Sonic 3, but can only be seen here since it is the only water stage to change the background color underwater.
  • Instead of playing the Sonic 2 invincibility theme, Sonic Jam instead plays the Sonic 1 invincibility theme; the Sonic 2 version is on the disc and is even used in two-player mode, meaning it was likely a mistake by the porting team.
  • Knuckles in Sonic 2 seems to have been ported using the regular Sonic 2 as a base, as the game has a fully featured Debug Mode, Teleport Monitors and all.
  • Emerald Hill 2 has an additional invisible wall added between a yellow spring and a short cave, before it was possible to clip in below as Super Sonic. An additional pathswapper was also added in Act 2 just before the hidden shield, likely to prevent an issue where Sonic can get stuck in the small corridor.
  • A pathswapper was added in Aquatic Ruin 2 to stop the player from being unable to use the loop if they entered from below.

References