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

From MegaDrive Wiki
Jump to: navigation, search
m (Disassemblies)
(Revised disassembly section -- stay in third person!)
Line 41: Line 41:
  
 
==Disassemblies==
 
==Disassemblies==
Sonic 2 Beta was originally disassembled by Esrael back in 2006. He was a real pioneer in hacking this prototype build. His disassembly stayed on Sonic Retro for quite a while, but due to it's highly unorganized status, nobody has ever had the gaul to hack the game. SuperEgg picked up the disassembly back in 2010 and been hacking it since then. Earlier in 2012, after consulting Nayr T'nargh (Ayla), they decided it was high 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. I have provided a link to both versions if you personally decided to hack the game via disassembly. The first link will be to the one Ayla and SuperEgg have been working on for months, and the other will be the original. Bear in mind, the current disassembly by SuperEgg and Ayla will be considered obsolete because many of the issues that are found within the build of it. It is not byte for byte exact, as opposed to Esrael's, but it has far more routine names and comments that can and will help those who want to hack and are unfamiliar to how Sonic 2 Beta works.
+
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.  
  
Mine
+
{{Download
 +
| title=SuperEgg's Disassembly
 +
| version=999
 +
| file= blah.zip
 +
| filesize=123
 +
| description=Note that this disassembly isn't byte for byte exact.
 +
}}
  
Esrael
+
{{Download
 +
| title=Esrael's Original Disassembly
 +
| version=345
 +
| file=blah.zip
 +
| filesize=123
 +
}}
  
 
[[Category:Sonic 2 Prototypes]]
 
[[Category:Sonic 2 Prototypes]]

Revision as of 14:42, 24 October 2012

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 released 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.

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.

H Blank and V Blank

The way V-blank and H-blank are loaded and used in the game is quite different than its earlier builds. The way Sonic 1 works as far as loading their H and 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 H and V-Blank routines, 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 $80, 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.

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

Hacking

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