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)
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. Turn VBA off.
  2. Delete the .sgm, .sa1 or .sav files for this game in your folder (if they exist).
  3. Turn VBA back on.
  4. Go to Options -> Emulator -> Save Type -> Flash 128k
  5. Options->Emulator->Real Time Clock
  6. Options->Gameboy->Automatic
  7. Turn VBA off again.
  8. Then turn it back on and load the rom once more.
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 use your old data with an update

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 all save files for all games on your computer. Sometimes, your .sav file may be online (e.g. on Dropbox). If your save files are randomly named (eg. the old save is called 54wrtjrg5.sav), check to see which .sav file was modified last (Right-click -> Properties or similar).

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). Do this only if your .sav file and .gba files were in the same folder before. If your save files are randomly named, start a new game in the updated rom and save in-game; check to see what the newer .sav file will be called, and rename accordingly.

5. Play

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

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. When I use Space bar for speed up, it starts lagging... alos it became much more ugly in VBA ,,, what should I do?