PS2 Web Recomp Games List: What Runs Today
The project brings games up one at a time through its scripted pipeline. Two titles are verified playable in the browser so far — chosen because they’re among the most demanding games on the system, which makes them the hardest possible early proving ground.
Verified playable games
Gran Turismo 4
Playable — full speed- Frame rate
- 50 fps (PAL release)
- Resolution
- 2× native
- Test hardware
- Laptop integrated GPU (Chrome)
The first title brought up this way, and a deliberate stress test: it leans on both vector units, on exact floating-point behavior for replays and license tests, and on graphics tricks that read rendered images back as palettes.
It plays from boot through the opening movie, the menus and races, with music and sound effects — and it saves to a memory card kept in the browser.
God of War II
Playable — 60 fps combat- Frame rate
- 60 fps in heavy combat (native res)
- Resolution
- Native; 48–60 at 2×
- Porting effort
- Same script, no game-specific code
The second title went through the same pipeline with only generic changes — each problem it hit was a bug or gap the first game had simply never triggered: a recompiler bug in branch handling at unit boundaries, vector-unit timing precision, and missing parts of the I/O processor.
It now plays from the menus through its cutscenes into combat, holding 60 fps in heavy combat at the PS2’s resolution. At twice the resolution it runs at 48–60, limited by the laptop’s integrated GPU.
| Game | Status | Frame rate | Notes |
|---|---|---|---|
| Gran Turismo 4 | Playable | 50 fps (PAL) | Boot → movie → menus → races, audio + browser saves |
| God of War II | Playable | 60 fps (native) | Menus, cutscenes, combat; generic port, no game-specific code |
| Your game | Try it | — | Most likely stops at an unimplemented syscall or graphics feature — see troubleshooting |
Why so few games?
Static recompilation has to be done per game: the recompiler follows one executable’s control flow. Two factors decide how smoothly a new title comes up:
- System coverage. A game that calls an OS function or IOP library nobody has implemented yet stops there. Each new game tends to exercise new corners — God of War II needed a boot path, a module loaded from memory, and the scratchpad DMA’s destination chain mode that GT4 never touched.
- Graphics features. The WebGPU renderer implements the GS with its own rules for texturing, palettes, alpha blending and depth tests. A game relying on a feature the renderer doesn’t handle yet shows it immediately.
The good news: every gap a new game finds gets implemented once, for everyone. The pipeline itself — explore, discover entry points, translate, rebuild — is already automated, and a known game recompiles in minutes.
How to test your own game
You don’t wait for a compatibility list update: the pipeline runs on any disc image you own. The full walkthrough is in the step-by-step tutorial, and the quick version is:
scripts/port.sh mygame "My Game.iso"
python3 scripts/serve.py build/web-mygame games/mygame/disc.iso Screenshots from the discovery runs land in games/mygame/shots, so you can see exactly how far your game gets.
Download & setup
Get the toolchain, understand what you’re downloading (and what you’re not), and check the requirements table.
Download page →