So, congratulations! You’ve downloaded a ROM hack from the ROM Hacks Studio, Progressing ROM Hacks or Sideshow Showcase! Playing your fangame is straightforward:
Download the patch for the hack you’d like to play.
These patches come in formats including .bps, .xdelta, .ups, or .ips. As a patch, it’s only one of the things you’ll need to play the game.
Download the ROM of the game required to patch.
The ROM hack is the other half of what you need to play a ROM hack. For legal reasons, game ROMs (and patched versions) can’t be uploaded onto PokéCommunity, so you’ll need to search the internet for them.
Patch the ROM using a patching tool. ROM Patcher JS is recommended — it works entirely in-browser and puts the patched game straight in your downloads folder. If you receive an error, see below!
Open the patched ROM in the emulator of your choice.
If you’re on a computer, mGBA is your best bet for playing nearly all Game Boy and Game Boy Advance ROMs, including fangames.
Some patches and ROMs will come compressed in ZIP/7z/etc. files, and will need to be uncompressed before you can patch them.
This guide is lovingly made with contributions from flowerchild, professor plum, bobandbill, SatoMew, SBird, Lunos, Brom, ExpoSeed, Adrevi, and the ROM hacking staff.
The process is largely similar whatever you use — supply a ROM, supply a patch, and then save your patched ROM somewhere. And you’re done!
Making sure you’re patching the right game
To ensure that you won’t run into problems, make sure you’re patching to the correct ROM — check with the author of the hack to ensure you’ve got the right ROM. Double-check, especially if your game doesn’t load later on. You can check if you’re using the correct ROM by looking at its CRC32, MD5 or SHA-1 checksum, which ROM Patcher JS will show you.
The CRC32 and MD5 checksums for a typical Pokémon game:
Pokémon FireRed (USA, version 1.0) — CRC32: dd88761c / MD5: e26ee0d44e809351c8ce2d73c7400cdd
Pokémon Emerald (USA/Europe, version 1.0) — CRC32: 1f1c08fb / MD5: 605b89b67018abcea91e693a4dd25be3
Some patches will be checked by the patching app, and will raise an error if the ROM isn’t correct:
Do not ignore these errors, as they may lead to errors down the track.
Issues playing Game Boy and Game Boy Advance hacks
Sometimes, your Pokémon hack won’t work as you expect it to — if you’re receiving errors such as white screens or crashes that other people don’t seem to be having, read on.
Check if the ROM you’re trying to patch is correct — assume that if the game you’re patching is FireRed or Emerald, that they are the English 1.0 versions. Try following the guide above with ROM Patcher JS and comparing the checksums. Any 1.1 version or higher version or any version that has been modified in any way will not match, and attempting to patch on them will lead to crashes. Do not ignore mismatch errors from your patching app; if these do appear, or you get crashes, you’ll need to find the correct ROM.
White screens and errors such as “The 1M sub-circuit board is not installed”, “The previous save file will be loaded” or “The battery has run dry” should never occur if you’re using an up-to-date emulator (or some Android/iOS emulators). If you have no other options, and you’re trying to play Pokémon fan games, check the emulator’s settings:
Make sure the "Save type" is "Flash 128K".
Also ensure that the "Real-Time Clock" is enabled — this should allow Ruby-, Sapphire-, Emerald- and day/night-based FireRed hacks to run.
Certain ROM hacks may require overrides to work. Your emulator's help pages should be able to tell you how to set these.
Issues playing Nintendo DS hacks
Unlike with GBA games, modern DS emulators are much better at automatically detecting the settings to run. If your game won't load, be sure to check if you're patching the correct games.
Some games may crash on flash carts due to compatibility issues with the cart’s firmware, and may be resolved with a firmware update.
Dealing with issues in general
Some issues can be dealt with by checking for any settings or patching procedures supplied by a hack’s developer, so check the documentation, MD5 sums, etc. for the hack you’re trying to play. In addition, some hacks just might not work with the emulator you’re trying to use; in which case, try a different emulator. It’s likely the hack’s page or questions asked in a hack’s thread will have suggestions as to what you should do.