Beginners Guide to playing ROM hacks
Intro:

So you've found a ROM hack or two that look interesting, but you're not sure how to actually play it. It's easy! You're going to need a few things:

  1. The hack you want to play
  2. An original ROM file of the appropriate game
  3. An emulator
  4. A way to patch the hack onto the original game ROM


[1] The Hack:

Our hacks database includes a whole bunch of romhacks to choose from. You can search, filter, and sort however you like to find whatever you're looking for. Or you can check the forums or ask on Discord for recommendations.

However, when you download a hack from here or another romhacking site, you don't get the complete game all at once. Hacks are distributed as patches, which contain only the unique parts of that hack. You then need to combine the patch with an original ROM of the game to get a playable copy of the hack.


[2] An Original ROM:

You need a ROM file containing a copy of the original game, whether that's M1, M2, SM, Fusion, ZM, or something else. A ROM is a computer file that contains an exact copy of the Read-Only-Memory in the physical game cartridge. The only legal way to acquire a ROM file is to use specialized hardware to dump a copy yourself, from your legally-owned physical cartridge. The links above for each game will take you to our wiki, which has details to help you confirm whether the ROM file you end up with is valid. If you try to use a different ROM, you most likely will not be able to play hacks properly.


[3] An Emulator:

It is possible to play romhacks on real console hardware (like a Super Nintendo), if you own the appropriate console and a compatible flash cart. But most people are going to play hacks using an Emulator, which is a computer program that emulates the original console. You'll probably also want a good controller, although some players swear by the keyboard. As this is mostly personal preference, you're on your own here.

For many consoles, there are lots of different emulators available. Your options might be limited by what OS you're using (Windows, MacOS, Linux, Android, etc.) and how good your computer/phone/whatever is. Not all emulators are equal; some are noticeably more accurate than others, some are faster than others, some offer more customization. If you already have an emulator you like, most likely you can keep using it. Otherwise, here's a few recommendations that are known to be pretty accurate, and will work on a wide variety of systems:

For hacks of Super Metroid, we recommend Higan or snes9x.

For hacks of Metroid 1, we recommend Nestopia or FCEUX.

For hacks of Metroid 2, Metroid Zero Mission, and Metroid Fusion, we recommend mGBA or Visual Boy Advance.

For hacks of Metroid Prime 1, 2, and 3, we recommend Dolphin.


[4] A Patching Tool:

Remember, hacks are distributed as patch files, which must be applied to an original ROM of the appropriate game in order to play the hack. There are several different kinds of patches, and they all work in a very similar way. The most common patch format, especially for older games, is IPS. A newer and better format is BPS. You may occasionally see other formats like xdelta or UPS.

Soft Patching:

Some (but not all) emulators have a feature called soft patching built-in, which means they can automatically apply the patch when you load up the ROM in the emulator, without making any permanent changes to the files. To use this method, simply make a copy of your original ROM, and name it the same as your patch file--for example, "Hyper Metroid.smc" and "Hyper Metroid.ips"--and then open "Hyper Metroid.smc" in your emulator. Emulators known to support soft patching: RetroArch, snes9x, zsnes, FCEUX, Nestopia, and Visual Boy Advance

Hard Patching:

If you don't want to (or can't) use soft patching, the alternative is hard patching, which means that the changes are permanently written over the ROM file. This is preferred by some players because once you patch it you only need to keep one file around instead of two, and it is guaranteed to work with any emulator. To use hard patching, you need to use a patching tool to apply the patch.

There are many different patching tools, depending on your OS and the patch format. As long as the tool supports the patch format used by the hack, and you can run the patching tool, it will work fine.

Regardless of which tool you use, the process is the same: you select the patch file (containing the hack), and you select the ROM file (containing the original game), and it will replace the original ROM with a patched ROM. Then simply load up the patched ROM in your emulator of choice. If all goes well, you're done and can delete the .IPS file if you like.

Headers:

If you're playing hacks of Super Metroid, you need to be aware of ROM Headers. For hacks of other games, this isn't really an issue and you can safely ignore this section.

The short version is, headers are bad and should be avoided wherever possible.

The longer version is: some SNES ROMs out there have a "header" at the beginning, while other ROMs do not. These headers were meaningful to the specialized hardware used to dump the ROMs from physical cartridges originally, but don't serve any useful purpose today. All emulators can handle both headered and unheadered ROMs, so as far as playing them, there's no concern either way. Where headers DO matter, however, is with creating patches and applying patches.

Fortunately, the rule is simple: If your patch file was designed for an unheadered ROM and you apply it to an unheadered ROM, everything is fine. Likewise, if your patch file was designed for a headered ROM and you apply it to a headered ROM, everything is fine. If you mix and match, the ROM is likely to not work at all, and you're going to have a bad day.

Every hack on this site should supply an unheadered patch file (often labelled with the abbreviation [UH]), which should be preferred. Some hacks might also supply a headered patch file (possibly labelled with [H]). If you find romhacks on other websites, especially older ones, they might only have a headered patch available, which means you'll have to make sure you have a headered original ROM to apply the patch to.

If you're not sure whether your ROM has a header, here's how you can check: an unheadered "Super Metroid (JU) [!].smc" ROM should be 3145728 bytes in size and have an MD5sum matching 21f3e98df4780ee1c667b84e57d88675, while a headered ROM should be 3146240 bytes in size (the MD5sum will vary based on what is in the header, if it is all zeros then it should match 24863a97246994892c138a4c3d6b8749). It's possible to add or remove a header from your ROM by making a backup and then using tools like SMILE (the option is under Tools -> Header), nsrt, or SNES Tool. If you're brave, you can even use a hex editor and just delete the first 512 bytes (to remove a header) or insert 512 bytes at the very beginning (to add a header).