Case study
DKC1Recomp: static recompilation of Donkey Kong Country
Statically recompiles the North American v1.0 SNES release of Donkey Kong Country into native Windows, macOS and iOS applications with a pinned fork of snesrecomp, which translates 65816 code to C and links it against a modelled SNES hardware runtime. Function boundaries, entry flag states and jump-table targets are ingested from a byte-identical community disassembly instead of discovered heuristically, and the game code is generated locally from the user’s verified ROM. Optional widescreen, CRT filters, MSU-1 music and a Dixie Kong Country variant are host-side additions to what the README calls a playable bring-up.
Requirements & limits
- Reviewed at the main commit tagged v0.0.14 (2026-09-15); releases v0.0.15 to v0.0.17 (through 2026-09-19) are tagged on commits that are not on main. README reports a playable bring-up with fully statically generated game code, a headless validation host and Windows, macOS and iOS hosts. Widescreen, on by default in the desktop host, fails closed to stock output or black margins where a scene is unproven; the generated widescreen coverage report lists 252 of 256 level entrances as never observed, and the Dixie variant is not validated over the full game.
- Supply your own headerless Donkey Kong Country (USA) v1.0 ROM of 4 MiB, checked against the SHA-256 in the README; other images are rejected unless a single audited data-only edit is pinned by its hash. The optional Baby Kong mod also verifies the user’s own North American DKC3 ROM in memory. README states that no ROM bytes, extracted assets or generated game code are committed; the Dixie variant embeds the hack author’s public IPS patch, which the project records as a deliberate exception applied only to the verified clean ROM.
- A source build initializes the snesrecomp submodule and runs scripts/generate_snesrecomp.py against the ROM, writing C into the git-ignored generated/ directory; recomp/*.cfg holds only names, addresses and structural metadata from the GPL-3 Yoshifanatic1 disassembly. Windows builds need Windows 10/11 x64, Visual Studio 2022 C++ tools, Python 3, Git, CMake, Ninja and an OpenGL 3.3 GPU; the arm64 macOS app targets macOS 26 with CMake, Ninja and SDL2, and the iOS sideload IPA needs iOS/iPadOS 16 or newer and re-signing for the recipient’s device.
- Verification is deterministic tooling rather than a matching build: a headless host with input playback, replayable flight-recorder bundles, save-state continuity checks, route recipes and regression contracts, plus C and Python model tests, many of which need the private ROM. The reviewed tree has no CI workflow; the bring-up log reports nine private boot replays and inspection of the live window for the v0.0.10 Windows host. This collection built and ran nothing.
- Project host and tooling code is MIT; the pinned snesrecomp fork is under the PolyForm Noncommercial License 1.0.0, the cfg metadata keeps its GPL-3 provenance, the Windows package adds SDL 2.30.9 (zlib) and miniz 3.0.2 (MIT), and Nintendo and Rare keep their game rights. AGENTS.md sets operating rules for Codex and other coding agents working in the repository; no REA use is established, and no runtime reproduction is claimed.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- THIRD_PARTY_NOTICES.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- AGENTS.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- docs/DIXIE_MOD.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- docs/WINDOWS_RELEASE.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- docs/BRINGUP.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- docs/COVERAGE.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- docs/RELEASE_0.0.14.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- scripts/generate_snesrecomp.py GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- .gitignore GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- .gitmodules GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- LICENSE GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
- README.md GitHub · elliotttate/snesrecomp · Revision de94587
- LICENSE GitHub · elliotttate/snesrecomp · Revision de94587
- https://github.com/elliotttate/DKC1Recomp/releases/tag/v0.0.17
More in Games
- San Andreas Unity: a GTA San Andreas engine reimplementation in Unity · Case study
- MinecraftLCE: an early-stage Minecraft: Nintendo Switch Edition decompilation · Case study
- Final Fantasy VII: a matching PlayStation decompilation · Case study
- Mega Man X Recompiled: a snesrecomp static recompilation · Case study
- OpenSC4: an early open-source reimplementation of SimCity 4 · Case study
- R.E.L.I.V.E.: an Oddworld Abe’s Oddysee and Abe’s Exoddus engine reimplementation · Case study