Difference between revisions of "S2Beta:Sonic 2 Simon Wai"

From MegaDrive Wiki
Jump to: navigation, search
m (19 revisions imported)
 
(No difference)

Latest revision as of 11:29, 16 March 2015

px

Fast Facts on the Sonic The Hedgehog 2

Official Name: Sonic The Hedgehog 2
Dubbed Name: Simon Wai's Sonic 2 Beta
Leak Date: December 1998
Serial Number: GM 00004049-01
Version: 1.54

Simon Wai's Sonic 2 Beta, or commonly referred to as Sonic 2 Beta, is a mid production/prototype and promotional build of Sonic the Hedgehog 2 that was discovered on the internet in December of 1998 by Simon Wai. The ROM contains many unfinished and unused concepts, objects, and levels that were later removed from the final game or perfected down the road. Unfortunately, due to the state of the ROM, many of the levels are incomplete or otherwise impossible to play without the use of Debug mode. Originally, this game was thought to be the earliest prototype in existence, but this was later proven false in November 2006 with the release of the Nick Arcade Prototype .

History

In 1992, Yuji Naka had been invited to the annual New York Toy Fair. Sometime during the week long event, he showed off a promotional copy of Sonic the Hedgehog 2 to a large crowd of people. Later on during that same week, that same promotional copy was stolen by unknown persons. What happened to the game after is unknown, but what is known is that it was later pirated in China and other South American countries and passed off as the real deal. In 1998, a Canadian Sonic fan by the name Simon Wai was going about on the Internet looking for this said prototype in hopes of playing it. When he finally realized that he played this beta in Hong Kong back in 1992, he decided to look on Chinese ROM sites. Sure enough, it was right there in front of him. Within days of his discovery, he released it on the Internet. From then forth it has been taken apart, studied, researched, and used as an example of how Sega produced games.

Technical Description

After many years of information from various sources and personal study of both games, there are many technical differences between this game and the Final. In fact, there is quite a number of technical differences between this prototype and the next released prototype, Sonic 2 Beta 4. Because of the way the game was written, it is easier to find similarities in Sonic the Hedgehog than it's final counterpart. Although it is quite well known that Sonic the Hedgehog 2 is based on a heavily edited Sonic 1, the differences from the two games are enough that back-porting many features into Sonic 1 require heavy modifications to its core engine. Sonic 2 Beta's engine is a mixture of both worlds making it the ideal engine to use if you feel the need to port various features from Sonic 2 into the game, or feel that porting things from Sonic 1 is necessary, though lots of the features exist in game.

This list is just a description of the differences of the programming, not level, object, character, nor art design. Those will be addressed in separate pages.

V Blank

The way V-blank works in this game is much more akin to Sonic 2 Final than Sonic 1. The way Sonic 1 works as far as loading their V blanks, it loads the sound driver along with the visual initialization. In Sonic 1, the sound driver is 68000-SMPS, and therefore only needs the SoundDriverLoad routine to be called to load the Z80 component to do PCM playback. The sound driver is called in the V-Blank routine, although certain V-Blank modes disable it. Sonic 2 and it's prototypes are similar in that regard, the main difference though is that Sonic 1 has the sound driver already bound to this condition, so when the actual driver is loaded, the "SoundDriverLoad" routine is simply there to start or stop the driver from loading. There are a few other differences, such as how the levels scroll, but this has more to do with how tiles load and the scrolling.

Object List

Due to the beta being based off of Sonic 1, the object limit is $7F, although, there are ways around this. If you do plan on porting in multiple objects and you do plan to port objects into Sonic 2 Beta, you will either have to extend the object table or you can add in level conditions to certain objects. Here is an example of the limit. Object $C8 in Sonic 2 Beta 4 and later is the Crawl badnik from Casino Night Zone. Now, if you were to attempt to place it into the game, it would instead load object $48, the Oil Ocean Zone Cannon. The reason for this is that Sonic 1's object list uses the most significant bit of the sprite ID as the "Remember Sprite" flag. So, if you were to place a monitor into a level, you had to set the flag to 1, so it's state would be saved when the object gets deleted and then re-loaded again.

Level Layouts

Since this was a prototype, it was known that Sega would just leave certain things uncompressed, thus saving time in editing. The interesting thing about the level layout system is that it is the same as Sonic 1. In Sonic 1, the background and foreground where separated. The system in Sonic 1 made it to where only the foreground could be edited, while the background could be edited, it would be the same throughout the whole zone. The reason for this is that each zone in Sonic 1 was set to one background. Though, it could easily be changed to where each act in the zone had a different background, it was still manual. The background and foregrounds were still separate from each other. In Sonic 2 Beta, this still rings true, the difference is merely the compression. It isn't until Sonic 2 Beta 4 where the familiar final version of the level layout system is implemented. In Sonic 2 Beta 4 and up, each act contains both foreground and background data within their respective layout files, thus removing the need to call in for an external file as the background.

Two-Player Mode

In order to enter Two-Player mode, you must hold the "B" button while selecting a stage in Level Select. Due to the fact that there is no restrictions, except for water, you may enter any stage in the game with this mode. Some levels you play, (namely the three stages that will later be used in the Final) will "work" art wise. The others for the most part will not work or look odd, mainly because their art isn't compatible with Interleaving of the graphics. Other differences is that there is no separate music list for this mode, so when you play these levels, you will hear the same music as you hear in Single Player Mode.

For those interested in adding it in, along with fixing the main Playlist, go down to the Disassembly section of the Hacking Tab.

Sound Driver

With help from Vladikcomper, this build's Sound Driver has been taken apart and compared with the later builds of Sonic 2. According to vladikcomper's notes, the only real difference is the z80 driver. Otherwise, the drivers are nearly identical in structure and build.

Difference List

Due to the many differences in this build between this and the Final, it is easier to divide and categorize the differences. If there is no Sonic 2 Final counterpart, then I will try to compare it to the closest leftover in Sonic 2 Beta 4, assuming it is still around.

Miscellaneous Notes

Tails

Through research and observation, it is safe to assume Tails was never meant to be played in Single player mode until a little later. From the Nick Arcade Prototype to "Beta 5", Tails had no Single player controls. His programming only has him being used in Two Player Mode, and as a simple AI that follows you around.

Crawl

Most people know of the Crawl badnik that resides in Casino Night. There is one that exists in this build as well. Unfortunately, it exists only in art alone, so it is hard so how it worked once it got out from underground. The picture provided is the Crawl enemy from this prototype. For some odd reason, there is no palette that fits Crawl in this build, so the Final version of the palette is used in order to truly be able to examine the art. Now, the issue is that the art matches the Final version of CNZ's palette, which until the next released build, doesn't exist. So the issue becomes, was Crawl supposed to be in Casino Night? Well, he is a sand crab, which is odd since the Casino isn't anywhere near the desert as far as the player can tell. So the question remains, where is he supposed to be? Some signs point that he is in fact from the lost Dust Hill Zone, but was later redesigned in order to fit the Casino trope much better.

Hacking

Ever since the prototype's release, there has been a number of people who've hacked this game. Unfortunately, since this game has very few notes, and the notes that exist are lacking in detail. Esrael and Nemesis were the first people to make notes and guides on how to hack Sonic 2 Beta. Ayla was also well known to have researched this prototype, but due to the constant bickering and fighting within the Sonic Community, she never had the time, or felt compelled to share her research with an undeserving group of people. In 2006, Esrael released a disassembly of this prototype. The disassembly opened up much more possibilities to hacking, and also helped hackers discover other lost objects, art, and unused code that hex editing alone would be difficult to find. As of 2010, SuperEgg has been modifying and pulling apart the rest of the disassembly, trying to find or discover anything in the numerous leftovers that have been left alone. In March 2012, Ayla has partnered up with SuperEgg to properly annotate and disassemble the current and only release of the disassembly.

Here, you will find numerous guides on how to hack Sonic 2 Beta. SuperEgg has written numerous guides on how to edit Sonic 2 Beta via assembly, while Ayla has written an extensive amount of notes relating to Hex editng. Feel free to check these links if you feel the want to hack the prototype.

ASM hacking

Hex Editing

Disassemblies

Sonic 2 Beta was originally disassembled by Esrael, a pioneer in hacking this prototype build, in 2006. His disassembly stayed on Sonic Retro for quite a while, but due to it's highly unorganized status, nobody has ever had the thought to hack the game. SuperEgg picked up the disassembly in 2010 and been hacking it since then. Earlier in 2012, after consulting Nayr T'nargh (Ayla), SuperEgg and Ayla decided it was time to work on the current disassembly in existence and expound upon it and fix, clean, comment, and make it usable to the common hacker.

Download.png Download SuperEgg's Disassembly
File: blah.zip (123) (info)

Current version: 999

Note that this disassembly isn't byte for byte exact.

Download.png Download Esrael's Original Disassembly
File: blah.zip (123) (info)

Current version: 345