{
  "added_at": "2026-10-28",
  "additional_evidence_urls": [
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/configure.py",
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/config/MarioClub_us/config.yml",
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/config/MarioClub_us/build.sha1",
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/config/Release_eu/config.yml",
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/.github/workflows/build.yml",
    "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/LICENSE",
    "https://decomp.dev/doldecomp/mkdd"
  ],
  "category": "reconstruction-cases",
  "description_en": "A work-in-progress 1:1 decompilation of Mario Kart: Double Dash!! that rebuilds the GameCube main.dol of the US debug build (MarioClub_us) from C and C++ with the original Metrowerks compilers, checking it against a stored SHA-1. The build splits the binary from a user-supplied disc image, and objdiff compares objects during development. decomp.dev reported 47.09% of code matched at the reviewed commit; a European retail target is configured but marked as not working yet.",
  "description_zh": "《马力欧卡丁车：双重冲刺!!》的进行中 1:1 反编译：用原版 Metrowerks 编译器从 C 与 C++ 源码重建美版调试构建（MarioClub_us）的 GameCube main.dol，并与仓库保存的 SHA-1 比对。构建从使用者自备的光盘镜像中拆分二进制，开发时用 objdiff 比对目标文件。decomp.dev 报告所审提交有 47.09% 的代码已匹配；欧版零售目标虽已配置，但标注为尚不可用。",
  "entry_url": "https://awesomerea.org/resources/mario-kart-double-dash-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/mario-kart-double-dash-decomp-case/",
  "evidence_url": "https://github.com/doldecomp/mkdd/blob/1d2918ca577817ba431baddb78dda24831e0e0bb/README.md",
  "group": "cases",
  "id": "mario-kart-double-dash-decomp-case",
  "json_url": "https://awesomerea.org/resources/mario-kart-double-dash-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/mario-kart-double-dash-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/mario-kart-double-dash-decomp-case/index.md",
  "name": "Mario Kart: Double Dash!!: a matching GameCube decompilation of the debug build",
  "name_zh": "《马力欧卡丁车：双重冲刺!!》：调试版 GameCube 一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "README calls this a WIP 1:1 decompilation and says only the debug version is supported: the default MarioClub_us (USA) target, whose main.dol SHA-1 config/MarioClub_us/build.sha1 records. configure.py also lists Release_eu, but its config.yml is marked as not working yet, and CI builds only MarioClub_us. The output is a GameCube DOL, not a PC executable or port.",
    "Copy your own disc image of that build to orig/MarioClub_us; ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ and TGC images are accepted. README says the repository contains no game assets or assembly: decomp-toolkit splits the user’s DOL using the committed symbol and split tables, and during the build extracts a font, system.arc and build-time data from that DOL locally.",
    "Builds need Python and ninja on Windows (native tooling recommended), macOS (with wine-crossover) or Linux (an automatically downloaded wibo on x86, Wine elsewhere). configure.py pins decomp-toolkit v1.6.2, objdiff v3.3.1, binutils 2.42-1, sjiswrap v1.2.1, wibo 0.7.0 and the 20250812 compiler bundle, using Metrowerks GC/2.6 for game, JSystem, MSL and TRK code and GC/1.2.5n for the Dolphin SDK libraries.",
    "Objects marked Matching (518 in configure.py; 277 remain NonMatching and 13 Equivalent) are compiled from source, the rest are taken from the split DOL, and the build checks main.dol against build.sha1. CI builds MarioClub_us in a container that supplies the disc files and compilers, uploads a progress report and validates symbol order for changed C++ files. decomp.dev’s report for the pinned commit lists 1,517,644 of 3,222,748 code bytes (47.09%) and 8,695 of 15,357 functions matched, with 518 of 807 units complete.",
    "The repository carries CC0-1.0; Nintendo’s game, disc contents and the downloaded compilers keep their own rights. README credits JSystem and SDK code reused from other decompilations, including Metroid Prime, Pikmin 2, Super Mario Galaxy, Super Mario Sunshine and Twilight Princess."
  ],
  "requirements_zh": [
    "README 称其为进行中的 1:1 反编译，目前只支持调试版，即默认的 MarioClub_us（美版）目标，其 main.dol 的 SHA-1 记录在 config/MarioClub_us/build.sha1 中。configure.py 还列出 Release_eu，但其 config.yml 标注尚不可用，CI 也只构建 MarioClub_us。产物是 GameCube DOL，不是 PC 可执行文件或移植。",
    "需将自己的该版本光盘镜像复制到 orig/MarioClub_us，可接受 ISO（GCM）、RVZ、WIA、WBFS、CISO、NFS、GCZ 和 TGC 格式。README 称仓库不含任何游戏素材或汇编：decomp-toolkit 依据仓库提交的符号表和拆分表拆分使用者的 DOL，并在构建时于本地从该 DOL 中提取字体、system.arc 和构建时间数据。",
    "构建需要 Python 与 ninja，可在 Windows（推荐原生工具）、macOS（需 wine-crossover）或 Linux（x86 上自动下载 wibo，其他架构用 Wine）上进行。configure.py 固定 decomp-toolkit v1.6.2、objdiff v3.3.1、binutils 2.42-1、sjiswrap v1.2.1、wibo 0.7.0 及 20250812 编译器包；游戏、JSystem、MSL 和 TRK 代码使用 Metrowerks GC/2.6，Dolphin SDK 库使用 GC/1.2.5n。",
    "标为 Matching 的目标文件（configure.py 中有 518 个，另有 277 个仍为 NonMatching、13 个为 Equivalent）由源码编译，其余取自拆分出的 DOL，构建会按 build.sha1 校验 main.dol。CI 在提供光盘文件和编译器的容器中构建 MarioClub_us，上传进度报告，并对改动的 C++ 文件校验符号顺序。decomp.dev 针对该固定提交的报告显示，3,222,748 个代码字节中有 1,517,644 个（47.09%）、15,357 个函数中有 8,695 个已匹配，807 个单元中有 518 个已完成。",
    "仓库采用 CC0-1.0；任天堂的游戏、光盘内容和下载的编译器各自保留权利。README 致谢从其他反编译项目复用的 JSystem 和 SDK 代码，包括 Metroid Prime、Pikmin 2、Super Mario Galaxy、Super Mario Sunshine 和 Twilight Princess。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/doldecomp/mkdd",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
