A performance-focused Game Boy Advance emulator for PlayStation Portable.
Important
GBA Rush PSP is an independent fork of andymcca/TempGBA4PSP-mod. It exists because of the emulator work maintained there and throughout the gpSP, gpSP Kai, TempGBA, and TempGBA4PSP-mod projects. Please credit and support the original authors and contributors.
GBA Rush PSP continues the real-hardware PSP work from TempGBA4PSP-mod under a distinct name and identity. It retains the upstream emulator core, interface, renderers, compatibility work, and single-game launcher while adding a safer cheat runtime, timed CodeBreaker hooks, configurable hold-to-fast-forward, and repeatable release checks.
This repository is independently maintained. It is not the original TempGBA4PSP-mod project, and its authors do not imply endorsement by upstream maintainers. See Project lineage and acknowledgements for the full development path and links.
You must provide your own legally obtained GBA BIOS and ROM dumps. They are not part of this repository or its release packages.
- Plaintext and encrypted CodeBreaker codes, including timed master hooks.
- Existing GameShark, Pro Action Replay, and direct-write formats.
- Manual, transactional
.chtloading with clear filename, count, entry names, andON/OFFstate. - Up to 640 cheat entries with active-entry and sorted-hook indexes that avoid scanning inactive lists in hot paths.
- Configurable hold-to-fast-forward with unthrottled emulation, paced display updates, and immediate audio recovery.
- Adaptive sharp 16:9 output with a two-pass PSP GE path and automatic performance fallback.
- Two-PSP GBA link cable emulation over local ad-hoc Wi-Fi.
- Suspend and resume recovery that keeps audio, ROM access, saves, and worker shutdown under foreground control.
- Task-based menus with contextual setting help and built-in performance diagnostics.
- Versioned, recoverable configuration writes that preserve existing user settings.
- Old and new video renderers, multiple scale modes, themes, box art, recent ROMs, configurable dynarec policies, and multilingual menus.
- Japanese, English, Simplified Chinese, Traditional Chinese, and Italian UI.
- Optional source-based single-game launcher builder.
Copy the release folder to PSP/GAME/GBARushPSP/, add your own
gba_bios.bin, and start GBA Rush PSP from the PSP Game menu.
PSP/GAME/GBARushPSP/
├── EBOOT.PBP
├── exception.prx
└── gba_bios.bin user supplied
See Installation and upgrade notes for configuration, fast-forward, legacy-folder, and update guidance.
Open Cheats options, choose Load cheat file, and select a .cht file.
Lists are selected manually so the user always knows which region and revision
they are applying.
For a timed CodeBreaker list, enable its master entry and then enable the ordinary entries you want. Multiple ordinary entries can run together. If masters with different hook addresses conflict, the most recently enabled master takes ownership and incompatible master entries are disabled.
CodeBreaker codes remain dependent on the exact game region and revision. Device-specific extensions that cannot be interpreted safely are not accepted. The complete syntax and compatibility notes are in Cheat files.
Fast-forward is active only while its configured physical button is held. The default mapping is Triangle. Reassign Fast forward from the button configuration menu to use any supported digital or analog direction.
The emulator bypasses normal throttling while held, targets roughly 30 visible frames per second, and discards queued audio instead of allowing a backlog to stall emulation. Releasing the button restores the selected frameskip and audio behavior immediately.
16:9 Auto fills the PSP display and starts with the two-pass Sharp path.
After sustained timing misses it switches to single-pass Crisp; it returns to
Sharp only after a longer stable interval. Manual sharp, nearest, bilinear,
and aspect-correct modes remain available.
Existing installations keep their saved scale mode. Select 16:9 Auto once
to enable it. The optional FPS overlay shows the active SHARP or CRISP
level.
GBA Rush PSP can connect two PSP systems as Player 1 and Player 2 over local ad-hoc Wi-Fi. It implements GBA Normal 8-bit, Normal 32-bit, and Multiplayer 16-bit cable transfers with synchronized timing and serial interrupts. Both systems should run the same emulator build.
The protocol and emulator paths pass deterministic host, sanitizer, malformed traffic, timeout, stress, diagnostic-ROM build, and PSP build checks. Broad testing across two physical PSP systems and the full commercial game catalog is not yet complete. See Link cable for setup, supported modes, current restrictions, diagnostics, and recovery steps.
The PSP build requires a current PSPDev toolchain
with psp-config available in PATH.
make check
make psp-buildDocker users can follow BUILD-DOCKER.md. Build outputs are
created under source/ and ignored by Git.
make check builds the portable production modules with the host C compiler.
It runs deterministic regression vectors for CodeBreaker handling, GBA serial
timing, framed link traffic, two-core session synchronization, malformed input,
timeouts, and thousands of transfers with variable delay. It also verifies
translation order and that private runtime data or generated executables are
not tracked.
After a successful PSP build:
make package VERSION=1.3.0This creates GBA-Rush-PSP-1.3.0.zip and its SHA-256 checksum in dist/, then
extracts and verifies the archive against the approved release manifest. The
package contains only EBOOT.PBP, exception.prx, installation notes,
changelog, and license. It excludes BIOS files, ROMs, saves, local settings,
and cheat databases.
The launcher and graphical builder remain available as source. Generate the launcher template before running the builder:
make launcher-stub
python3 -m pip install -r source/single-game_launcher/tool/requirements.txt
python3 source/single-game_launcher/tool/gui.pyExternal audio tools are not committed to the repository. See the builder documentation for its requirements and third-party notices.
| Path | Purpose |
|---|---|
source/ |
Emulator source, PSP Makefile, assets, and inherited SDK imports |
source/src/codebreaker.c |
CodeBreaker decoder and operation interpreter |
tests/ |
Host regression tests |
docs/CHEATS.md |
Cheat format and master-code behavior |
docs/LINK_CABLE.md |
Two-PSP link setup, compatibility, and diagnostics |
docs/LINEAGE.md |
Upstream history, links, and acknowledgements |
docs/BRAND.md |
Naming, visual identity, and attribution rules |
source/single-game_launcher/ |
Optional PSP launcher and desktop builder |
scripts/ |
Source checks and repeatable release packaging |
GBA Rush PSP stands on work by:
- Exophase and gpSP contributors;
- notaz and the wider gpSP community;
- Takka and the gpSP Kai contributors;
- Nebuleon, Normmatt, BassAceGold, and the TempGBA community;
- Phoe-nix and earlier TempGBA4PSP-mod contributors;
- andymcca, JxPv2, and everyone who contributed to the direct upstream repository;
- libretro/gpsp contributors whose fixes are credited in the inherited source and history.
Thank you to every developer and tester who kept this emulator lineage useful
on real PSP hardware. Detailed historical and asset attribution remains in
source/copyright, NOTICE.md, and
docs/LINEAGE.md.
The emulator is distributed under GPL-2.0-or-later. See LICENSE. The optional desktop launcher builder is GPL-3.0-or-later and carries its own license and third-party notices.
This project is not affiliated with or endorsed by Nintendo, Sony, CodeBreaker, or the maintainers of the upstream projects.
