{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/config/GALE01/build.sha1",
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/configure.py",
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/.github/CONTRIBUTING.md",
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/.github/workflows/build.yml",
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/.github/scripts/check_complete.py",
    "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/CMakeLists.txt",
    "https://decomp.dev/doldecomp/melee",
    "https://web.archive.org/web/20261020041847/https://decomp.dev/doldecomp/melee/GALE01/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4.json"
  ],
  "category": "reconstruction-cases",
  "description_en": "A matching decompilation of Super Smash Bros. Melee's US 1.02 release (GALE01) that rebuilds main.dol from C with the original Metrowerks compilers and checks it against the retail SHA-1. decomp.dev reports the code fully decompiled and linked at the reviewed commit, and the README says current work is mostly naming and cleanup. Because the build can be shifted, a separate non-matching mode lets modders add code to a DOL run with their own disc dump.",
  "description_zh": "Super Smash Bros. Melee 美版 1.02（GALE01）的一致性反编译：使用原版 Metrowerks 编译器从 C 代码重建 main.dol，并与零售版的 SHA-1 比对。decomp.dev 报告所审提交的代码已完全反编译并链接，README 称目前工作主要是命名与清理。由于构建可以移位，另有非一致性模式，供模组作者加入代码，再配合自己转储的光盘运行生成的 DOL。",
  "entry_url": "https://awesomerea.org/resources/melee-matching-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/melee-matching-decomp-case/",
  "evidence_url": "https://github.com/doldecomp/melee/blob/f0cdbb0a7046aea44c7177fd72abf33c3d2af4d4/.github/README.md",
  "group": "cases",
  "id": "melee-matching-decomp-case",
  "json_url": "https://awesomerea.org/resources/melee-matching-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/melee-matching-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/melee-matching-decomp-case/index.md",
  "name": "Super Smash Bros. Melee: a matching GameCube decompilation with a shiftable build",
  "name_zh": "Super Smash Bros. Melee：可移位构建的 GameCube 一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README describes a matching decompilation that builds the US 1.02 main.dol (game ID GALE01) with SHA-1 08e0bf20134dfcb260699671004527b2d6bb1a45, the digest config/GALE01/build.sha1 checks. decomp.dev reports 100.00% decompiled and 100.00% fully linked for this commit, and README says most effort now goes to naming and cleanup. The output is a GameCube DOL, not a PC executable; the CMake library and DWARF packages CI also builds are not documented as a playable port.",
    "Supply main.dol from your own GALE01 disc; the repository's orig/GALE01 folders hold only placeholders. The README's modding path needs the whole disc dumped to a folder, enables configure.py --non-matching with new objects marked Equivalent, and runs the rebuilt DOL in Dolphin. Such modified builds are not byte-identical to retail.",
    "Host tools are Python and ninja on Windows (native tooling recommended), macOS (Game Porting Toolkit runs the Windows compilers) or Linux (WiBo on x86, Wine elsewhere). configure.py sets up decomp-toolkit, sjiswrap and the Metrowerks GC/1.2.5 and GC/1.1p1 compilers with the GC/1.3.2 linker; objdiff diffs objects and tools/decomp.py drafts functions with m2c. CI builds link, test and debug modes in a build container that provides the original files, plus a Nix matching build.",
    "Matching rests on the linked DOL's SHA-1 and objdiff's per-unit report; CI's check_complete.py warns when a unit matches fully but is not yet marked complete. The 100% figures are decomp.dev's report for this commit.",
    "No repository-wide licence file is present at the reviewed commit and GitHub detects none; bundled tools under tools/ carry their own licences, and the game, its DOL and assets keep their rights holders' terms. CONTRIBUTING.md says using AI to match functions is acceptable and frequently practiced, while asking contributors not to let AI name struct fields or global identifiers or attempt data-section matches."
  ],
  "requirements_zh": [
    "README 将其描述为一致性反编译，构建美版 1.02 的 main.dol（游戏 ID GALE01），SHA-1 为 08e0bf20134dfcb260699671004527b2d6bb1a45，即 config/GALE01/build.sha1 校验的摘要。decomp.dev 报告此提交 100.00% 已反编译、100.00% 已完全链接，README 称目前主要精力在命名与清理。产物是 GameCube DOL，不是 PC 可执行文件；CI 另外构建的 CMake 库与 DWARF 软件包并未被记载为可游玩的移植。",
    "需从自己的 GALE01 光盘取得 main.dol；仓库中的 orig/GALE01 目录只有占位文件。README 的模组流程需把整张光盘转储到文件夹，启用 configure.py --non-matching 并将新对象标为 Equivalent，再在 Dolphin 中运行重建的 DOL。这类修改后的构建与零售版并非逐字节相同。",
    "宿主工具为 Python 与 ninja，可在 Windows（推荐原生工具）、macOS（以 Game Porting Toolkit 运行 Windows 编译器）或 Linux（x86 上用 WiBo，其他架构用 Wine）上使用。configure.py 配置 decomp-toolkit、sjiswrap 以及 Metrowerks GC/1.2.5 与 GC/1.1p1 编译器和 GC/1.3.2 链接器；objdiff 用于逐对象比较，tools/decomp.py 借助 m2c 生成函数草稿。CI 在提供原始文件的构建容器中构建 link、test 和 debug 三种模式，并另做一次基于 Nix 的一致性构建。",
    "一致性依据链接后 DOL 的 SHA-1 与 objdiff 的逐单元报告；CI 的 check_complete.py 会在某单元已完全匹配但尚未标记完成时发出警告。100% 数据为 decomp.dev 对此提交的报告。",
    "所审提交没有仓库级许可文件，GitHub 也未识别出许可；tools/ 下随附的工具各有许可，游戏本身、其 DOL 与素材仍受权利人条款约束。CONTRIBUTING.md 说明用 AI 匹配函数是可接受且常见的做法，但要求贡献者不要让 AI 命名结构体字段或全局标识符，也不要让其尝试匹配数据段。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/doldecomp/melee",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
