The snuri00/psp-web-recomp repository shows how PSP games can run directly in a web browser without a traditional emulator. Instead of interpreting MIPS machine code at runtime, the project performs static recompilation: it translates the game's executable ahead of time into C++, compiles that C++ to WebAssembly, and links it against a reimplementation of the PSP's operating system and graphics chip that renders via WebGL2. This approach enables titles such as God of War: Chains of Olympus to launch from boot, play through menus, cutscenes and combat, and be controlled with on‑screen touch inputs.
This image depicts the static recompilation approach described in the article, where game code is compiled to WebAssembly and linked with a reimplemented PSP OS and graphics layer.

This image shows the game's title menu, confirming that the project can launch the game and reach its initial screens as mentioned in the article.
Performance is achieved through a series of optimizations documented in the README. The project notes that God of War originally drew about eight frames for every one displayed because it swapped framebuffers without waiting for the vertical blank; by holding the swap thread twice within one blank until the next, the work per displayed frame is cut by a factor of eight. Firefox‑specific fixes give each draw its own small index buffer to avoid re‑validation overhead, and stencil‑buffer operations are optimized by tracking which rectangles and constant values actually changed, reducing extra pixel processing from sixty million to about seven million per frame at 4× resolution. The graphics chip and its WebGL context run on a worker thread with an OffscreenCanvas, so frame time is determined by the busier thread rather than the sum of both. As a result, Chains of Olympus runs at 60 fps in Chrome and Firefox on a laptop, and Ghost of Sparta runs at 55–60 fps at three times the native resolution.

This screenshot shows the game running as described in the article, illustrating the successful execution of the recompiled PSP title in a browser.
The repository emphasizes that the technique has only been demonstrated with two Ready at Dawn titles built on the same engine, and that other games may halt at an unimplemented system call or an unsupported graphics feature, which would appear as '[hle] unimplemented …' in the log. Users must supply their own disc images of games they own, as no game data is included due to copyright restrictions, and the generated WebAssembly binaries belong to the game's rights holders. While some commentators argue that the high‑level emulation of PSP OS functions still constitutes an emulator with extra steps, the project positions itself as a preservation path that makes older PSP titles accessible without requiring the original hardware.