FAQ

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: Most 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!
iOS - GBA4iOS
ChromeOS - GPemu

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 using your emulator. (On VBA, File->Open or drag-and-drop the ROM.) 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. Open VBA and load the rom once more (and preferably start a new game)

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.

PATCH FILE

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.


BASE ROM

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.


PATCHING SOFTWARE

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), Floating IPS (Flips)
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.


STEPS

  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. Here is where to look for the .sav file on some common emulators:
VisualBoyAdvance: Same folder as the .gba/.zip file
My Boy!: "MyBoy" folder -> "save" folder (some versions may place the .sav file in the same folder as the ROM though)
John GBA: "Johnemulators" folder -> "GBA" folder -> "save" folder

4. Rename

Make a copy of the old .sav file (i.e. gamev1.sav -> gamev1(copy).sav) in the same folder. 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
      • Also, Options -> Gameboy -> Automatic
    • 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.

Comments

Popular posts from this blog

Pokemon (Old) White

Pokemon Clay's Calamity III

Pokemon Blazing Emerald