/r/PokemonROMHack’s
ROM Hacks 101

By BHLHB3 and browniebiznatch

What is a ROM hack?

How do I play a ROM hack?

Patching and ROM bases

So how do I play it?

How to patch ROMs on Windows step-by-step:

.ips patches

How to patch ROMs on OSX step-by-step

.ips, .ups, .delta and .dat patches

What can I play a ROM hack on?

GB/GBC/GBA Emulation on a PC

Visual Boy Advance Step-by-Step

GBA Emulation on an Android Device

Gameboid Step-by-Step

PSP Emulation

GBA

gpSP-J Step-by-Step

GB/GBC

RIN Step-by-Step

Pokémon Randomisers

Pokémon Emerald Randomiser Step-by-Step

Troubleshooting: My ROM isn’t working!

What is a ROM hack?

Generally speaking a ROM hack is any modification to a videogame’s ROM, ROM is just another way of saying a game’s code. Hacks can be as simple as a translation of a foreign game or as complicated as adding new levels, features, and characters.

In the context of Pokémon ROM hacks usually try and improve the repetitive Pokémon formula by adding new storylines, locations, features, and occasionally Pokémon.

How do I play a ROM hack?

Patching and ROM bases

Due to copyright issues, instead of distributing hacked ROMs the changes are compiled into a file known as a patch. Using the patch file these changes can be applied to the ROM that that the hack was designed for to produce a complete hacked ROM.

The ROM that the patch is meant to be applied to is known as a ROM base. Pokémon games are released across several regions Japan, Europe, and America all of which have slightly different ROMs. Occasionally a region will have two slightly different ROMs released there. Patching a the wrong version of the ROM, even if it’s still the right game, will produce glitches and errors. Typically hacks will require you to patch a ROM of the game from the United States, these can be identified by a (U).

Fire Red/Leaf Green

There are two different versions of the Fire Red/Leaf Green (U) ROM. v1.0 and v1.1. The two versions are distinguishable at the title screen when the ‘Game Freak’ logo appears. In v1.1 ‘Presents’ appears under the Game Freak logo. In v1.0 the logo appears by itself. ROM hacks typically use v1.0 as a base.

v1.0

v1.1

Pokémon Ruby/Sapphire

Pokémon Ruby and Sapphire have three versions. v1.0, v1.1, and v1.2. There is no easy way to distinguish between the three releases however patching the wrong version will produce a white screen error. As with Pokémon Fire Red ROM hacks typically use v1.0 as a base.

So how do I play it?

So you’ve checked out our Hackdex and have found a hack you want to play. For the sake of this example let’s say you want to play Pokémon Light Platinum. The first thing you should do is check using the Hackdex the ROM base the hack uses, in the case of Pokémon Light Platinum Ruby 1.0 (U).

Next download the patch download the patch from the Community DropBox, using a link in the Hackdex if it’s available. If not, navigate through the folders Patches > Your ROM Base > Your Hack to find the patching files -- in our example you’d navigate through Patches > Ruby base > Pokémon Light Platinum.

The patch files will be in one of six forms. GBA, GBC, or GB patches will either be in the form of an .ips file (the most common), an .aps file, or an .ups file. Nintendo DS patches will be in the form of a xDelta .dat or .delta file. GBA, GBC, GB, or NDS patches might also be in the form of a .zip archive if the patch comes with extra information such a readme, changelog, or walkthrough.

If the patch does come in an archive use extraction software such as 7-Zip to extract the files to determine which extension your patch file is. In our example, the patch is an .ips file, the most common type of patch. Now you have to patch the ROM!

How to patch ROMs on Windows step-by-step:

.ips patches

  1. Download Lunar IPS from the the community DropBox.
  2. The file you downloaded will be a .zip file. Extract that using your choice of extraction software. If you do not have any, we recommend 7-Zip.
  3. Two files should have extracted from the .zip file: Lunar IPS.exe and readme.txt
  4. Move the Lunar IPS.exe to somewhere you won’t delete it.
  5. Double-click on Lunar IPS.exe to open it.
  6. There will be three buttons and two check-boxes. Make sure that ‘Register File Type’ is checked and that ‘Create a log file’ is not checked.
  7. Click on ‘Apply Patch’ and navigate to the directory where the .ips patch file is stored using the explorer that appears.
  8. A new explorer window will appear. Now navigate to the directory where the ROM you need to patch is stored. To find out what ROM you need consult the ROM descriptions guide that can be found here.
  9. A window should appear confirming that ‘The file was successfully patched’.

How to patch ROMs on OSX step-by-step

 .ips, .ups, .delta and .dat patches

  1. Download MultiPatch from the community DropBox.
  2. The file you downloaded will be a .zip file. Extract it using the native extraction capability in OSX.
  3. Run the application.
  4. There should be three browse buttons.
  5. One should be labelled 'Location of patch file'. Use this browse button to select the .ips, patch file.
  6. One should be labelled 'Location of file to patch'. Use this browse button to select the .gba ROM for you to patch.
  7. The final button should be labelled 'Save patched file as'. Use this browse button to select the location you want the patched file to save.
  8. Apply the patch.
  9. A message should appear confirming patching is complete.

What can I play a ROM hack on?

So you’ve got a patched ROM, great! Now you have to have some form of emulator to play it on.

Pokémon ROM GB, GBC, and GBA ROM hacks can be played on a variety of devices. The most popular is the PC but PSPs and iOS and Android devices can play GB, GBC, and GBA ROMs too. My personal favourite is emulating the ROMs on the hardware itself using flash carts. NDS emulation is more difficult but can be achieved with a high rate of compatibility on the PC and most effectively natively on a DS flash cart.

Pick whichever device you feel comfortable with and then load up your ROM and start playing, there are some guides below to help you get started with some popular emulators. If you encounter any issues there are troubleshooting tips at the bottom of the guide.

GB/GBC/GBA Emulation on a PC

Visual Boy Advance is probably the most commonly used Windows Gameboy Advance emulator. It has great compatibility with all Game Boy Advance games and has more features than you’ll ever need. It also has the great advantage of being backwards compatible with Gameboy and Gameboy Colour games so you can play your Generation I and II ROM hacks with the same program.

Visual Boy Advance Step-by-Step

  1. Download Visual Boy Advance 1.7.2
  2. The file you have downloaded should be a .zip file. Extract its contents using your choice of software, if you don’t have any we recommend 7-Zip.
  3. There should be four files inside the archive. NEWS and COPYING files, which can be deleted, and a README-win.txt and VisualBoyAdvance.exe
  4. Move the readme and VisualBoyAdvance to a location where you won’t delete them
  5. Open up VisualBoyAdvance.exe
    Screenshot
  6. Go to the options menu > Emulator > Associate.. and select .gba, .gbc, and .gb
    Screenshot
  7. Go to the options menu > Emulator and select Real Time Clock so that it is checked and go to the options menu > Emulator > Save Type and select Flash 128KB so that it is checked
    Screenshot
  8. Go to File > Open and browse to the ROM you want to load
    Screenshot
  9. Play!
    Screenshot

GBA Emulation on an Android Device

There are two Gameboy Advance emulators for Android. The inactive popular free Gameboid app, which cannot be downloaded from the Google Play store, and the paid-only VGBA app which can be downloaded from the Google Play store.

Both have very different approaches -- to use Gameboid you’ll need to locate a gba_bios.bin file but to use VGBA you won’t. VGBA overlays the control scheme over the game, Gameboid doesn’t. Gameboid supports hardware buttons, VGBA doesn’t. You get the idea, both are very different emulators -- I run both on my phone. The most important distinction between the two is that Gameboid cannot play hacked Pokémon Ruby games. It happily plays any patched Fire Red games but will not load any Pokémon Ruby games once they’ve been patched. VGBA handles both fine.

Here we’ll cover Gameboid as VGBA is fairly self explanatory and the more expensive option.

Gameboid Step-by-Step

  1. Since Gameboid cannot be downloaded from the Google Play store you’ll have to prepare your device to accept .apk files from locations other than the android store. To do this navigate into your phone settings and find the option, most either under security or application settings, called ‘Unknown Sources - Allow installation of non-market apps’ and check the tick-box. and accept the prompt.
    Screenshot
  2. Download gameboid.apk. If you downloaded it through your computer transfer it across to your phone’s SD card
  3. Navigate to where you saved the .apk file to. If you don’t have a file manager installed on your phone I recommend OI FIle Manager
  4. Open up the .apk and install Gameboid
    Screenshot 1
    Screenshot 2
  5. When Gameboid is open you’ll be prompted to locate gba_bios.bin. Extract it and copy it transfer it to your phone’s SD card.
  6. Locate the file using Gameboid.
    Screenshot
  7. You’ll then be asked to locate your .gba file to play
    Screenshot 1
    Screenshot 2

PSP Emulation

This guide assumes you are updated to 6.60 and are running the PRO-B10 custom firmware. If you’re not there’s a great guide on how to do that on the /r/PSP subreddit.

GBA

The emulator we’ll be running is gpSP-J, a Japanese maintained emulator that has a ton of great features. The ones we’ll be interested in mainly are great compatibility with Pokémon games, real-time clock, savestates, screen capture, and mappable buttons.

gpSP-J Step-by-Step

  1. Download gpSP-J version 120512 from Filetrip
  2. The file you have downloaded should be a .zip file. Extract its contents using your choice of software, if you don’t have any we recommend 7-Zip.
  3. One of the folders you extracted should be named ‘PSP’
  4. Copy the folder to the root of your PSP’s memory card and overwrite any files if prompted.
  5. Using Google find a  “gba_bios.bin” file, extract it, and copy it to your gpSP-J folder which can be found at X:\PSP\GAME\gpSP-J 
  6. Copy across any ROMs to your ROM folder which can be found at: /PSP/GAME/gpSP-J/roms
  7. Boot up your PSP and navigate using the XMB to the ‘Game’ category and open up your memory stick.
  8. Here gpSP-J should appear as a Game Boy Advance logo with a Japanese flag in the bottom right. It’ll be named ‘gameplaySP -’ followed by some Japanese characters
  9. Press X to run the emulator
  10. You may see the this screen. Dismiss this screen by pressing any button
  11. You should then see this screen. If you don’t this means you either do not have a .gba ROM in your roms folder or have a incorrect copy of the gba_bios.bin
  12. Press X to bring you to the emulator options menu. It’ll appear rather intimidating but don’t panic, there is an english language version!
  13. Scroll down to the fifth menu item (shown above) and press O to enter the next menu. You’ll notice that gpSP-J’s controls are the opposite of the usual on the PSP where X is forwards/accept and O is back/decline. This is because the gpSP-J copies the GBA button layout which has the ‘A’ (O) button on the right and the ‘B’ (X) button on the left.
  14. The menu that appears should look like this
  15. Scroll down to the second to last option and move the control-pad to the right so that english text appears at the bottom (as shown above)
  16. Exit out of gpSP-J either by pressing X and then scrolling down to the last menu item and pressing O or by turning your PSP off and on again
  17. Open gpSP-J again through the XMB as before and now gpSP-J should be in english
    Screenshot 1
    Screenshot 2

GB/GBC

To emulate GB and GBC we’ll be running RIN, a combined Gameboy and Gameboy Colour emulator.

RIN Step-by-Step

  1. Download RIM v1.32 RM from Filetrip
  2. The file you have downloaded should be a .zip file. Extract its contents using your choice of software, if you don’t have any we recommend 7-Zip.
  3. Delete all the files and folders apart from RIN_1_32_RM
  4. Copy this folder to your PSP at: X:\PSP\GAME
  5. Copy across any ROMs to the X:\PSP\GAME\RIN_1_32_RM\roms folder
  6. Boot up your PSP and navigate using the XMB to the ‘Game’ category and open up your memory stick.

Pokémon Randomisers

Pokémon games can often become repetitive. Instead of using a patch to modify a Pokémon game you can use a program known as a randomiser to randomly choose which starter pokémon are available and the wild pokémon you will encounter.

Pokémon Emerald Randomiser Step-by-Step

  • Make a copy of your Emerald ROM
  • Download the randomiser from here.
  • The file you downloaded will be a .zip file. Extract its contents using your choice of software, if you don’t have any we recommend 7-Zip.
  • Enter the extracted folder ‘Emerald Randomizer’ and open the file “EmeraldRandomizer.jar” to open up the program.
  • Up at the top of the window, you should see a bar that says ‘File’ and Help’
  • Click File and then Open
  • A file browser window should open up asking you to select the ROM
  • Once you have selected the ROM, select the values you wish for starting Pokemon, held item, and wild Pokemon
  • Once the desired values have been selected, save the ROM
  • Open up your emulator of choice and play your randomized ROM!

Troubleshooting: My ROM isn’t working!

To solve most common issues:

  • Make sure you are patching the right ROM base
    The Hackdex lists what ROM bases most ROMs require. Patching a v1.1 or a (E) version of a ROM when it requires a v1.0 (U) ROM will cause errors. Consult
    this section for details
  • Make sure you are patching a clean ROM

If you are certain you’re patching the ROM file correctly, if you’re using Visual Boy Advance try the following steps:

  • Delete any previous .sav files. Make sure you don't have the ROM loaded at this point.
  • In Visual Boy Advance go to Options > Emulator > Save Type and select 128KB Flash
  • Load the ROM
  • Press Ctrl+R