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.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  2. THIRD_PARTY_NOTICES.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  3. AGENTS.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  4. docs/DIXIE_MOD.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  5. docs/WINDOWS_RELEASE.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  6. docs/BRINGUP.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  7. docs/COVERAGE.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  8. docs/RELEASE_0.0.14.md GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  9. scripts/generate_snesrecomp.py GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  10. .gitignore GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  11. .gitmodules GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  12. LICENSE GitHub · elliotttate/DKC1Recomp · Revision 3eb9a10
  13. README.md GitHub · elliotttate/snesrecomp · Revision de94587
  14. LICENSE GitHub · elliotttate/snesrecomp · Revision de94587
  15. https://github.com/elliotttate/DKC1Recomp/releases/tag/v0.0.17

More in Games

All 231 entries in GamesGames case studies (189)