{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/carlosrmz009/arwing/blob/d8fe7aaf67e0f4ba77c9814852d2ffaccd7d63c7/LICENSE",
    "https://github.com/carlosrmz009/arwing/blob/d8fe7aaf67e0f4ba77c9814852d2ffaccd7d63c7/tools/build.py",
    "https://github.com/carlosrmz009/arwing/blob/d8fe7aaf67e0f4ba77c9814852d2ffaccd7d63c7/tools/recomp.py",
    "https://github.com/carlosrmz009/arwing/blob/d8fe7aaf67e0f4ba77c9814852d2ffaccd7d63c7/.github/workflows/build.yml"
  ],
  "category": "reconstruction-cases",
  "description_en": "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.",
  "description_zh": "依据运行覆盖率和递归下降反汇编 Star Fox 的 65816 与 SuperFX 代码，重新汇编出与原 ROM 一致的文件，再静态翻译为 C，运行于从零编写的 SNES 运行时，支持 Windows、macOS 和 Linux。录制会话中未执行到的代码，以及与 ROM 不再一致的 RAM 代码，回退到解释器执行；README 报告两条路径的逐帧哈希一致。生成的 C 是机械翻译而非手工反编译的源码，结果仍为项目报告。",
  "entry_url": "https://awesomerea.org/resources/project-arwing-star-fox-recomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/project-arwing-star-fox-recomp-case/",
  "evidence_url": "https://github.com/carlosrmz009/arwing/blob/d8fe7aaf67e0f4ba77c9814852d2ffaccd7d63c7/README.md",
  "group": "cases",
  "id": "project-arwing-star-fox-recomp-case",
  "json_url": "https://awesomerea.org/resources/project-arwing-star-fox-recomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/project-arwing-star-fox-recomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/project-arwing-star-fox-recomp-case/index.md",
  "name": "Project Arwing: Star Fox recompiled from a matching disassembly",
  "name_zh": "Project Arwing：由一致性反汇编重编译的 Star Fox",
  "reconstruction_method": "static-recompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "testing",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "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.",
    "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.",
    "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.",
    "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.",
    "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."
  ],
  "requirements_zh": [
    "README 报告重新汇编的 ROM 逐字节一致，含 34,472 条 65816 指令和 14,577 条 SuperFX 指令；在 2 万帧游戏过程中，99.4% 的 CPU 分派和 100% 的 SuperFX 分派以重编译代码执行。README 列出可游玩的部分为开场、标题、训练、Corneria 及随机游玩到达的其他关卡。标签均为自动生成，未执行到的代码仍作为数据由解释器运行，音频仅经过间接检查，未与实机对照。",
    "需自备 Star Fox (USA) (Rev 2) ROM，并与 README 给出的 SHA-1 一致；其他修订版和地区版本未经测试。构建时从该 ROM 提取图形、模型与音乐。源码构建需要无文件头的映像，安装程序则会去除 512 字节的拷贝机文件头。仓库不含任何游戏数据。",
    "发布版面向 Windows x64、macOS 11+（未经公证）及 Linux x86_64／ARM64 AppImage。源码构建需要 Python（Windows 上为 3.10+），并分别搭配 Visual Studio 2022 Build Tools、Xcode 命令行工具与 SDL2，或 gcc、SDL2、FreeType 与 DejaVu 字体；tools/build.py 依次执行提取、汇编、重编译和编译。",
    "tools/build.py 会比较重新汇编 ROM 的 SHA-1，但不一致时只发出警告。文档中的贡献者检查会比对重编译运行与 --interp 运行的 --hashlog 输出。CI 在没有 ROM 的情况下以零填充数据完成汇编和重编译。",
    "MIT 覆盖 tools/、src/、installer/、res/ 及构建脚本；LICENSE 排除 asm/（Nintendo Star Fox 代码的反汇编）及任何从 ROM 提取的内容。这是与 Nintendo 无关的非官方爱好者项目。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/carlosrmz009/arwing",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
