案例

《姆吉拉的假面》:生成一致美版 N64 ROM 的反编译重建

依据游戏内信息和静态或动态分析,为《塞尔达传说:姆吉拉的假面》重建 C 源码库,并重新构建美版 Nintendo 64 ROM。构建流程从使用者自备的 ROM 中取得素材和汇编,再用仓库保存的 MD5 校验输出。团队声明不会制作 PC 移植;另行收录的 Zelda 64: Recompiled 只注明借用了其头文件和部分函数。

使用条件与局限

  • 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 源码的人参与贡献。所审阅来源未确立 AI 或 REA 使用,也不主张运行复现。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · zeldaret/mm · 修订 bf6bd9d
  2. Makefile GitHub · zeldaret/mm · 修订 bf6bd9d
  3. tools/Makefile GitHub · zeldaret/mm · 修订 bf6bd9d
  4. baseroms/n64-us/checksum.md5 GitHub · zeldaret/mm · 修订 bf6bd9d
  5. .github/workflows/ci.yml GitHub · zeldaret/mm · 修订 bf6bd9d
  6. https://zelda.deco.mp/assets/csv/progress-mm-shield.json
  7. README.md GitHub · Zelda64Recomp/Zelda64Recomp · 修订 b65c482