Pokemon Rom Hacks FAQ

This FAQ covers:

How to play GBA Pokemon Rom Hacks

Note: GBA refers to Game Boy Advance

1. Getting a Rom

First you must obtain a GBA Pokemon Rom Hack. You probably already have one, but if you don't, find one here. A GBA Rom Hack will have a .gba extension. If you have a .rar, .zip, .7z, etc. file, extract it to get the .gba one. (Note: Some emulators can play .zip files directly.) If you have a patch file (.ips or .ups), there's a tutorial on how to patch below.
Note: This tutorial is mainly for .gba files. If you have a DS game (.nds), you will need a DS emulator. If you have a GBC game (.gbc), you may need a different emulator.

2. Emulators

Next, in order to play the Rom, you will need a GBA emulator. An emulator allows you to play GBA games as you would on the console, but on your device. Here are some recommendations-
Windows - Visual Boy Advance (VBA)
Android - My Boy!

If you have an emulator you use that isn't here, please mention it in the comments section to help everyone out.
Note: The recommended emulator for most hacks is Visual Boy Advance 1.8.0 Beta 3. Get it here.

3. Start the rom

Next, open the .gba (or possibly .zip) file on your emulator. The game should load up now. A Pokemon Rom should show a similar screen-
pokemon gba start screen
In case you are getting a white screen, skip to step 5.

4. Buttons

If you are on a touch screen device, your buttons should show up on the screen (A, B, Start, Select, L, R and the direction pad).
If you are using VBA, the controls are usually Z=A, X=B, Enter=Start, Backspace=Select, A=L, S=R and the arrows for direction. View/Change this by going to Options->Joypad->Configure->1

5. Troubleshooting

At this point, if you get any of these errors-
White screen
The 1m sub-circuit board is not installed
Internal Battery has run dry
Or some other error that I might have forgotten, apply these settings for VBA (try to find similar settings to steps 4 and 5 if you're using a different emulator)-
  1. Close VBA.
  2. Delete the .sgm, .sa1 or .sav files for this game in your folder (if they exist).
  3. Open VBA.
  4. Go to Options -> Emulator -> Save Type -> Flash 128k
  5. Options -> Emulator -> Real Time Clock
  6. Options -> Gameboy -> Automatic
  7. Close VBA again.
  8. Then open it again and load the rom once more.
Note: If using MyBoy, check Settings -> Advanced Settings -> Cartridge Save Type -> Flash 128k
Note: Even if you do not see any error, it would be beneficial to apply these settings if possible.

6. Play

That's it. You can now play the game as you would have on a Game Boy Advance console.
You can either use the in-game save mechanic to save your game (Start->Save while in the game) or use save states (some emulators like My Boy! Free do not support this).
In VBA, save states are used by clicking Shift+F1 to save and F1 to load. (Replace F1 by F2, F3, ..., F10 for more save states)

How to patch a Rom Hack

To patch a rom, you will need 3 things- a patch file, a base rom and a patching software.


Since you're here, this is probably what you have. A patch file, when patched onto the base rom, converts it into the hacked rom. The most common types are .ips and .ups. There are also less common types such as .aps and .xdelta. One of the more popular sites to obtain patch files is pokecommunity.com.


A base rom is the game which has been modified by the hacker to make the rom hack. It is usually an official Pokemon game like FireRed, Emerald, etc. It should have a .gba extension (extract if .zip or .rar). You can find out what the correct base rom is by referring the page you downloaded the patch file from.

Base roms come in different versions, that is Fire Red v1.0 is different from Fire Red v1.1; Emerald (U) is different from Emerald (UE). In order for the final game to work properly, it is important you use the same rom which the creator hacked- again, it's usually mentioned wherever you got the patch file from. If you are not sure which version to use, it may require some trial and error.

The most popular base roms are as follows-
FireRed- Squirrels (also called 1636 and BPRE), Independent (1695)
Emerald- Trashman (1986), UE
Ruby- v1.0 (0907), v1.0 Mugs (0907), Independent (2006)

You can usually obtain base roms through a quick google search.


This tool patches the patch file onto the base rom. Based on the type of patch file, you may require different software.

Some recommendations (for Windows)-
ips - Lunar IPS (LIPS)
ups - NUPS, Tsukuyomi
aps - A-Ptch
xdelta - Xdelta

If you're using Android, there's an app called Unipatcher which works on both ips and ups.


  1. Open the patching software you are using
  2. Select Apply Patch (or similar)
  3. Select your base rom when prompted with 'File to be patched' (or similar)
  4. Select your patch file when prompted
  5. Click 'Patch' if necessary
  6. If everything goes smoothly, it should say something like 'patching successful'. If there is an error, you might be using the incorrect base rom (try a different version)
  7. Most patching softwares will replace the base rom, so what used to be the base rom, is now the patched rom hack. Rename it if you want.
  8. That's it. You can now open it with an emulator and play.

How to use your old data with an update

Note: I have no experience with iOS, so I don't know if this method will work there. Also, if your save files are stored in an online service such as Dropbox, the process may become more difficult.

I've made a short video showing the process here- Youtube.

Short version:
The .sav file is where all your saved data is stored. When you play a rom, the emulator searches a specific folder for a specific named .sav file, and if it exists, loads it. Most of the time, this .sav file is in the same folder as the rom, and has the same name as the rom as well. So, for example, if you opened xyz.gba, the emulator would search the folder containing xyz.gba, and look for the file xyz.sav and load it (if it doesn't exist, you will only see "New Game" and no "Continue" in your game). So what you want to do is make the emulator load the older .sav file when you open the updated rom. You can achieve this by renaming the .sav file and moving it as necessary.

GBA games aren't that advanced, so there is no straight forward way to update a rom. First, you will need to obtain the updated rom by patching it from scratch or by getting it from a site like this. In some rare cases, like Prism, you'll need to patch your save file as well.
I will be calling the older version "gamev1.gba" and the newer, updated rom "gamev2.gba". Also, here, rom refers to the .gba file. If you're playing out of a .zip file, the steps are the exact same. Just think "zip" wherever "gba" is mentioned.

1. Make sure old saves are supported

Sometimes, when an update is released, older saves may no longer work correctly. In this case, you must simply start a new game. If you use the old save anyway, it may lead to an increased number of bugs and glitches.

2. Save inside a Pokemon Center

In the older version, save in-game, not using save states i.e. you should open the menu inside the game and save (Saving… please don't turn off the power).

3. Locate your .sav file

Normally, it has the same name, and is in the same folder as the gba file (i.e. gamev1.sav will be in the same folder as gamev1.gba). There may be other files such as .sa1, .sgm, etc., but don't worry about them. If your .sav is not in the same folder, there may be a separate folder containing save files for all games on your computer.

4. Rename

Make a copy of the old .sav file (i.e. gamev1.sav -> gamev1(copy).sav). Rename this copy to match the updated rom's name exactly (i.e. gamev1(copy).sav -> gamev2.sav). If the updated gba rom is in a different folder, move the renamed .sav file to that folder (i.e. move gamev2.sav to the folder gamev2.gba is in). If your .sav file and .gba files weren't in the same folder in step 3, place it in the same folder the older .sav was in.

5. Play

That's it. If you start the updated gba file, you should be able to load your old data in-game.

Troubleshooting: White Screen/1m sub-circuit board is not installed/Saving Problems

Here, rom refers to the game you are playing. Usually a .gba or .zip file.

  1. Close your emulator
  2. Delete any .sav, .sgm, .sa1, .sa2, ..., files for the game (usually in the same folder as the rom you're playing)
  3. Open your emulator
  4. Change the save type to Flash 128k
    • VBA: Options -> Emulator -> Save Type -> Flash 128k
    • MyBoy: Settings -> Advanced Settings -> Cartridge Save Type -> Flash 128k
    • Others: Search on google for the settings for your particular emulator
  5. Open the rom; it should work fine now

Note: Some emulators do not allow you to change the save type. In that case, you'll just have to search on google for something like "gba4ios pokemon white screen" (replace gba4ios with your emulator).

Troubleshooting: Internal Battery has run dry

  1. Close your emulator
  2. Open your emulator
  3. Enable the Real Time Clock (RTC)
    • VBA: Options -> Emulator -> Real Time Clock (should be ticked)
    • Others: Search on google for the settings for your particular emulator
  4. Open the game; it should work fine now

Note: If your emulator doesn't have the RTC feature, I don't think there's anything you can do. Also, some emulators have trouble synching with your system's time. Search on google for something like "gba4ios rtc" (replace gba4ios with your emulator).

If you have any further questions or suggestions, feel free to ask in the comments section.


  1. Replies
    1. Sorry for the late reply. You must have foind out by now but- you simply close the window as you would normally. Saves can be loaded when you open it again.

  2. I can't extract the files. It says decompression error

    1. That might be due to a corrupted download; try redownloading. If it still doesn't work, there may a problem with the file. Also, which file are you talking about?

  3. How do I download and apply updates to games without deleting my original file?

    1. You have to load the old save file into the newer version. This can be done by renaming the old .sav file to match the name of the newer file. For example, rename gamev1.sav to gamev2.sav and place it in the corresponding folder if required.

    2. I've added a (sort-of) in depth tutorial in the post.

    3. Man, I'm a retard, I need a youtube video. I'm gonna try this out.

  4. Tried moving the old saved file over to the new update. I renamed it after the new save file. It's asking me if I want to replace the save file since it's the same name. It's also gives me an 'Apply to all items' checkbox. Should I check the box and rename or just rename?

    1. So you already have a save file for the newer version? You can simply move it outside that folder, so it doesn't get replaced. Or you could just replace it if you don't ​mind losing the data. Not sure what apply to all items means, since you're only moving one file.

    2. Knuckle san plz...i m looking for Pokémon crush English version rom plz..add English version and new wonderful graphics game add plz .....i love good graphics game I m new and don't know u that much but plz...try to help me I m searching from 2011 in your site everyday plz...help

    3. Crush Beta v1.7 has been released in English, and I have added it to the list. But the final version, Beta v2, has not been translated to English and only exists in Spanish.

  5. Lost, nothing seems to work. Just gonna play the updated version saved file, seems fine enough.

    1. It's really a simple process; I'm just not very good at explaining it.
      The gist of it is that the emulator will only load saved data if it has the same name as the game being played. That is, if you open xyz.gba, the emulator will search for xyz.sav, and if it exists, load it.
      Here's another way of doing it-
      Rename the updated gba/zip file to match the older gba/zip file's name, and replace it. Now once you open the updated version (which is renamed to the older version), you should have your save.

  6. Is there a way to play this on a Chromebook at school, need help.

    1. I'm not familiar with GBA emulators for Chromebooks, but maybe look for "VBA-m". If you can manage to run Android apps, you can use MyBoy.

  7. How do change the VBA settings?!

    1. If you're on Windows, when you open vba, you should see tabs like "File" and "Options" at the top. From there just follow the steps mentioned above.

  8. Can you add Pikachu edition is a gbc hack and a gb or gbc list please

    1. Added Pikachu Edition to the list. I will make a GB/GBC list soon when there are enough hacks.

  9. If you have a Chromebook go look in the chrome-store they have some good emulators

  10. How can i play roms on ios that are packed in zip? Gba4ios doesnt support .zip files.

    1. I have no experience with iOS, but if your emulator doesn't support zip files, you'll have to extract (unzip) it to get the .gba file. There must be an app or something for that.

  11. So I just need to rename the old sav file to the name of the updated ROM file.If I update my game,what will happen to the older ROM file?

    1. Rather than directly renaming, make a copy and then rename that. That way you can go back to the old version if something happens.

  12. I do not want to lose my game story so i follow your steps and when i have ti rename the copy of the old it says that i should replace the one with that name... Which is the new version... Should i do that?

    1. If you have saved in the new version, that will get replaced. Just to be safe move it to a different folder and you can bring it back later if you need.