Evidence at a glance
Loading source evidence…
What was done
snes-recomp is a static recompiler that translates SNES ROMs into C code, which is then compiled with a custom runtime to produce native executables. It supports features like widescreen and game-specific profiles, while maintaining strict separation from copyrighted game assets.
The snes-recomp project is a static recompiler written in Rust that translates SNES ROMs (CPU 65816) into C code. This generated C code is compiled alongside a custom runtime—which includes implementations for the bus, DMA/HDMA, PPU, SPC700, DSP, input, and save states—to produce a native executable. The project functions as an engine, requiring separate game-specific profiles to operate. The author reports that the engine successfully generates native ports, with The Legend of Zelda: A Link to the Past serving as the primary implementation example. The project documentation notes several technical limitations: the DSP interpolation uses a bell-shaped kernel rather than the exact hardware Gaussian table, the PPU does not emulate interlacing, and cycle-accurate behaviors are not reproduced as the clock is proportional by block. Commit history indicates that Claude Sonnet 5.5 was a co-author on numerous commits related to menu implementation, widescreen functionality, and documentation updates. The project maintains a strict legal stance, requiring users to provide their own legally obtained ROMs and explicitly prohibiting the distribution of generated C code or game assets.
Reproduce it
Users must provide a valid SNES ROM and a corresponding game profile. The engine can be built using Rust's cargo. For the interactive frontend, SDL2 development files are required. The snes-port tool handles the build process, utilizing local compilers like gcc, clang, or MSVC, or optionally downloading TinyCC.