Alex Mitchell

Fun GB/GBC ROM Hacks And How To Apply Them Online

I’m not here to tell you that game preservation isn’t important. It should really go without saying that games need to be archived as perfect snapshots in time, so that future generations can learn from and enjoy the works that have shaped the medium exactly as they were released. If we’ve taken away anything from the tragedy of silent film and the butchering of the original Star Wars trilogy, it’s that anything not actively saved will be lost.

However…

I don’t think that the classics we know and love are beyond reproach, and playing them exactly as they were released can be kind of a slog sometimes. A lot of us in retro gaming are adults with finite time to actually enjoy games, and many of our favourite titles benefit greatly from quality of life improvements that simply weren’t common in the 8 or 16 bit eras. Fortunately, a trifecta or software emulators, FPGA simulations, and ROM carts means that we’re no longer limited to only running retail code.

One of the things I absolutely adore about the current state of retro gaming is its vibrant remix culture; as dedicated to creating new experiences as it is to refining older ones. ROM hacks; translations; total conversions; a kaleidoscope of projects that—if I may be so bold—often objectively improve games. They have become a critical component of how I enjoy the history of gaming, by sanding off the rough edges that existed because of project budgets, regional market forces, or simply because creators didn’t know what we know now about game design. Sacrilege, I know, but as an example I honestly can’t imagine playing Super Mario Bros. 3 again without an SRAM save hack. I’m a busy man! I don’t wanna lose my progress!

Applying patches in 2021 is a pretty simple process, so I’m going to walk you through ROMHacking.net‘s online tools with an example patch, and then point you to some cool GB/GBC projects that I have been enjoying in anticipation of the Analogue Pocket’s imminent release.

Step 1: Find and download a ROM hack.

ROMHacking.net is a repository for a lot of terrific projects of all stripes. All you need to do is type the name of your favourite game in their search engine and you’ll be able to see all the different projects associated with that game. For this example, I’m going to go with the absolutely incredible Mega Man X SA-1 patch, which improves performance and even adds save game support without having to write down a code! An important part of this step is making sure we keep this window open even after we download our patch though; we’re going to refer back to this page again very soon.

Step 2: Acquire the ROM you’ll be patching.

I ripped my copy off Mega Man X using the Super Nt‘s jailbreak firmware, but I also understand that there are numerous ways for folks to… ahem… acquire files like these on the high seas. Let’s move on, shall we?

Step 3: Verify the file that you’re gonna be patching is the correct file.

Part of applying a ROM hack properly is making sure that you’re applying it to the correct version of a game. Even back on cartridges it was common for developers to fix bugs after release or implement regional changes, and those differences can be significant enough that a ROM hack won’t work on every revision of a game. Fortunately, most ROM hacks on ROMHacking’s website will tell you which version of the game you’ll need, which is why I mentioned that you need to keep your window open for this tutorial.

To wit, Mega Man X has two North American revisions—its initial retail release and a revised version after that. To make sure that the version of Mega Man X that I own is the right version of the game for the SA-1 patch, I’m going to be using ROMHacking.net’s online ROM hasher and comparing its output to what is listed on the SA-1 patch’s page. As you can see from the screenshot I took from the hack’s page and also the online hasher, my version of Mega Man X should work with the SA-1 patch!

For some extra background, a checksum is a way of comparing two or more files against each other to make sure that they’re identical. Groups like No-Intro have done incredible work dumping and cataloging the checksums of older games, so if the checksum of your game ROM matches the checksum of a No-Intro dump then you can be sure that you’re good to go. There are many kinds of checksums with different applications (e.g. MD5, SHA, CRC32) but I normally only pay attention to the CRC32 hash because its output is smaller and more manageable. Feel free to compare the SHA-1 output if you want to be really thorough though!

Step 4: Applying the patch.

In addition to their ROM Hasher, ROMHacking also has an online ROM Patcher that supports most of the common patch formats I’ve stumbled across. The interface is simple enough; you select a ROM, then select a patch, and then you download the patched ROM! You’ll notice that this patcher also performs checksum verification on your files, so you could perform steps 3 and 4 on the same page here, although I will say that I really enjoy the granularity of the online hasher’s output.

Now that you’re an expert in applying Patches, let’s look at some really cool projects:

Link’s Awakening: Redux

I don’t know if I could describe it any better, so I’m going to let the project’s description do the talking: Link’s Awakening Redux is a hack that commemorates the release of the Link’s Awakening Remake, combining three of the most essential improvement hacks out there, and also implementing full uncensorship for Link’s Awakening DX to make the experience of the game much more enjoyable and without the annoyances of the original.

Tetris: High-Score Saving

Tetris is an undeniable classic but it is kind of a bummer to have to manually track your high scores if you’re really in to beating your personal bests. With this patch, and an included save file, you can preserve your high scores between sessions!

Kirby’s Dream Land: DX, Revised, Fluffy Repair Service

Kind of an intense name for a ROM Patch eh? Well that’s because the ideal colourized version of Kirby’s Dream Land was a bit of a group effort. The original colourization needed a bit more polish, and then there were some technical issues to fix on top of that, so applying all three patches in order should give you a stable, aesthetically pleasing finished result.

Resident Evil: bug fixes

I spent a lot of time pouring over pre-release media from Capcom’s impossibly cool Game Boy Color port of the first Resident Evil, which made it all the more disappointing when that port was eventually cancelled. Lucky for me that the ROM(s) were eventually dumped online, albeit in an unfinished state. The game itself is still only barely playable, but if you can find those pre-release files then this is the best way to explore as much of that content as you can.

Wario Land 2: Enhanced Graphics

Wario Land 2 had a few localization adjustments made when it was brought over to regions outside Japan, and this patch rolls those back while also refining some elements and bringing Wario’s colours more in line with how he’d look in the next game.