{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/configure.py",
    "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/tools/project.py",
    "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/config/GZ2E01/build.sha1",
    "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/LICENSE.md",
    "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/.github/workflows/build.yml",
    "https://github.com/zeldaret/tp/actions/runs/28052837187",
    "https://decomp.dev/zeldaret/tp",
    "https://web.archive.org/web/20261020041317/https://decomp.dev/zeldaret/tp/GZ2E01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json",
    "https://web.archive.org/web/20261020041405/https://decomp.dev/zeldaret/tp/GZ2P01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json",
    "https://web.archive.org/web/20261020041412/https://decomp.dev/zeldaret/tp/GZ2J01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json",
    "https://web.archive.org/web/20261020041419/https://decomp.dev/zeldaret/tp/ShieldD/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json",
    "https://web.archive.org/web/20261020042930/https://decomp.dev/zeldaret/tp/RZDE01_00/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reconstructs Twilight Princess source that compiles back to binaries identical to the originals, building GameCube, Wii and Nvidia Shield releases from one codebase through conditional compilation. README reports the GameCube code as completely matching but not every translation unit linked yet, with Debug and Wii alignment ongoing; the repository ships no assets or assembly and will not produce a port.",
  "description_zh": "重建《塞尔达传说 黄昏公主》的源码，使其能重新编译出与原版一致的二进制文件；GameCube、Wii 与 Nvidia Shield 各版本通过条件编译共用同一套代码。README 报告 GameCube 版代码已完全一致，但尚未链接全部翻译单元，调试版与 Wii 版的对齐仍在进行；仓库不含素材或汇编，也不会制作移植。",
  "entry_url": "https://awesomerea.org/resources/twilight-princess-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/twilight-princess-decomp-case/",
  "evidence_url": "https://github.com/zeldaret/tp/blob/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0/README.md",
  "group": "cases",
  "id": "twilight-princess-decomp-case",
  "json_url": "https://awesomerea.org/resources/twilight-princess-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/twilight-princess-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/twilight-princess-decomp-case/index.md",
  "name": "Twilight Princess: a decompilation with fully matching GameCube code",
  "name_zh": "《黄昏公主》：GameCube 版代码完全一致的反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README describes a work-in-progress decompilation with ten listed targets: three GameCube releases (GZ2E01, GZ2P01, GZ2J01), five Wii builds including a kiosk demo, and two Nvidia Shield China builds. Output is the original platform’s executable and REL modules; README states the project will not produce a PC or other port, and Dusklight is a separate project built on this code.",
    "Building needs the user’s own disc image of the chosen version in a supported format (ISO/GCM, RVZ, WIA, WBFS, CISO, NFS, GCZ or TGC), which can be deleted after the first build. The repository contains no game assets or assembly; decomp-toolkit splits the original locally.",
    "Builds run natively on Windows with Python and ninja, or on Linux/macOS with ninja and the automatically downloaded wibo wrapper. configure.py pins decomp-toolkit v1.8.0, objdiff v3.6.1, binutils 2.42-1 and a 20251118 compiler bundle, selecting Metrowerks compiler versions per target and library; objdiff provides per-object diffing.",
    "The default build links source-built objects for units marked complete and original extracted objects for the rest, then checks the output against each version’s build.sha1 (758 entries for GZ2E01). decomp.dev’s reports for the pinned commit list 100% of code matched for all three GameCube versions, with 2,583 of 2,608 units complete, against 54.47% for ShieldD and 47.06% for Wii RZDE01_00. CI runs in a private container holding game files.",
    "LICENSE.md is CC0-1.0; it does not cover Nintendo’s game, disc content or the downloaded compilers."
  ],
  "requirements_zh": [
    "README 将其描述为进行中的反编译，列出十个目标版本：三个 GameCube 发行版（GZ2E01、GZ2P01、GZ2J01）、包括体验版在内的五个 Wii 版本，以及两个 Nvidia Shield 中国版。产物是原平台的可执行文件和 REL 模块；README 说明项目不会制作 PC 或其他平台的移植，Dusklight 是基于这些代码的独立项目。",
    "构建需要使用者自备所选版本的光盘镜像，格式可为 ISO／GCM、RVZ、WIA、WBFS、CISO、NFS、GCZ 或 TGC，首次构建后即可删除。仓库不含游戏素材或汇编；decomp-toolkit 在本地拆分原文件。",
    "在 Windows 上可直接用 Python 与 ninja 构建；Linux／macOS 需 ninja，并会自动下载 wibo 包装器。configure.py 固定 decomp-toolkit v1.8.0、objdiff v3.6.1、binutils 2.42-1 及 20251118 编译器包，并按目标版本和库选用相应的 Metrowerks 编译器版本；objdiff 用于逐个对象比对。",
    "默认构建对标为完成的单元链接由源码编译的对象，其余单元使用从原文件提取的对象，再按各版本的 build.sha1 校验输出（GZ2E01 有 758 条记录）。decomp.dev 针对该固定提交的报告显示，三个 GameCube 版本的代码均已 100% 匹配，2,608 个单元中有 2,583 个已完成；ShieldD 为 54.47%，Wii 版 RZDE01_00 为 47.06%。CI 在存有游戏文件的私有容器中运行。",
    "LICENSE.md 采用 CC0-1.0，不涵盖任天堂的游戏、光盘内容或下载的编译器。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zeldaret/tp",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
