The gap between "emulation" and "recompilation" is the gap between an interpreter and a compiler, and ps2-web-recomp lands firmly on the compiler side. Rather than simulating the PlayStation 2's Emotion Engine instruction-by-instruction at runtime, the project reads the game's executable ahead of time, traces its control flow, and emits equivalent C++ that gets compiled to WebAssembly. The PS2's operating system — threads, semaphores, DMA controllers, the I/O processor — is reimplemented in C++ underneath. The result is not an emulator running a ROM. It is the game, translated into a different language, running natively in your browser. The first title through the pipeline is Gran Turismo 4, chosen specifically because it is one of the hardest targets on the platform. It hammers both vector units, demands exact floating-point behavior for replay determinism, and pulls rendering tricks that read framebuffers back as texture palettes. The PAL release runs at a locked 50 frames per second in Chrome on a laptop's integrated GPU at twice the PS2's native resolution. God of War II followed without any game-specific code changes, hitting 60 fps in heavy combat at native resolution and 48-60 at 2× on the same hardware. The technical depth here is extraordinary. The Graphics Synthesizer's 4 MB of video memory is kept on the GPU in its native swizzled layouts, with WebGPU compute shaders handling triangle binning and rasterization using the GS's own rules for texturing, alpha blending, and depth tests. Vector unit 1 microprograms — the workhorses of PS2 3D rendering — are compiled ahead of time into SIMD C++, with pipeline delays for MAC, status, and clip flags faithfully modeled because games schedule their microcode around them. Any microprogram encountered for the first time at runtime gets JIT-compiled into a new WebAssembly module in milliseconds. The optimization journey from 3 fps to full speed is a masterclass in browser performance engineering. The initial GPU renderer submitted 650 compute dispatches per frame; hoisting texture uploads ahead of non-dependent triangles collapsed that to 80. Gran Turismo 4 re-uploads 3 MB of textures every frame during races, so a 16 MB GPU-side cache cut per-frame data transfer by 60 percent. Shader profiling revealed divergent thread execution in per-triangle setup, and fixing the load order brought 3× resolution from 23 fps to 48-50. Even the browser's event loop mattered — replacing nested setTimeout (clamped to 4 ms) with MessageChannel, and moving emulation to a worker thread, stabilized frame pacing from a 40-50 fps wobble to a steady 50. God of War II's integration is the real proof of generality. It went from ISO to playable web page through the same port.sh script, and every fix it needed was a genuine bug or gap that Gran Turismo 4 had never triggered: an unimplemented IOP hardware timer that left the sound driver silent, a recompiler edge case where a branch at the boundary of a 16 KiB translation unit ran the delay slot twice, and a clip-flag timing error in the vector unit model where GOW2's microcode read flags three instructions after the CLIP instruction while GT4 always waited longer. The toolchain is designed for portability. You supply your own disc image, run port.sh, and it reads the boot executable from SYSTEM.CNF, translates the machine code, runs the game headless several times to discover functions reached through pointers and record vector unit microprograms, then builds both a web page and a native runner. God of War II goes from ISO to playable page in three and a half minutes on an 8-core laptop. The disc itself is served over HTTP Range requests, so only the executable downloads up front — the rest streams on demand. This is a sibling project to psp-web-recomp, extending the same static recompilation methodology from the PSP to a substantially more complex target. No game data is distributed. The repository contains the recompiler, the PS2 kernel reimplementation, the GS renderer, and the build scripts. What it does not contain is any Sony intellectual property — the legal and ethical line is drawn clearly, and the engineering stands on its own.