
What was done
andersfischernielsen translates the full Emotion Engine code, VU microcode and IOP drivers of SSX 3 into structured Rust and draws with a native wgpu renderer. Players bring their own NTSC-U disc image.
andersfischernielsen ssx3-decomp statically recompiles SSX 3 for PlayStation 2 into Rust: every instruction of the Emotion Engine code, the vector unit microcode and the IOP drivers is translated ahead of time, and a native renderer draws each frame from the game own draw call lists instead of emulating the console GPU. Its commit history carries Co-Authored-By: Claude trailers, so AI agents helped write it. The repository contains no game data, generated code or dumps; it all comes from your own disc image.
How it was done
The recompiler lowers about 808,000 instructions in 13,300 functions to structured Rust, sharding the output over 16 crates with host threads and a baton that lets one guest thread run at a time. Exactness is the rule: headless runs replay a reference race and must produce identical screenshots and RAM after every change, hand-written rewrites are compared against the generated code, and the wgpu output is tested against the software reference raster in about ten seconds as part of the test suite.
Results
The game is playable: it boots, plays intro movies and menus, and races, music and sound work with saves going to a file backed memory card. Modern rendering widens the 3D view to any aspect including ultrawide while the HUD keeps its 4:3 proportions, the field of view is adjustable, high refresh displays get frame interpolation, and picture options include up to eight times internal resolution and AI-upscaled texture packs. 1,368 functions are already hand-written, well-typed Rust checked against the generated ones, with the exactness harness keeping both in step.