From GameBrew

Last Updated2007/04/07

gpSP, also known as gameplaySP, is an open-source Gameboy Advance emulator compiled by Exophase for the PlayStation Portable.


  • Save states.
  • Frameskip.
  • Custom key mappings.
  • Support for game-specific configuration settings.
  • Sound toggling.
  • CPU clock speed adjustment.
  • Screenshots.


Note: The emulator requires an authentic GBA BIOS image file to run. The file is 16kb and should be called gba_bios.bin (md5sum: a860e8c0b6d573d191e4ec7db1b1e4f6) and present in the same location as the EBOOT.PBP file.

To install, place the folder gpsp into /PSP/GAME/.

Copy the GBA BIOS (gba_bios.bin) that you have obtained to /PSP/GAME/gpsp/gba_bios.bin.

User guide

Supported formats

The emulator supports GBA and BIN format. To save space on the memory card, compress images GBA in ZIP-format archives.

Images should be expanded in the folder /gpsp/GBA/ROM/.

You can change the control key settings in the configuration menu. It also has a savestats feature, frameskip adjustment in attempt to run game in faster speed and mild cheat support.

Compatiblility List


The purpose behind frameskip is to cause the emulator to not render every frame of graphics to make the emulation closer to fullspeed.

Many games will run fullspeed without skipping any frames, however, some (particularly more graphically demanding ones) will require this.

It is recommended that you keep frameskip on auto, but manual is maintained as an option if you want it.

Cheats (CHT)

gpSP supports some functionality of Gameshark/Pro Action Replay cheat codes.

To use these, you must first make a file with the same name as the ROM you want the cheat code to apply to, but with the extension .cht.

Put this file in the same directory as the ROM. To make it use a normal text editor like notepad or wordpad if you're on Windows.

To write a code, write the type of model it is, gameshark_v1, gameshark_v3, PAR_v1, or PAR_v3.

gameshark_v1/PAR_v1 and gameshark_v3/PAR_v3 respectively are interchangeable, but v1 and v3 are not. So if you don't know which version it is, try both to see if it'll work.

After that, put a space and put the name you'd like to give the cheat. On the next several lines, put each cheat code pair, which should look like this.


Then put a blank line when you're done with that code, and start a new code immediately after it. Here's an example of what a cheat file should look like.

gameshark_v3 InfHlthBat
6f4feadb 0581b00e
79af5dc6 5ce0d2b1
dbbd5995 44b801c9
65f8924d 2fbcd3c4

gameshark_v3 StopTimer
2b399ca4 ec81f071

After you have written the .cht file, you have to enable the cheats individually in the game menu. Go to the Cheats -> Misc menu, and you will see the cheats; turn them on here. You may turn them on and off as you please, but note that some cheats may still hold after you turn them off, due to the nature of the system. Restart to completely get rid of them.


Q. How do I know I have the right BIOS?

Developer has been made aware that there are 2 BIOSes that has been shared around and you can check it with a hex editor: the correct BIOS begins with 0x18 and the buggy BIOS begins with 0x14.

Q. Game is running very slow.

Emulating GBA takes a number of resources and getting it done well on PSP is no simple task by any means. Some games are just going to overwhelm the emulator completely.

In some cases (a lot of early generation games fall under this category) you can improve the speed by adding an idle_loop_eliminate_target line for it in game_config.txt.

Q. Does it load ZIP roms?

Yes, with the exception of large ROM has to be unzipped (32MB).

The reason for this is that parts of the ROM are constantly loaded to memory as needed, and for this to be as fast as possible the ROM has to be present on the memory stick in raw format.


Rom selection:

Up/Down - Navigate current selection window

Left/Right - Switch between file window and directory window

Circle/Start - Select current entry

Square - Go one directory up

In game:

D-Pad - GBA D-Pad

Circle - GBA A button

Cross - GBA B button

Square/Start - GBA Start button

Select - GBA Select button

L - GBA L-Trigger

R - GBA R-Trigger

Triangle - Adjust frameksip

Frameskip adjustment:

Triangle+Up/Down - Increase/decrease frameskip

Down - Change from 0 to auto

Up - Change from auto to 0


Up/Down - Navigate current menu.

Left/Right - Change value in current menu selection (if a value is present)

Circle/Start - Select current entry (see help for entry to see what this means)

Square - Exit current menu



  • Fixed stereo output being reversed.
  • Fixed a bug causing misaligned errors on 8bit writes to the gbc audio channel 3 wave data (fixes various Super Robot Wars games).
  • Fixed DMA with garbage in their upper 4 bits (fixes a crash in Zelda: Minish Cap).
  • Added double buffering to the rendering, removes line artifacts. Big thanks to Brunni for the idea.
  • Fixed a bug preventing some SRAM based games from saving (fixes MMBN4-6).
  • Fixed a bug causing part of EWRAM to potentially get corrupted if code segments loaded in EWRAM cross 32KB boundaries (fixes Phantasy Star 2).
  • Fixed a bug causing games using movs pc in user mode (very bad behavior) to crash. Fixes Colin McRae Rally 2.0.
  • Improved timing a bit more. Fixes GTA Advance.
  • Fixed a sprite clipping bug (fixes crash in third boss of Zelda: Minish cap).
  • Increased translation buffer size significantly (fixes Donkey Kong: King of Swing).
  • Fixed a dynarec bug causing add pc, reg to not work in Thumb code (fixes crash in DBZ:LoZ, seems to fix crashes in battle in Golden Sun, probably fixes other games).
  • Made sprites using tiles < 512 not display in modes 3-5 (fixes a couple minor graphical bugs).
  • Removed abort on instruction 0x00000000 hack, was breaking a certain bugged up game (Scurge).
  • Fixed bug in flags generating variable logical shifts (fixes SD Gundam Force).
  • Fixed unaligned 16bit reads (fixes DBZ:LoZ in game).
  • Redid contiguous block flag modification checking AGAIN and hopefully got it right this time (fixes Mario vs. Donkey Kong).
  • Redid ldm/stm instructions, fixing some cases (along with the timing improvements fixes Mario & Luigi).
  • Fixed 14bit EEPROM addressing (hopefully fixes saving in a lot of games).
  • Completely redid memory handlers, accurately emulates open and BIOS reads now. Fixes Zelda: Minish Cap (roll bug, last dungeon), Rayman, MMBN 1 (last dungeon), probably others.
  • Fixed a minor graphical glitch on the edges of the screen (thanks Brunni and hlide for the help).
  • Fixed crash on loading savestates from files of games not currently loaded, but be sure you have the exact file you loaded it from or gpSP will exit.
  • New memory handlers should provide performance boost for games that access VRAM significantly (ie 3D games).
  • Added dead flag elimination checking for logical shifts, probably doesn't make a noticeable difference but should have been there anyway.
  • Added rapidfire to the button mappings.
  • Added auto frameskip. Removed fractional frameskip (don't think it's very useful with auto anyway). Select auto in the graphics/sound menu to activate it; frameskip value will act as the maximum (auto is by default on). Thanks again to Brunni for some help with this. Frameskip options are game specific.
  • Added vsync to the rendering. Only occurs when frames aren't skipped. Seems to reduce tearing at least some of the time.
  • Added non-filtered video option.
  • Cheat support (Gameshark/Pro Action Replay v1-v3 only), still in early stages, doesn't support everything; codes may cause the game to crash, haven't determined yet if the codes are bad or the implementation is. See cheat section for more information.
  • Added ability to change audio buffer size. Does not take affect until you restart the game.
  • Added analog config options.
  • Added ability to set analog sensitivity and turn off analog.
  • Added ability to change the clock speed. This is a game specific option. Try lower speeds w/auto frameskip to save battery life.
  • Fixed savestate speed on crappy Sony sticks.


Exophase: Main developer.

siberianSTAR: Zip support.

psp298: Analog nub code.

External links