Reverse-engineering Mega Drive games 25 years after the fact

Reverse-engineering Mega Drive games 25 years after the fact


…where the monitors were, and the rings
were, but it’s in a really crude state of completion. Actually, eventually we found out that there
was a prototype floating around the net which was dumped like, by Chinese bootleggers in
the early 90s, like, before Sonic 2 actually released, and they passed that on
like, as the full game! It wasn’t, it was a prototype somewhere between
Sonic 1 and Sonic 2, and it does contain the Hidden Palace Zone, and the object layout
is exactly the same — they didn’t touch the stage after this point.
It’s really fascinating. So, I’d like to talk about this guy, because
I mentioned the Sonic CD Beta Page a while ago, and I remember when this goober showed
up — I remember the SSRG not having the Sonic CD Beta Page, and then this guy showed
up and he started documenting the prototype. And I’m getting a bit ahead of myself, but
he started developing this Sonic fan game, Retro-Sonic, which you’re seeing right here. This is a more polished version that was released
later on, the early versions were really crude — really crude physics — but it had potential,
like, it took elements from various games, combined them with unique ideas, and
started making something unique. It was almost like a new Sonic game, which
at the time was a bit… it was a bit desperate at the time, because it was like, the late 90s
and the last good Sonic game was Sonic 3, which was released — had been released in 1994,
so there was a drought of good Sonic games. Eventually, Taxman actually did port this
game to the Sega Dreamcast of all things, but we’ll get to that. So, all good things must come to an end, and
SSRG was mostly run by angsty teenagers, and then there were rival sites like Sonic CulT, and
then they battled and some people gave up, and the SSRG closed in 2003.
And it was sad. The Sonic Fan Games HQ were the first ones
to leave — they already had their own subdomain, so it was easy for them to cut their losses. The Sonic 2 Beta Page eventually morphed into
Sonic Retro, which has since become a community which deals with both unused content in the
games, analyzing the prototypes and also producing ROM hacks, producing modifications
to the original Sonic games. To add to the confusion, later on there was
a second SSRG, which is not the same as the original SSRG, in the sense that it is not
an aggregate site anymore, it’s just another set of forums where you can discuss like,
unused stuff in Sonic games, and post your hacks and stuff like that. To give you an idea what like, Sonic hacking
was at the time, this is basically it. Like, you had these tiny modifications to the
game which replaced like, the character sprites with a different character — in this case
like, Metal Sonic — some changed the level… the color palettes of the levels, so
now the stage was purple. Yay. Level design was still the same — but this
was basically all that we could do at the time. This was aided by tools such as Tile Layer Pro,
which is a multi-purpose tool for editing tile-based graphics in video games, which
was compatible with like, NES, SNES, Mega Drive. So that was easy enough, to edit Sonic’s
sprites. But then enter this guy. And this guy, what he did was, he created the first
fully-functional level editor, SonED, which was a level editor where you could change the graphics
of the stage, you could change the layout, you could change the object positions… you
could essentially eventually make your own game. He was also working on his own Sonic fan game,
which was called Sonic: Project Mettrix, and it too was interesting — he was coding
this completely from scratch, like, the original version was for DOS only. He was coding this in pure C, using very little
in terms of libraries, so this was really impressive at the time with how accurate the
physics were to the real Sonic games. Talking more about SonED…
SonED was amazing at the time. Like, you could make your own levels, you could
do anything, you could make your own game. Kudos to Stealth for originally trying to
make this paid software. He priced it at $30 — reportedly nobody paid the
$30 — then he lowered it to $15 — some people bought it — and then he just caved and made
a freeware edition, as it says on the title bar. This was a really great program at the time,
because originally you could only like, edit stuff in Genecyst savestates and stuff…
So this was the real first time where you could make your own Sonic game, make
your own levels, like, from start to finish. There were some limitations — there was poor
support for objects, for instance. You can see there — you can see the rings, you can see the
monitors… everything else is just a question mark. The question mark is marking the position of the
object, but it’s not telling you what the object is. That’s because someone had to go in there and
add object definitions, like, those three things at the bottom, those are spikes. You have to tell
them, okay, so make them look like spikes, like, load the spike graphics and the spike
colors and put the spikes on there. But nobody ever did — they stayed
question marks until all eternity. The other limitation is, you can’t add more
than it was initially there — so, the way this program worked is that it hooked right
into the ROM offsets where the data was stored. So you could edit that data, you could replace
that data… you could not make that data bigger than it was originally, because then
it wouldn’t fit within the original slot. So if you wanted to add another enemy to the
stage, you had to delete something in return. So that was a bummer. And then there were these
hacking guides at the time. This was a hacking guide made by saxman — not
Taxman, this is another guy, Damien Grove — which he explains how to add water to a level.
This is really simple. You just… copy and paste those six lines
of incomprehensible opaque hex codes into the end of the ROM, then you replace those
values with the water level and such you want, and it works. And it did work, because I did this
back in the early 90s, or late 90s, I mean — the early 2000s. And it did work. It did nothing to load the actual water sprites
though — like, the water splashes and stuff — but the water did appear in Emerald Hill, so
it worked, but like, what does this mean? Obviously people knew something, and this
wasn’t really public knowledge at the time. So we were used to that kind of ROM hack, like, just
replace the character sprites, just change the palettes. Maybe change the levels, maybe someone would
actually use SonED to make actually original levels… and then we’re treated to something like this. Which is… this is Sonic 2, except you’re
playing as Knuckles? And this is the desert stage that
isn’t the final game! And that’s a gator enemy, and that’s — yeah, the gator.
And a snail, there’s actually a snail enemy — yeah! And the HUD is different, there’s like centiseconds,
and the perfect counter and such. And then he breaks open the monitor… and there’s
Sonic 3 music? So what the hell is going on here? This marked a new era in ROM hacking,
which was the split disassembly. Now, what the hell is a split disassembly?
So what is a disassembly? A disassembly is when you use a program like
IDA Pro — here’s the wonderful DOS version — you use IDA Pro to take the contents of a ROM,
and IDA analyzes the contents for you, and it rewrites you the original assembly code as it
looked before it was compiled to data, right? So you get a perfect 1:1 match with the original code
— if you compile this you get a byte-perfect ROM. Of course, there’s a problem — you don’t get any of the
labels, that was lost during the assembly process. So you might document that this is the routine that
draws the sprites in the special stage, but unless you document the rest, like the RAM addresses
and everything, this is completely illegible. So IDA does a bunch of the heavy lifting, but then you
do have to go in and do a lot of the work for yourself. Once again Stealth was at the forefront of this. He was one of the first people to take advantage
of the split disassembly movement — so he made SonED2, which was a second version of his
SonED editor, which instead of using hardcoded ROM offsets, it actually used split files. So you actually took the ROM offsets which
held the level layout, the graphics and such, you split it into individual files, and then
SonED2 could just load that, or load them, like a normal editor does, like, you open
the files, you edit them, save them, then you recompile the ROM, and
there you go, there’s a new stage. So, Stealth and a bunch of entrepreneuring
ROM hackers — like, level designers, graphic designers — they got together and they
started making this really big ROM hack, like, Sonic Megamix, which you’re seeing right here. And another thing that Stealth was
really important in doing was making a disassembly of Sonic & Knuckles,
which he released in 2007, and this is… with the Sonic & Knuckles split disassembly is the
part where I come in, basically, into the picture. Ah, sorry. はい So, Sonic 3 Complete.
So what is Sonic 3 Complete? Sonic 3 Complete was a ROM hack
made by a guy named Tiddles, and the goal of Sonic 3 Complete is to put Sonic 3,
Sonic & Knuckles, and Sonic 3 & Knuckles in the same package, because there are actually
slight differences between all the versions. It has extensive customization options — for
instance, here you’re seeing… you’re playing Sonic 3 with the Sonic 1 sprite set — here’s
the Sonic sprite from Sonic 1 — and then it also has music from the PC version, so
there’s a lot of dots and diddles that you can change in the options menu to select
your own custom build of Sonic 3. There’s also numerous bug fixes and graphical
enhancements to the original game, which was the point where I came into the picture. I started
submitting stuff into the Sonic 3 Complete project, for instance, I created a full… I added
to the sprite set for Super Sonic — original Super Sonic used most of regular
Sonic’s sprites, just colored yellow — so I made the corresponding poses
for Super Sonic — bit of a pixel artist. I also changed a bit of the color palettes,
for instance in this part, Carnival Night is supposed to be suffering a blackout, but
when you go in the water, it’s bright again, so you don’t get that… you don’t get that
feel, so I made a water palette for that. So, stuff like that, a few additional icons
and such, but eventually it got to the point where the stuff I wanted to implement, the
graphical tweaks I wanted to implement required writing custom code, because, like…
Simple question. Can you tell me why in Sonic 1 and Sonic 2,
when you have no rings the HUD blinks red, but in Sonic 3, when you have no rings, it blinks
transparent? Does anyone know the answer? The answer is… Knuckles’ socks. It’s because of Knuckles’ socks. So let me explain.
So there’s this thing called the color palette, which is the colors that can be displayed
on the screen at any given point. You have the player palette on the top and
you have the enemy palette on the bottom. So, Sonic uses the top palette, generally stage
objects such as the HUD use the bottom palette, and you can see that the yellow and
red colors, like, are in the same index. So all the HUD has to do is like, change which
color palette it’s using so it changes colors. Okay, easy enough. When you get to Sonic 3, things get a little
bit more complicated, because you’ll realise, the red doesn’t align with the yellow anymore.
Now, why is that? That’s very simple. Because when you play as Knuckles, the game
takes Sonic’s palette, and it overwrites Sonic’s three blue colors with Knuckles’ red colors. Okay, fair
enough, but what does that have to do with anything? Aha, but Knuckles appears in cutscenes
during Sonic’s playthrough. And when that happens, the game loads
Knuckles’ palette to the enemy palette. But when it does this, now it has a problem. It needs to continue displaying the HUD correctly
— so the yellow has to stay in the same place — so something has to go, and for better or
for worse, the programmers decided to throw Knuckles’ socks under the bus, and Knuckles’
socks become yellow during cutscenes. So yeah, just to edit the the color palettes
and stuff in Sonic 3, you really have to know what’s happening behind the hood, and what
are the reasons, what were the justifications the programmers had for
doing these kinds of things. Luckily — getting to object editing, or sprite
editing — there’s actually a surprising bit of help, which is… there’s a patent — there
was a patent registered back in 1992, which doesn’t actually concern sprites, it concerns
some features of Sonic 2 — but in describing them, they have to describe how the
sprites work, and they actually talk about this here, which is the sprite status table.
What is the sprite status table? Well, you have two things — you have a sprite
attribute table, which is what the hardware actually uses to display the sprite on the screen
— and then you have the sprite status table. What is the status sprite table? It is a way to abstract
the concept of the hardware to the programmer. So we don’t… Like, when I tried to get into Sonic
hacking, I was really scared of learning all the assembly because, um… how the hell do you
place a sprite on screen? It must be really hard, like, system calls and talking to the coprocessor…
No, everything is done for you. There’s this sprite status table, which is a data structure
which is stored in RAM — there’s a section of RAM called object RAM, where you store any many of these
sprite status tables — and each one represents a sprite. And now you can set like, its X position, its Y position,
like… what is the address for its mappings file, what is the address for its graphics, what palette
is it using, which frame of its animation it’s using, and then all you have to do is,
you have to call functions. This is an example of a Sonic 3 object.
It’s really daunting at first, but it’s not really scary. It starts at the top, like, you have a move then
a jump operation — that’s a switch statement. It takes the routine and then it does a
switch jump based on the routine — if it’s 0 it goes to init, if it’s 2 it goes to main. So it goes to init, we set all the the base
variables like render_flags and width_pixels, which determines when the sprite gets cut
off at the edges of the screen and stuff, and then the main loop is really simple: just
check whether Sonic still has a shield, if he doesn’t, then go destroy it — which you call a
function for that, Delete_Current_Sprite, easy. Okay, and then if he still has a shield, like,
set the X position to the right value — the same as Sonic’s — set the priority
correctly, then load the shield’s animation, call the function that animates the sprite,
and call the function that draws the sprite. And that’s everything. And… this is
object-oriented programming. This… Yuji Naka was a genius — he
devised this system in 1991 — it’s really easy to just add stuff to the
game, you can quite easily add stuff, like… I added like, custom objects to the special stage — a
custom type of sphere, the green spheres — I completely made this object from scratch — it’s a recreation of
the Metal Sonic hologram from Sonic CD, in Sonic 3. I looked at not a single line of the original
code, I coded it completely from scratch, because all I have to do is like,
okay so, it has how many sprites? Okay, so move them around, like, call the
sine function to get the sine, so you get the X and Y coordinates for the little bird,
and then the box is solid, so call the solid object function and… it was
really much easier than I expected. So, going back to the question I posed
at the start of my presentation. So why would I reverse-engineer?
Well, the first thing is obvious: to build things. To make cool stuff, that’s the reason I started
contributing to Sonic 3 Complete, and after I stopped working on Sonic 3 Complete
due to… like, I had creative differences with the author, like, he wanted to take it in
one direction, I started wanting to add, like, new characters and new modes to the game. It didn’t feel like Sonic 3 Complete anymore, so I
decided to branch off and make my own project. So I started Sonic 3 Unlocked,
which is my own project. It is a hack where you can… basically, you
can control two characters at the same time, and you can exchange which characters
you’re playing without exiting the game, like, you can switch from Sonic to Knuckles… and
then I can change which character I’m controlling — I’m controlling Knuckles, now I switch
over to Tails, and… and I can switch over… Now I can, like, switch to Knuckles, pick
him up with Tails… it’s a bunch of fun. It’s still really — it’s a very early prototype… okay. Good call. Okay. Here we go, sorry. So, build cool stuff. Another point of reverse-
engineering: to document things. It’s really important to, like, go into the
game and figure out what’s in there. Like, there’s been a ton of discoveries,
like, stuff that was planned, was left on the cutting room floor, but
they didn’t delete it from the cartridge — there was no need to make room
in the cartridge. So they left it inside. For instance, you might not know that there’s…
in Sonic 3 — the original Sonic 3, the first cartridge — there’s this unused object which
shows Eggman escaping towards the horizon, which is meant for the ending cutscene. And for
one reason or another, they didn’t end up using it. But it’s really cool, it uses like, software scaling to
dynamically shrink the Eggman sprite, it’s really cool. So to that effect, I started a blog. I made a blog which has the same name as the
hack… as my ROM hack, Sonic 3 Unlocked, where I talk about like, all kinds of things,
like editing stuff, unused stuff in the game, like, just how some tricks were accomplished
using the hardware limitations at the time… And another thing I did recently was, I
made my own disassembly project. Because if you recall, I said that Stealth made
the Sonic & Knuckles disassembly back in 2009. Nobody actually disassembled the
original Sonic 3… up until now. This February — this past February — was
the 25th anniversary of Sonic 3, and as kind of a homage to that, I released a
full Sonic 3 disassembly, so you can now… you can get it from GitHub, you can compile your
own Sonic 3 ROM and you can look at what’s inside. There’s some surprising stuff there, for instance like, some bosses from Sonic & Knuckles are
already… their mappings are already there, so it changed a bit of my perspective of how complete
the game was when they decided to split it. Another reason to reverse-engineer
is to help others build things. So, you remember SonED — it had the problem
of the objects looking like question marks. Well, later on, there was a more advanced level
editor made by this guy named MainMemory. Basically, he remade the same concept as SonED
but in a modern programming language — he made the whole thing in C# — but it had the
same problem, like, the objects… there were no object definitions. So you went into a level and
it’s all question marks. This is less than useful. So one of the projects I did was, I went into
the editor and I painstakingly went through every object and I mapped out how the object
is supposed to look, its different configurations — if it’s horizontal, vertical — what the
movement pattern is gonna be, for instance, you can tell that that top platform is gonna
go down, then go back up… the one at the bottom is gonna fall directly to the spikes,
and it’s not coming back… stuff like that. So that was fun. And to do that, I had to do something really interesting
which is, I actually had to reverse-engineer the original assembly code, had to read it,
and then because SonLVL is written in C#, the way to write custom object
definitions for it is to write C# code. So I had to translate the original
assembly into, well, passable C#. And finally, I think a really inspiring reason to
reverse-engineer this stuff is to build a career. If you remember this goober from the start
of the video, Taxman — Christian Whitehead — well, in 2009, SEGA launched this blog post
where they were asking for, like, feedback on what games you would like
to see on iOS and mobile platforms. And so, Taxman went with the guerilla marketing
approach and posted this video to YouTube, and he sent it directly to SEGA. So, what you’re seeing right here is a full
remake of Sonic CD — originally for the Mega CD, released in 1993 — completely remade,
running on Taxman’s proprietary Retro Engine, which he started when he was working
on his fan game, Retro-Sonic. So he took this idea he had as a kid, this
pet project, and he made it into a business. He pitched this idea to SEGA, and in 2011,
Sonic CD for iOS, Android, Steam on PC, PlayStation 3 and Xbox 360 was released, and it has full
widescreen, has pitch-perfect 60 frames per second, option of American and Japanese soundtracks,
and lots more, like playable Tails. And what’s interesting about this — this is really
the part that gets to me — within the game files, Taxman hid this picture. And this picture…
this is the desert stage from earlier! It’s slightly remade, in the style of
Sonic CD — a bit abstract with like, lines and bars and stuff — but it’s the same idea. He actually pitched this idea to SEGA, like,
to add this as a “lost level” to the game, like, “Desert Dallas Zone”…
Desert Dazzle Zone, excuse me. SEGA refused this idea, they wanted to stay
true to the original game — they wanted just a straightforward remake of the
original, let’s not get too fancy. But still, the game got released
and… it sold really well. And then SEGA contacted Taxman to make
remakes of Sonic 1 and Sonic 2. And then they released, and… actually Taxman,
for these ports, he actually contacted Stealth — the guy that I was talking about, like, the
author of SonED and split disassemblies and Sonic Megamix — and he brought in his expertise
to add stuff like a playable Knuckles to the game. Now you can play as Sonic,
Tails and Knuckles in Sonic 1. So with each subsequent release,
they stepped up their ante. So SEGA allowed them to add
Tails and Knuckles to Sonic 1, okay. In Sonic 2, they allowed to add the missing
Hidden Palace Zone back into the game. So they actually went into the prototype
version of the game, and they took the the level graphics, they made their own
level layout, added new enemies, new objects, and they made a full-fledged stage,
including a boss, which is really amazing. And so, this was all going towards
the inevitability, which was… in 2015, if I’m not mistaken, this happened. Christian Whitehead, and Stealth’s studio
Headcannon, along with PagodaWest — which was actually composed of several members of
Sonic Megamix’s original level designers and graphic artists — they got together and they
pitched a completely original Sonic game to SEGA, and Sonic Mania ended up being released
in 2017, I think, and it did extremely well, and it has been reviewed as the best
Sonic game like, since ever. So this to me is really inspiring, like, you
could take something as nerdy and… a dead-end project like editing a game
from 1994 — and you can take that idea and eventually you can make a living out of it,
you can make a business out of it, and you can make a business doing
what you love, and that’s really inspiring. And eventually… the desert level is there! They
actually managed to get the desert level in there. It’s called Mirage Saloon, it’s fully playable
and… yeah, that’s it. I’m so happy. Guys, thank you so much for your time.
Thank you for coming to my talk. That’s it. If you have any questions about what I was
talking about — anything regarding, like, Mega Drive development or like, I don’t know,
whatever you can think of, like, give it to me. Throw me your questions. Thank you. So, any takers? Okay, so. Yeah. So the question was, how do
you get the games into your PC? So they come in cartridges, right? What do you do? Well, for a long time, there has been these people
who work on preserving software — preserving old video games — and what they do is they
build devices specific for reading cartridges and dumping the contents into like, I dunno, a
serial connection or a USB connection, whatever. So yeah, there’s a whole industry…
a whole section of users whose dedication is to preserving old
software and that’s basically how we got… Actually, that’s how we got these…
like, the prototype ROM! The prototype ROM of Sonic 2 which was
released on the internet like, in the early 90s, that’s how it was obtained, like… Chinese
bootleggers in the early 90s — in 1991 or 1992 — they managed to somehow steal an EEPROM — like,
an electronic erasable programmable ROM — from like an exhibit or something. They got the board, and they had a device, and
they dumped the the contents of the cartridge to a file, they uploaded the file onto the
internet and then it spread like wildfire. And then you could find it like, on ROM sets or
whatever, labeled like “Sonic 2 [bad dump]” because it didn’t match the
final version. And that’s why… Actually that’s why it took like, probably
over five years until someone realised that hey, this isn’t actually a bad dump, this is
a full prototype build of the game, it has stuff that was removed from the final
game, so this is really interesting. So, yeah. Yeah, basically. That’s basically it.
You build your own device, like… I’m actually not the biggest buff on
the hardware side of things, so… But yeah, there’s a whole group of users dedicated
to that stuff for all consoles or all platforms. Yeah. Thanks. Thanks for question. Anyone else? Sure. AUDIENCE: Do you believe Michael Jackson did the
soundtrack for Sonic 3? There’s a rumor about that. That’s not a rumor, that’s true. That’s actually true. So what happened was, when SEGA was developing
Sonic 2, Michael Jackson actually came by to visit. He was a really big fan of Sonic, so he said like, when you make the next game, I’d
really like to make the soundtrack. And then when Sonic 3 rolled
around, it actually came true. They actually went and contacted Jackson
and he — along with a bunch of his musicians like Brad Buxer and Cirocco Jones — they
actually started making a soundtrack. Uh, I can actually show you
something really interesting. So if… okay. It’s easier to
realise in the chorus, but… If this song is familiar to you, that’s because
this is the song for Icecap Zone in Sonic 3. So ‘The Jetzons’ was actually a band which
was produced by one of Jackson’s musicians, uh, chief composer, Brad Buxer. So Brad Buxer actually… this was an unreleased
song on an unreleased album, so Brad Buxer actually went back and took the melody,
and used it as the song for Icecap Zone. And there’s other anecdotal evidence, for
instance like, the Sonic 3 credits music. Sonic 3 Credits… is actually an early
version of Stranger in Moscow. There’s probably a mashup video
somewhere. Stranger in Moscow… So yeah, it’s not a rumor. This is actually true. And what’s rumored to have to happened is…
when they were developing Sonic 3, the scandal broke out, of Michael Jackson’s…
well, the accusations against Michael Jackson, you know what I’m talking about.
So SEGA decided to cut their losses and remove Michael Jackson from the
credits. But the soundtrack remained. So the songs are there, and what’s telling
is that in Sonic & Knuckles, they actually brought in a new musician — Howard Drossin
— to rewrite some of the songs, which were probably originally Jackson compositions
that they wanted to get rid of. Yeah. So, any more questions? AUDIENCE: I wanted to add another
question, less related to the… to music. AUDIENCE: How much of the code is
shared between different games, and… AUDIENCE: like, how much of the changes
actually apply throughout the games? Between different Sonic games? AUDIENCE: Yeah, not
necessarily Sonic games, but. Well, I am most familiar with Sonic
games, so I’m going to answer that in perspective of the Sonic games. Sonic 2 is
completely an evolution of Sonic 1 in every way. Like, it is the same codebase with added stuff on top of
it, and Sonic 3 is Sonic 2 with added stuff on top of it. They… with each new game, it was a new…
basically a new revision of the game engine, which added new features which they needed
to implement certain things into the game. Like, for instance in Sonic 3… Sonic 3 has like,
seamless transitions between levels — you complete act 1, you go straight into act 2.
That required the graphics to decompress really fast, so they developed a new compression
algorithm that lets stuff decompress really fast. That kind of stuff. Yeah. More questions? AUDIENCE: Hi. So, retro gaming is now a big trend,
for instance on the Switch now, we have AUDIENCE: a new Sonic game which is part
the old levels and part the new levels… Sonic Mania, exactly. AUDIENCE: Sonic Mania, really complicated
stuff… I dropped out after the second level. AUDIENCE: And also, they released a big pack,
also on the Switch, of a lot of SEGA games. AUDIENCE: My question is, have you — and knowing
there is homebrew… and the userbase of the Switch is AUDIENCE: higher than… for these kinds of mods —
have you looked into disassembling the Switch games, AUDIENCE: checking out the differences, both the
big collection which is supposed to be an emulator AUDIENCE: with the ROMs on it, and the actual
Sonic Mania and check the differences? Yeah so, the collection that’s on Switch
and that’s also on other platforms — like Steam PC, PlayStation,
Xbox I think — that is emulated. That is an emulator running the original games,
so the ROM files are there verbatim. The emulator is not particularly good. It is not very accurate, it is… it has really
bad latency problems on the Switch, actually. I actually bought that — it was on sale — you press
the jump button and then, like, a quarter of a second later, Sonic jumps, which is really, really
detrimental to such a fast-paced game. So in that respect, there’s no mystery there —
it’s the original Mega Drive game, like, pure. Sonic Mania… Sonic Mania is more
complicated. It is a different beast. Like I said, it is built on the Retro Engine,
originally by Taxman, so it is completely… It is the same algorithms but completely rewritten
in new languages, proprietary scripting languages, so… while I expect that the same spirit
and the same ideas are there, the code is likely to be quite different, because they
didn’t have to follow the approaches that the original Mega Drive
programmers were forced to. There is no disassembly of Sonic Mania to
my knowledge. I believe that the authors of like, the Sonic Mania Mod Loader — it exists for
the PC — where you can load your own mods onto Sonic Mania — it’s amazing, they make
levels, characters, music, graphics… it’s a whole ‘nother thing — so what that does
is, it hooks into certain function calls within the Sonic Mania executable and injects
new stuff, new data, new levels, etc. So to that extent, Sonic Mania has been disassembled,
in order to find those function hooks, but a full disassembly does not exist of the game, so far. Also, all the data is stored in a proprietary format —
like, Retro-Sonic Software Development Kit format, or whatever — it’s encrypted and stuff, so it’s
harder. It’s harder than Mega Drive because… on Mega Drive, they basically counted on the
difficulty of duplicating cartridges as piracy protection. They don’t have really any, like… there’s no code to
prevent you from running a pirated version of the game. You have the game, you have the game. Yeah. More questions? All right, I think that’s it then. Thank you so much.

8 thoughts on “Reverse-engineering Mega Drive games 25 years after the fact”

Leave a Reply

Your email address will not be published. Required fields are marked *