案例
《姆吉拉的假面》:生成一致美版 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 使用,也不主张运行复现。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · zeldaret/mm · 修订 bf6bd9d
- Makefile GitHub · zeldaret/mm · 修订 bf6bd9d
- tools/Makefile GitHub · zeldaret/mm · 修订 bf6bd9d
- baseroms/n64-us/checksum.md5 GitHub · zeldaret/mm · 修订 bf6bd9d
- .github/workflows/ci.yml GitHub · zeldaret/mm · 修订 bf6bd9d
- https://zelda.deco.mp/assets/csv/progress-mm-shield.json
- README.md GitHub · Zelda64Recomp/Zelda64Recomp · 修订 b65c482