Game compatibility (2026-06-19)
A snapshot of how each tested game runs.
Compatibility ratings
From best to worst:
| Rating | Meaning |
|---|---|
| Perfect | Runs with no noticeable problems. |
| Playable | Playable start to finish, only minor issues. |
| Ingame | Reaches gameplay but with significant glitches or low speed. |
| Reaches menus or intro videos, not gameplay. | |
| Doesn't Boot | Crashes at boot or shows nothing. |
Games
| Game | Game ID | Compatibility | Notes |
|---|---|---|---|
| Metal Slug XX | ULUS10495 | Playable | Renders correctly. |
| Puzzle Bobble | ULJM05011 | Playable | Full speed with sound. |
| Burnout Legends | ULES00125 | Ingame | Graphical glitches. |
| Cladun | NPEH00084 | Ingame | Low FPS in some scenes. No sound. |
| Duke3D | homebrew | Ingame | Boots and works without issues, but low FPS. |
| Gran Turismo | UCES01245 | Ingame | Graphical glitches and low FPS. |
| Puyo Puyo | ULJM05058 | Ingame | Menus, logo, and text render. |
| Ridge Racer | ULUS10001 | Ingame | 3D models render in-race. |
| Toy Story 3 | ULES01406 | Ingame | Visual glitches and a save-game issue. |
| Dragon Ball Z Shin Budokai | ULES00309 | ||
| God of War: Ghost of Sparta | UCUS98737 | Blank screen after the intro; never reaches the menu. | |
| Wipeout Pure | UCUS98612 | Intro videos play (WebCodecs H.264) and menus render. | |
| Grand Theft Auto: Vice City Stories | ULUS10160 | Doesn't Boot | |
| LEGO Batman: The Videogame | ULES01151 | Doesn't Boot | |
| LittleBigPlanet | UCES01264 | Doesn't Boot | Fails with "pthread API call from non-pthread thread"; our threads are not registered as SCE pthreads. |
| Space Invaders | ULES01078 | Doesn't Boot | Black screen. Event-flag bits are never set, then a CPU spin loop. Likely an intro-video wait. |
Known issues
Rendering
- Deferred GPU-accuracy gaps, each with a reason in the code: 16-bit color replication, WebGL doubled-alpha blend, FRAMEBUFWIDTH high bits, morph weights, WebGL CLUT hashing.
Performance
- God of War is slow. WebGL draws are already batched by render state, so the cost that's left is the MIPS interpreter and GE vertex processing.
Audio
- SAS (
sceSas) synthesizes only VAG and PCM voices (plus pitch, L/R volume, ADSR). Not done: ATRAC3 voices, noise/triangle/pulse waveform voices, and the reverb/effect-send path (dry mixing only). - No MPEG or SAS reverb. MPEG cutscene audio via
sceMpegAtracDecodeis decoded and played.
Planned work
- sceMpeg intro-video handling for the games that still block on it.
- Speed up God of War: the MIPS interpreter and GE vertex processing are the slow parts now.
- Revive the GE Web Worker to move GE work off the main thread, ideally over a SharedArrayBuffer command ring.
- Utility dialog status numbering for msgdialog, netconf, and osk.