God of War: Chains of Olympus Runs in a Browser Through Recompilation, Not Emulation
Software / explainer
God of War: Chains of Olympus Runs in a Browser Through Recompilation, Not Emulation
The psp-web-recomp repository translates PSP executables to WebAssembly and reports 60 fps, but only two games from one studio work.

A GitHub project called psp-web-recomp runs God of War: Chains of Olympus in a browser tab at a reported 60 frames per second, without an emulator. The repository, by the user snuri00, had 99 stars and 8 commits on October 8, 2026, which makes the 156 points it earned on Hacker News the more useful measure of interest.
The README says the project ships no game data: "You bring a disc image of a game you own." It also reports a second title working, God of War: Ghost of Sparta, at 55 to 60 frames per second at three times native resolution.
How it differs from an emulator
An emulator such as PPSSPP, the PSP emulator Henrik Rydgård created and released under GPL 2.0 in November 2012, interprets or just-in-time compiles the console's machine code while the game runs. Its repository lists Android, Windows, Mac, Linux and iOS and does not mention a web build.
psp-web-recomp translates the game ahead of time. It uses a tool named PSPRecomp to turn the decrypted game executable into C++, in translation units of 16 KiB of guest code each, then compiles that to WebAssembly with Emscripten. What remains at runtime is the console's operating system, reimplemented at a high level, and its graphics chip.
| Piece | How the README says it is handled |
|---|---|
| Game code | Recompiled to C++, then WebAssembly via Emscripten |
| OS calls | High-level emulation: threads, semaphores, file system over HTTP Range requests |
| Graphics | The GE decoded on the CPU, drawn through WebGL2 at one to four times native 480×272 |
| Sound | 32-voice ADPCM synthesizer reimplemented; ATRAC3+ music decoded with FFmpeg |
What the README claims and what it admits
The performance numbers are the author's, measured on a laptop in Chrome and Firefox, and nobody independent has reported them. The README says the first playable build ran at 6 frames per second. The Ghost of Sparta build reportedly spends 6 to 8 milliseconds per frame.
The limits are listed just as plainly. Both working titles are Ready at Dawn games on the same engine, and the README says that limits how much they say about other games. Cut scene movies are skipped. Any other game will probably stop at an unimplemented system call, logged as [hle] unimplemented, or at a graphics feature the project lacks. Each game needs about 2 GB of disk space, and the build has been tested only on Linux.
For anyone planning to try it, the toolchain list is git, CMake, Ninja, a C++20 compiler and Python 3. The server must send cross-origin isolation headers. The README warns that while a tunnel is running, anyone with the address can load the game.
The legal line the README draws
The project's position is that the generated C++ and the built WebAssembly are translations of the user's own executable, and so "should stay on the user's machine and not be published." That is a rule the README asks users to follow, not one the software enforces: a hosted copy that anyone can load would put a derivative of Sony's game code on a public address.
The README also states that God of War is a Sony trademark and that the project is not affiliated with or endorsed by Sony or any publisher. Nothing in the repository settles whether translating an executable for personal use is lawful where you live. That question belongs to a lawyer, not to a README.
The repository's own code is MIT licensed. One bundled component, at3_standalone, is LGPL 2.1 or later, and the credits name PSPRecomp (MIT), PPSSPP and JPCSP for hardware documentation, PPSSPP's ATRAC3 decoder code, and Emscripten. Much of the project's usefulness rests on the earlier emulator work that documented the hardware.
What to watch
The sticking point for anyone hoping for a general PSP-in-the-browser tool is the third game. The README expects other titles to hit unimplemented calls, so the count of supported games, now two from one studio and one engine, is the number that decides whether this is a general method or a well-polished demo. Related reading on browser software: Chrome 155's JPEG XL decoder and a Rust Photoshop reimplementation.
Sources
More in Software
- 01REA Hits 15.7k Stars as an MCP Toolkit That Lets AI Agents Reverse-Engineer SoftwareThe MIT-licensed project wraps Ghidra, Hopper and IDA in 134 agent tools, and its own README says process capture is not a sandbox.
- 02Margaret Hamilton, Who Led Apollo's Flight Software Team, Dies at 90MIT says her team's priority-driven design let the Apollo 11 landing proceed through a 1202 alarm; the code she signed off in 1969 is on GitHub.
- 03docker agent Runs YAML-Defined AI Agents From Any OCI Registry. Its README Says Nothing on SandboxingDocker Engineering's Apache-2.0 plugin ships pre-installed in Docker Desktop 4.63, but the repository shows no tagged release and a telemetry notice.
- 04PhotoCraft, a Rust Photoshop Clone With 14,600 Stars, Round-Trips 307 of 309 PSD Test FilesThe ArtCraft Team's MIT or Apache-2.0 editor calls itself early alpha and says it is not yet a replacement for daily professional work.