Sunday, December 20, 2020

Reclamation Project - Part 3: Genesis Analysis Tools

Starting on a journey of dissecting an old game can be a challenge. The easiest way to do this, of course, is simply to play the game in an officially licensed format. For modern gameplay I would suggest using a Genesis Mini and hooking it up to a modern TV. If you're feeling really old school, then you can grab yourself an old Sega Genesis/Mega Drive and a copy of any cartridge and you'll be good to go.

Just playing the game is not enough for me. I want to tear the game apart all the way down to its roots. Every aspect, every little detail, and every bit is going to be examined. There could be useful data hidden inside the game, and at one point I had considered hacking as a slap-fix for my own fix. What we're going to need is a dump of the game, otherwise known as a ROM.

From a legal perspective, if you own a copy of the game you can make backups of that game for archival purposes in most countries. That idea has been tested to varying degrees across the world, and while having a backup copy of a game for archival or other purposes is seen as legal, downloading a game from the internet is not.

Here's an overview on how to dump games from an old cartridge
Here's a writeup on how to dump games from a Genesis mini


With a legal copy of a ROM in hand, the next step is to analyze it. For our purposes, being able to change what a console would do at runtime should be enough. We're going to need more than a standard emulator for that purpose

Gens Re-recording is a great tool for examining how the game is structured piece by piece. We can turn on and off different rendering layers, record videos, and play back a series of inputs. I'll be using this one most throughout the project.

Disabling sprites is simple and effective

For more technical analysis, we're going to need an emulator with more potent debugging powers. Gens KMod can bring up multiple debuggers, from the CPU to the sound card. It's ideal for ROM hacking. For my purposes, I'm looking at how the game is running in the background and finding useful data in the debugger.

Some Genesis games store sound files in their ROM as uncompressed data. You can open up a ROM in Audacity as raw data. Import the entire ROM with 6 channels and use KMod to determine the frequency of the sound. That frequency should be found below; you may need to slow down or stop the emulator's playback to find out exactly what you need.


Alisia Dragoon seems to have all of its music stored as custom data instead of something easier, unfortunately. This may apply more for future games


The last piece of the puzzle is something for analyzing footage after the fact. VirtualDub is a simple and free video player that lets us precisely control each frame, scrub forward and backward through the footage, and make easier miniature videos for the blog. Paired with game movie and AVI output from Gens Re-recording, that should be all we need for the bulk of this.

Virtualdub in all its basic glory

No comments:

Post a Comment

Self Reflection, Avatar Reflection

It started as a joke. One day I decided that my game development was going poorly because I was too attached to my characters. If I messed a...