Star on GitHubStar1.1k stars

Case study

Project Arwing: Star Fox recompiled from a matching disassembly

Disassembles Star Fox’s 65816 and SuperFX code from runtime coverage and recursive descent, reassembles it into the original ROM, then translates it statically to C on a from-scratch SNES runtime for Windows, macOS and Linux. Code never reached in recorded sessions, and RAM code that no longer matches the ROM, falls back to an interpreter; the README reports identical per-frame hashes for both paths. The generated C is a mechanical translation rather than hand-decompiled source, and results remain project-reported.

Targets
Game
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Supply your own Star Fox (USA) (Rev 2) ROM matching the SHA-1 in README; other revisions and regions are untested. Graphics, models and music are extracted from it at build time. The source build expects a headerless image, while the installer strips a 512-byte copier header. No game data is included.
  • Prerequisites: Releases target Windows x64, macOS 11+ (not notarized) and Linux x86_64/ARM64 AppImages. Source builds need Python (3.10+ on Windows) with Visual Studio 2022 Build Tools, Xcode command-line tools and SDL2, or gcc, SDL2, FreeType and DejaVu fonts; tools/build.py chains extraction, assembly, recompilation and compilation.
  • Testing evidence: README reports a byte-identical ROM rebuild, 34,472 65816 and 14,577 SuperFX instructions, and 99.4% CPU / 100% SuperFX dispatches running recompiled over 20k gameplay frames. It lists the intro, title, training, Corneria and other levels reached by random play as playable. Labels are auto-generated, unreached code remains data run by the interpreter, and audio was checked only indirectly, not against hardware.
  • Testing evidence: tools/build.py compares the reassembled ROM’s SHA-1 but only warns on a mismatch. The documented contributor check diffs --hashlog output from recompiled and --interp runs. CI assembles and recompiles without a ROM, zero-filling data.
  • License: MIT covers tools/, src/, installer/, res/ and the build scripts; LICENSE excludes asm/, a disassembly of Nintendo's Star Fox code, and anything extracted from a ROM. This is an unofficial fan project unaffiliated with Nintendo.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · carlosrmz009/arwing · Revision d8fe7aa
  2. LICENSE GitHub · carlosrmz009/arwing · Revision d8fe7aa
  3. tools/build.py GitHub · carlosrmz009/arwing · Revision d8fe7aa
  4. tools/recomp.py GitHub · carlosrmz009/arwing · Revision d8fe7aa
  5. .github/workflows/build.yml GitHub · carlosrmz009/arwing · Revision d8fe7aa

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab