All Articles

Retro Redux: Bringing the Present to the Past of Gaming

I’m consistently impressed by just how determined fans are. Take, for example, fans of retrogaming.1 😲

Gradius III is a game that was originally released in 1989 to arcades and was ported to the Super Nintendo for release in 1990. If you’d played both versions of the game, you may have noticed something unusual. While gameplay is fairly fast-paced in the arcade version, in the Super Nintendo version, the game tended to slow down when lots of enemies were on the screen; an unfortunate bug.

Bugs are fairly common when writing software, and especially when porting from one platform to another. Unlike most software we run today though there wasn’t really any way for these problems to be fixed once they were out in the wild. There were no software patches, no web updates, no new releases of cartridge-based games.2

And if there were no fans, that might be the end of this particular story, but almost 30 years later, a fan decided to fix that.

The breakthrough that fan Vitor Vilela discovered was that by leveraging the SA-1 chip found in later Super Nintendo cartridges and using that chip’s improved graphics and parallel processing, it was possible to speed up gameplay and keep a consistent frame rate in the game.3

Vitor isn’t the only determined fan, of course. Other fans have managed to increase the resolution of the Super Nintendo’s Mode 7 style graphics to breathe new life into games like Super Mario Kart, added widescreen functionality to emulators in some cases, analyzed old game data leaks, and developed a huge number of projects and products to upscale older games.4

While there’s definitely a need for new games and new experiences, it’s fascinating to see the way these fans have breathed new life into old games. Well, that and speedrunners. 🤣

These kinds of developments help people familiar with the original material to experience that material in a new way, or potentially help to make the material more accessible or palatable to new audiences. You see this happen in a different when a game is remastered.

In an example that I’m excited to share with folks soon, I had the chance to bring the present back to the past when I was learning about the MSU1 chip for the Super Nintendo.

All you need to know is that the MSU1 is an expansion chip for Super Nintendo games that would give those games up to four gigabytes of storage (for reference, the largest SNES cartridges were six mega bytes) 🤯

Why have you not heard of this before? Because it’s not a real chip!5 Thanks to enterprising emulator developers and the ability to patch old game ROMs with new data, it means that you can do neat things like add CD quality sound to your favourite games, or even include full-motion video (FMV)!

Yes, that’s right, on the Super Nintendo!

I tried it out with Chrono Trigger, and after a few missteps, I was getting chills listening to some of my favourite music and watching the anime-style cutscenes but otherwise still playing the same game from 25 years ago.

It’s incredible!

Anyway, I wanted to share some of these neat discoveries with you that wouldn’t be possible without fans. If you want to experience some of the changes with me (or maybe even help out a good cause), I’ll be streaming Chrono Trigger on November 28 from approximately noon to midnight (Eastern Standard Time) for my Extra Life Game weekend

…And if you want to know how I did it, read on!

I went through a bunch of trial and error to get the MSU1 patch to work for Chrono Trigger, but I’ve done my best to include the steps I took here. A couple things to keep in mind before I dig into specifics:

  • Given the gray legal area of ROMs and remix culture in general, you’ll have to find your own copy of the game
  • … And its possible that the patch and related files may disappear. If so, sorry 😞
  • The steps to follow may vary slightly depending on your emulator of choice. I learned, for example, that SNES9X will not automatically apply .bps patch files, but bsnes does!

If you want to try it yourself:

  1. Visit the main ROM hack page here and download the game patch, intro video, intro audio, and the free audio pack
  2. Verify that your ROM is the correct ROM. A few different checksums are provided on the ROM hack page.
  3. Make a folder to put all the related files, and copied the files you’ve downloaded to that folder
  4. Move your Chrono Trigger ROM to this folder, and rename it to match the pattern of the music and patch files
    • Most emulators handle MSU1 audio and video files via looking for files with the same prefix
    • In my case, the prefix was chrono_msu and the folder looked like this:
> Chrono Trigger ++
\-- chrono_msu.sfc    // the ROM file
\-- chrono_msu.msu    // MSU instructions
\-- chrono_msu.bps    // patch for the ROM file; automatically applied for bsnes
\-- chrono_msu-XX.pcm // a bunch of different audio and video files
  1. Depending on your emulator, you may need to create a manifest file. I found some instructions here but they are somewhat incomplete. You’re probably better off going to this repository that contains many of the same files and, more importantly, a manifest file (manifest.bml)
  2. You may need to apply the patch if your emulator doesn’t support patching-on-the-fly (you can tell if you start the game and still hear the regular audio). I found some information on using FLIPS for patching ROMs and it was pretty straightforward. I’d suggest deleting the patch file .bps if you go this route, to avoid any emulators trying (and failing) to re-patch the ROM.

I’m a big fan of the Blake Robinson Synthetic Orchestra’s rendition of the Chrono Trigger music, so here are the extra steps you’ll need to do if you want to get them working instead of the free pack. Depending on where you are in the world, it might be hard to purchase the music to get the .flac files 😥

You can also follow the video instructions from the ROM hack page, but this might be quicker.

  1. Get and download the .flac files
  2. Download the track listing / mapping file
  3. Download MSUPCMplusplus.exe and move it to the same folder that the music and LavosScream.wav are located
  4. Make sure that the files you’ve downloaded and the folder structure match the file patterns in the mapping file. If they don’t match, they won’t get converted.
  5. Either drag-and-drop the track listing file onto MSUPCMplusplus.exe, or run it from the command line (and provide the listing file as an argument)

That should be it!

  1. Retrogaming is very poorly defined; while some groups draw a line based on how far back in time from the present, others, like the retrogaming subreddit have chosen to pick a fixed point in time / fixed generation.
  2. Sometimes console games would receive reprints or have updated versions released—not that a consumer would have any way of knowing 🙃
  3. This is a gross understatement on the months of effort required to accomplish this. I’d highly recommend reading the linked article.
  4. Not to mention the huge efforts by folks doing games preservation and archiving the internet
  5. Also, you, like me, probably don’t care about real fake computer chips for old video game consoles