{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/INSTALL.md",
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/Makefile",
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/GBA.mk",
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/tmc.sha1",
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/Jenkinsfile",
    "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/progress.py",
    "https://zelda.deco.mp/assets/csv/progress-tmc-matching.csv"
  ],
  "category": "reconstruction-cases",
  "description_en": "Recreates a C source base for The Legend of Zelda: The Minish Cap from information in the game and static or dynamic analysis, building five Game Boy Advance ROMs: USA, EU, JP and two demos. Each version takes its assets from a user-supplied original ROM, and normal builds check the output’s SHA-1 hash. The project remains a work in progress, and some parts of the ROM may not yet be shiftable.",
  "description_zh": "依据游戏内信息和静态或动态分析，为《塞尔达传说：缩小帽》重建 C 源码库，可构建美版、欧版、日版及两个演示版共五个 Game Boy Advance ROM。每个版本的素材都来自使用者自备的原始 ROM，常规构建会核对产物的 SHA-1 哈希。项目仍在进行中，ROM 的部分内容可能尚不能移动。",
  "entry_url": "https://awesomerea.org/resources/zelda-tmc-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/zelda-tmc-decomp-case/",
  "evidence_url": "https://github.com/zeldaret/tmc/blob/6fb6dfb4a7efbe24d0fd1dda5097af6131faacde/README.md",
  "group": "cases",
  "id": "zelda-tmc-decomp-case",
  "json_url": "https://awesomerea.org/resources/zelda-tmc-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/zelda-tmc-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/zelda-tmc-decomp-case/index.md",
  "name": "The Minish Cap: a GBA decompilation targeting five ROMs",
  "name_zh": "《缩小帽》：面向五个 ROM 的 GBA 反编译重建",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README calls this a WIP decompilation whose codebase can still change drastically, and warns that some parts of the ROM may not yet be shiftable, so modifications can be difficult. Its targets are tmc.gba (USA, the default), tmc_eu.gba, tmc_jp.gba, tmc_demo_usa.gba and tmc_demo_jp.gba. The output is a GBA ROM, not a native PC port.",
    "The repository includes no game assets. Each version to be built needs its own original base ROM matching the SHA-1 listed in INSTALL.md; the build derives its assets from that ROM.",
    "Builds run on Linux, on macOS with the Xcode command line tools (GNU make and sed are recommended), or on Windows through WSL, WSL2 or Cygwin. They need build-essential, Git, Python 3 with pip and pycparser, CMake, libpng, an arm-none-eabi-gcc toolchain (standalone or devkitPro gba-dev) and pret’s separate agbcc compiler installed into the tree.",
    "COMPARE runs the SHA-1 check for normal builds and is off for CUSTOM builds, which INSTALL.md requires after modifying the game. The Jenkins pipeline builds all five versions with ROMs held on its build agent and publishes progress from the USA map file. For the reviewed commit, the matching log counts all 647,908 USA code bytes as source by the script’s own rules, which also count asm/src, asm/lib and libc objects, but only 238,628 of 13,933,140 data bytes.",
    "The reviewed tree has no license file and GitHub detects no license, so reuse terms for the source are unstated; original ROMs, derived assets and agbcc keep their own terms."
  ],
  "requirements_zh": [
    "README 称其为仍在进行中的反编译项目，代码库仍可能大幅变动，并提醒 ROM 的部分内容可能尚不能移动，因此修改可能较困难。构建目标为 tmc.gba（美版，默认）、tmc_eu.gba、tmc_jp.gba、tmc_demo_usa.gba 和 tmc_demo_jp.gba。产物是 GBA ROM，而不是原生 PC 移植。",
    "仓库不含任何游戏素材。每个要构建的版本都需要各自的原始基础 ROM，其 SHA-1 须与 INSTALL.md 所列一致；构建过程从该 ROM 中取得素材。",
    "可在 Linux、装有 Xcode 命令行工具的 macOS（建议使用 GNU make 和 sed），或通过 WSL、WSL2、Cygwin 在 Windows 上构建。需要 build-essential、Git、带 pip 和 pycparser 的 Python 3、CMake、libpng、arm-none-eabi-gcc 工具链（独立安装或 devkitPro 的 gba-dev），以及安装到仓库中的 pret 独立 agbcc 编译器。",
    "COMPARE 对常规构建执行 SHA-1 检查，对 CUSTOM 构建默认关闭；按 INSTALL.md，修改游戏后必须使用 CUSTOM 构建。Jenkins 流水线使用构建节点上保存的 ROM 构建全部五个版本，并依据美版 map 文件发布进度。就所审阅提交而言，一致性进度日志按脚本自身规则（也把 asm/src、asm/lib 和 libc 目标计入）将美版全部 647,908 个代码字节计为源码，而 13,933,140 个数据字节中仅计入 238,628 个。",
    "所审阅代码树没有许可证文件，GitHub 也未识别出许可证，因此源码的再使用条款未予说明；原始 ROM、由其得到的素材以及 agbcc 保留各自条款。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zeldaret/tmc",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
