# z2rs：以模拟器对照逐步重建《塞尔达传说 II》的 Rust 项目

> 以 Rust 重建 NES 游戏《塞尔达传说 II：林克的冒险》，逐个替换游戏的 6502 例程，可运行于桌面、浏览器和 Android。内置解释器仍执行使用者的 ROM，并把已移植例程交给 Rust 实现；验证工具将 RAM、精灵、调色板和画面与参考模拟器逐帧比较。它是参考社区反汇编、以行为为准的类净室重建，而不是反编译，也还不是独立完整的引擎。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/troyedwardsjr/z2rs>
- 一手来源：<https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/z2rs-zelda2-reconstruction-case/>
- 记录 JSON：<https://awesomerea.org/resources/z2rs-zelda2-reconstruction-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/z2rs-zelda2-reconstruction-case/index.md)

## 使用条件与局限

- **前提条件：**只接受 No-Intro 美版镜像，以去掉 16 字节 iNES 文件头后的 ROM 主体哈希识别（CRC32 BA322865）。图形、地图、文本和音乐在运行时从该 ROM 读取，仓库中不含任何游戏内容。合作模式、宽屏、高清素材包、随机化和其他增强功能均为可选附加内容；Android 版暂不支持在线合作、随机化和增强功能。
- **前提条件：**源码构建需要稳定版 Rust；浏览器版本另需 wasm32-unknown-unknown 目标和 wasm-pack，Android 版另需 SDK、NDK 和 cargo-ndk，桌面版默认启用的联网功能还需要 C 编译器。发布包未经代码签名。在线合作默认使用公共信令服务器，桌面版在未关闭时会显示 Discord 状态。
- **范围：**所审阅提交即 v0.5.2 版（2026-10-10），提供 Linux、macOS（Intel 与 Apple Silicon）和 Windows 压缩包以及适用于 Android 8.0+ 的 APK；z2rs.com 提供浏览器版本。PROVENANCE.md 表示它还不是独立的重新实现：已移植例程注册在陷阱表中，ROM 的其余部分由解释器执行。固定版本的 ports.toml 仍把全部 2,960 个例程标为未移植。
- **测试证据：**z2-verify 在 tetanes-core 0.15 中与 z2rs 并行运行同一 ROM 并输入相同操作，每帧比较 RAM、电池 WRAM、精灵 OAM、调色板和帧缓冲，并对该模拟器的两处画面边缘差异作了说明性豁免。长时测试回放需另行下载的 TASVideos 录像，缺少输入时依赖 ROM 的测试会自动跳过。所审阅的工作流只负责打包发布；未发现公开的验证结果。
- **署名：**代码由唯一维护者以 MIT 发布；内置的 matchbox_socket 采用 MIT 或 Apache-2.0，游戏本身不在许可范围内。例程布局来自 CC0 的 FiendsOfTheElements/z2disassembly 子模块和 Data Crystal 资料；项目说明这是一名维护者依据这些材料完成的工作，并非双团队净室流程，且只公开了早期私有历史的快照。

## 一手来源

1. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/README.md>
2. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/PROVENANCE.md>
3. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/LEGAL.md>
4. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/guide/development.md>
5. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/ports.toml>
6. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/crates/z2-core/src/traps.rs>
7. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/.github/workflows/release.yml>
8. <https://github.com/troyedwardsjr/z2rs/blob/4fe7a35f8ccfdccdf32421badf97b48b02d0127f/LICENSE>
9. <https://github.com/troyedwardsjr/z2rs/releases/tag/v0.5.2>
10. <https://z2rs.com/>

## 同分区更多条目：游戏

- [ArkWeb：双游戏动作与碰撞桥接实验](https://awesomerea.org/zh/resources/arkweb-two-game-case/index.md) · 案例
- [Batla 3D 服务端模拟器（2015 年客户端）](https://awesomerea.org/zh/resources/batla-3d-server-emulator-case/index.md) · 案例
- [bf-private-server：《Brave Frontier》服务端重建](https://awesomerea.org/zh/resources/bf-private-server-case/index.md) · 案例
- [D2R Mobile：在 Apple 设备上重新托管 Diablo II: Resurrected 的 Switch 程序](https://awesomerea.org/zh/resources/d2r-mobile-switch-rehost-case/index.md) · 案例
- [Destiny 2 build 86657：Sunrise／Dawn 重建研究报告](https://awesomerea.org/zh/resources/destiny2-build-86657-reconstruction-report-case/index.md) · 案例
- [DLSSNR-AMD：为 RDNA4 重新实现 DLSS 5 神经渲染](https://awesomerea.org/zh/resources/dlssnr-amd-neural-rendering-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
