{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zeldaret/mm/blob/bf6bd9d0d3a90fe2f8960e034fbfd328e8bdef22/Makefile",
    "https://github.com/zeldaret/mm/blob/bf6bd9d0d3a90fe2f8960e034fbfd328e8bdef22/tools/Makefile",
    "https://github.com/zeldaret/mm/blob/bf6bd9d0d3a90fe2f8960e034fbfd328e8bdef22/baseroms/n64-us/checksum.md5",
    "https://github.com/zeldaret/mm/blob/bf6bd9d0d3a90fe2f8960e034fbfd328e8bdef22/.github/workflows/ci.yml",
    "https://zelda.deco.mp/assets/csv/progress-mm-shield.json",
    "https://github.com/Zelda64Recomp/Zelda64Recomp/blob/b65c482ed672258eb684ab94a4e8c8aa662615ee/README.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Recreates a C source base for The Legend of Zelda: Majora’s Mask from information in the game and static or dynamic analysis, then rebuilds the US Nintendo 64 ROM. The build takes assets and assembly from a user-supplied ROM and checks the output against stored MD5 checksums. The team states it will not produce a PC port; the separately curated Zelda 64: Recompiled only credits it for headers and some functions.",
  "description_zh": "依据游戏内信息和静态或动态分析，为《塞尔达传说：姆吉拉的假面》重建 C 源码库，并重新构建美版 Nintendo 64 ROM。构建流程从使用者自备的 ROM 中取得素材和汇编，再用仓库保存的 MD5 校验输出。团队声明不会制作 PC 移植；另行收录的 Zelda 64: Recompiled 只注明借用了其头文件和部分函数。",
  "entry_url": "https://awesomerea.org/resources/zelda-mm-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/zelda-mm-decomp-case/",
  "evidence_url": "https://github.com/zeldaret/mm/blob/bf6bd9d0d3a90fe2f8960e034fbfd328e8bdef22/README.md",
  "group": "cases",
  "id": "zelda-mm-decomp-case",
  "json_url": "https://awesomerea.org/resources/zelda-mm-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/zelda-mm-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/zelda-mm-decomp-case/index.md",
  "name": "Majora’s Mask: matching US N64 decompilation",
  "name_zh": "《姆吉拉的假面》：生成一致美版 N64 ROM 的反编译重建",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README calls this a work-in-progress decompilation whose codebase may still change drastically, and warns that some parts of the ROM may not yet be shiftable, so modifications can be difficult. Only N64 US 1.0 is supported; the Makefile also lists a WIP N64 Japan 1.1 target with checksum comparison disabled. Majora’s Mask 3D is out of scope, and the output is an N64 ROM, not a PC executable.",
    "Supply your own US Majora’s Mask ROM as the base ROM; .z64, .n64 and .v64 byte orders are accepted. The repository includes no game assets or assembly: the build decompresses the supplied ROM and derives files, assets and disassembled code and data from it before compiling a ROM and a compressed ROM.",
    "The documented host is Linux, native or under WSL or a VM, with Debian or Ubuntu recommended: Git, build-essential, MIPS binutils, curl, Python 3 with pip and venv, libpng and libxml2. macOS and Docker have separate guides. The default compiler is a static recompilation of IDO 5.3 and 7.1 that the tools Makefile downloads from decompals/ido-static-recomp; GCC and NON_MATCHING builds turn the checksum comparison off.",
    "A default build checks both ROMs against stored MD5 values and prints OK or FAILED; FAILED means a bad base ROM or non-matching code. CI builds the US version in matching mode and Japan 1.1 as non-matching, using base ROMs from the project’s build container. The project’s mutable progress badge read 100% at review while the README still says WIP.",
    "The reviewed tree has no top-level license file and GitHub detects no license, so source reuse terms are unstated; ROM contents and derived assets keep their own rights. The README forbids contributions from anyone who has ever accessed leaked Nintendo 64 SDK, libultra or Zelda 64 source."
  ],
  "requirements_zh": [
    "README 称其为仍在进行中的反编译项目，代码库仍可能大幅变动，并提醒 ROM 的部分内容可能尚不能移动，因此修改可能较困难。目前只支持 N64 美版 1.0；Makefile 另列出进行中的 N64 日版 1.1 目标，该目标关闭了校验比较。《姆吉拉的假面 3D》不在范围内，产物是 N64 ROM，而不是 PC 可执行文件。",
    "需自备美版《姆吉拉的假面》ROM 作为基础 ROM，可接受 .z64、.n64 和 .v64 字节序。仓库不含任何游戏素材或汇编：构建流程先解压所供 ROM，从中得到文件、素材以及反汇编的代码和数据，再编译出 ROM 和压缩版 ROM。",
    "文档说明的宿主为 Linux（原生、WSL 或虚拟机，推荐 Debian 或 Ubuntu），需 Git、build-essential、MIPS binutils、curl、带 pip 和 venv 的 Python 3、libpng 与 libxml2；macOS 和 Docker 另有指南。默认编译器是 IDO 5.3 和 7.1 的静态重编译版本，由 tools 目录的 Makefile 从 decompals/ido-static-recomp 下载；GCC 和 NON_MATCHING 构建会关闭校验比较。",
    "默认构建会用仓库保存的 MD5 值检查两个 ROM，输出 OK 或 FAILED；FAILED 表示基础 ROM 有误或代码不一致。CI 以一致模式构建美版、以非一致模式构建日版 1.1，基础 ROM 由项目构建容器提供。核查时项目可变的进度徽章显示 100%，README 仍标注为进行中。",
    "所审阅代码树没有顶层许可证文件，GitHub 也未识别出许可证，因此源码的再使用条款未予说明；ROM 内容和由其得到的素材保留各自权利。README 禁止任何曾接触泄露的 Nintendo 64 SDK、libultra 或 Zelda 64 源码的人参与贡献。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zeldaret/mm",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
