AI Weekly Malaysia

Back to items Summaries

Show HN: PS2 games statically recompiled to WebAssembly

ID
34740
Status
summarized
Published
12 Oct 2026, 2:46 PM
Fetched
13 Oct 2026, 2:21 PM
Provider
Hacker News
Category
dev-community
Original URL
https://github.com/snuri00/ps2-web-recomp
Source URL
https://hnrss.org/best

Summary

Score
7.0
Created
13 Oct 2026, 2:22 PM
Tags
Audience
developersvibe_coders

What happened

ps2-web-recomp is a GitHub project (437 stars, 28 forks, MIT) that runs PlayStation 2 games in the browser without an emulator: the Emotion Engine machine code is statically recompiled ahead of time into C++, compiled to WebAssembly, and linked against a reimplementation of the PS2 OS and hardware that draws via WebGPU. Gran Turismo 4 boots through menus and races with music and memory-card saves at a full 50 fps (PAL) in Chrome on a laptop's integrated GPU at twice PS2 resolution; God of War II runs the same scripts with no game-specific code but exposed two bugs the first title never triggered (one in the recompiler, one in vector unit timing) plus missing IOP pieces, and holds 60 fps in heavy combat at native resolution (48-60 at 2x). No game data is bundled - you supply your own disc image and the repo's scripts produce a local web page; it's the sibling of psp-web-recomp and drew 284 points / 147 comments on Hacker News.

Why it matters

This is a concrete, measured datapoint on two things builders can reuse: WebGPU is now fast enough for genuinely demanding browser workloads (50 fps PAL at 2x PS2 resolution on an integrated GPU, from a reimplementation drawing through WebGPU), and ahead-of-time recompilation to C++/WASM is a workable alternative to shipping a runtime interpreter or JIT. The second-title finding is the more actionable part: God of War II required no game-specific code yet still surfaced a recompiler bug and a vector-unit timing bug, so if you maintain a transpiler, codegen path, or bytecode-to-native tool, treat a single passing workload as no evidence and budget for diverse second inputs. Practically, nothing here forces a change to your stack today - there's no package to install, no API, and no game data included - so treat it as a reference implementation to read rather than a dependency.

Discussion angle

When does static recompilation beat a JIT emulator, and what does the GT4-to-God-of-War-II bug sequence tell you about how much testing one passing workload actually proves in a codegen or transpiler pipeline?

Top