{
  "added_at": "2026-10-28",
  "additional_evidence_urls": [
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/configure.py",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/config/GPVE01/config.yml",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/config/GPVE01/build.sha1",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/config/GPVJ01/config.yml",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/tools/project.py",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/.github/workflows/build.yml",
    "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/LICENSE.MD",
    "https://decomp.dev/projectPiki/pikmin2"
  ],
  "category": "reconstruction-cases",
  "description_en": "A fan decompilation of Pikmin 2 that rebuilds main.dol for five GameCube releases (USA retail, two USA demos, PAL and Japan) with the original Metrowerks compilers, checking each against a stored SHA-1. The build reads main.dol from the user’s own copy of each release. decomp.dev reported all code matched and fully linked for every version at the reviewed commit, and a non-matching mode builds the US DOL entirely from C++ for modding.",
  "description_zh": "由爱好者进行的《皮克敏2》反编译项目：用原版 Metrowerks 编译器为五个 GameCube 版本（美版零售版、两个美版体验版、PAL 版和日版）重建 main.dol，并逐一与仓库保存的 SHA-1 比对。构建读取使用者自有各版本中的 main.dol。decomp.dev 报告所审提交中各版本的代码均已全部匹配并完全链接；另有非一致性模式，可完全由 C++ 源码构建美版 DOL 以供模组制作。",
  "entry_url": "https://awesomerea.org/resources/pikmin-2-matching-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/pikmin-2-matching-decomp-case/",
  "evidence_url": "https://github.com/projectPiki/pikmin2/blob/ffbd853726427f2e90cd201aaca90dc82b34f990/README.MD",
  "group": "cases",
  "id": "pikmin-2-matching-decomp-case",
  "json_url": "https://awesomerea.org/resources/pikmin-2-matching-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/pikmin-2-matching-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/pikmin-2-matching-decomp-case/index.md",
  "name": "Pikmin 2: a fully matched GameCube decompilation across five releases",
  "name_zh": "《皮克敏2》：覆盖五个版本、已完全匹配的 GameCube 反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "README still calls this a work-in-progress decompilation and lists five supported versions: GPVE01 (USA retail, the default), GPVE01_D17 and GPVE01_D18 (USA demos 17 and 18), GPVP01 (PAL) and GPVJ01 (Japan). Each has its own configuration and SHA-1 file, and CI builds all five. Outputs are GameCube DOLs, not a PC executable or port.",
    "Each version needs main.dol from the user’s own copy of that release at orig/<version>/sys/main.dol, and decomp-toolkit checks it against the hash in that version’s config.yml before splitting. The repository commits game-derived symbol and split tables for every version; config comments say the GPVE01 symbols were generated from a pikmin2UP.MAP linker map and the Japanese and PAL tables were recovered from those DOLs using the US symbols. No disc images or extracted game files are included.",
    "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.7.5, objdiff v3.4.1, binutils 2.42-1, sjiswrap v1.2.2, wibo 1.0.0-beta.5 and the 20250812 compiler bundle, using Metrowerks GC/2.6 for game, JSystem and runtime code and GC/1.2.5n for the Dolphin SDK libraries.",
    "configure.py marks 1,154 objects Matching for every supported version and one more for Japan only; none is NonMatching. The default ninja target checks the linked DOL against config/<version>/build.sha1 before reporting progress, and CI builds all five versions in a container that supplies the original files and compilers. decomp.dev’s reports for the pinned commit list 100.00% of code matched and fully linked for each version (24,957 functions and 1,153 units for GPVE01).",
    "With --non-matching, README says the final hash check is disabled and the US DOL builds completely from C++ source that is, to the team’s knowledge, functionally equivalent, so every file can be edited for modding. The repository carries CC0-1.0 in LICENSE.MD; Nintendo’s game, its files and the downloaded compilers fall outside that dedication."
  ],
  "requirements_zh": [
    "README 仍称其为进行中的反编译项目，并列出五个支持版本：GPVE01（美版零售版，默认）、GPVE01_D17 与 GPVE01_D18（美版体验版 17 和 18）、GPVP01（PAL 版）以及 GPVJ01（日版）。每个版本都有各自的配置和 SHA-1 文件，CI 会构建全部五个版本。产物是 GameCube DOL，不是 PC 可执行文件或移植。",
    "每个版本都需要使用者自有该版本中的 main.dol，放在 orig/<version>/sys/main.dol；decomp-toolkit 在拆分前会按该版本 config.yml 中的哈希进行校验。仓库为每个版本提交了源自游戏的符号表和拆分表；配置注释称 GPVE01 的符号由 pikmin2UP.MAP 链接映射生成，日版和 PAL 版的表则以美版符号为基础从各自 DOL 中恢复。仓库不含光盘镜像或提取出的游戏文件。",
    "构建需要 Python 与 ninja，可在 Windows（推荐原生工具）、macOS（需 wine-crossover）或 Linux（x86 上自动下载 wibo，其他架构用 Wine）上进行。configure.py 固定 decomp-toolkit v1.7.5、objdiff v3.4.1、binutils 2.42-1、sjiswrap v1.2.2、wibo 1.0.0-beta.5 及 20250812 编译器包；游戏、JSystem 和运行时代码使用 Metrowerks GC/2.6，Dolphin SDK 库使用 GC/1.2.5n。",
    "configure.py 将 1,154 个目标文件标为对所有支持版本均一致，另有一个仅对日版一致；没有标为 NonMatching 的项。默认 ninja 目标会先按 config/<version>/build.sha1 校验链接出的 DOL，再报告进度；CI 在提供原始文件和编译器的容器中构建全部五个版本。decomp.dev 针对该固定提交的各版本报告均显示代码 100.00% 已匹配并完全链接（GPVE01 为 24,957 个函数、1,153 个单元）。",
    "README 称使用 --non-matching 时会关闭最终哈希校验，美版 DOL 将完全由 C++ 源码构建，据团队所知在功能上等价，因此每个文件都可修改用于模组制作。仓库在 LICENSE.MD 中采用 CC0-1.0；任天堂的游戏及其文件、下载的编译器不在该声明范围内。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/projectPiki/pikmin2",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
