Skip to content

Game compatibility (2026-06-19)

A snapshot of how each tested game runs.

Compatibility ratings

From best to worst:

RatingMeaning
PerfectRuns with no noticeable problems.
PlayablePlayable start to finish, only minor issues.
IngameReaches gameplay but with significant glitches or low speed.
Menu/IntroReaches menus or intro videos, not gameplay.
Doesn't BootCrashes at boot or shows nothing.

Games

GameGame IDCompatibilityNotes
Metal Slug XXULUS10495PlayableRenders correctly.
Puzzle BobbleULJM05011PlayableFull speed with sound.
Burnout LegendsULES00125IngameGraphical glitches.
CladunNPEH00084IngameLow FPS in some scenes. No sound.
Duke3DhomebrewIngameBoots and works without issues, but low FPS.
Gran TurismoUCES01245IngameGraphical glitches and low FPS.
Puyo PuyoULJM05058IngameMenus, logo, and text render.
Ridge RacerULUS10001Ingame3D models render in-race.
Toy Story 3ULES01406IngameVisual glitches and a save-game issue.
Dragon Ball Z Shin BudokaiULES00309Menu/Intro
God of War: Ghost of SpartaUCUS98737Menu/IntroBlank screen after the intro; never reaches the menu.
Wipeout PureUCUS98612Menu/IntroIntro videos play (WebCodecs H.264) and menus render.
Grand Theft Auto: Vice City StoriesULUS10160Doesn't Boot
LEGO Batman: The VideogameULES01151Doesn't Boot
LittleBigPlanetUCES01264Doesn't BootFails with "pthread API call from non-pthread thread"; our threads are not registered as SCE pthreads.
Space InvadersULES01078Doesn't BootBlack 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 sceMpegAtracDecode is decoded and played.

Planned work

  1. sceMpeg intro-video handling for the games that still block on it.
  2. Speed up God of War: the MIPS interpreter and GE vertex processing are the slow parts now.
  3. Revive the GE Web Worker to move GE work off the main thread, ideally over a SharedArrayBuffer command ring.
  4. Utility dialog status numbering for msgdialog, netconf, and osk.