zeldaret/tp

GitHub: zeldaret/tp

《塞尔达传说:黄昏公主》的游戏二进制反编译项目,旨在从原版游戏镜像重建可编译的完整源代码。

Stars: 1611 | Forks: 163

# 塞尔达传说:黄昏公主 [![Build Status]][actions] [![Discord Badge]][discord] [![GZ2E01]][progress] [![GZ2P01]][progress] [![GZ2J01]][progress] [![ShieldD]][progress] [A visual][Progress] 本项目可以针对以下支持的版本: - **`GZ2E01`**: GameCube - 北美 - **`GZ2P01`**: GameCube - 欧洲/澳大利亚 - **`GZ2J01`**: GameCube - 日本 - `RZDE01_00`: Wii - 北美 (Rev 0) - `RZDE01_02`: Wii - 北美 (Rev 2) - `RZDP01`: Wii - 欧洲/澳大利亚 - `RZDJ01`: Wii - 日本 - `DZDE01`: Wii - 北美 (体验版 Demo) - `Shield`: Nvidia Shield - 中国 - `ShieldD`: Nvidia Shield - 中国 (调试版本) 关于本项目的更多信息可在以下地址找到: - [进度](https://zsrtp.link/progress) - [依赖项](#dependencies) - [构建](#building) - [差异对比](#diffing) - [贡献](#contributing) - [常见问题](https://zsrtp.link/about) ## 依赖项 你需要以下依赖项: - git - ninja - python3 - clang-format (可选) ### Windows 在 Windows 上,**强烈建议**使用原生工具链。**不需要**使用 WSL 或 msys2。 在 WSL 下运行时,[objdiff](#diffing) 无法获取文件系统通知以进行自动重建。 - 安装 [Python](https://www.python.org/downloads/) 并将其添加到 `%PATH%`。 - 也可以从 [Windows Store](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K) 获取。 - 下载 [ninja](https://github.com/ninja-build/ninja/releases) 并将其添加到 `%PATH%`。 - 通过 pip 快速安装:`pip install ninja` ### macOS - 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages): brew install ninja [wibo](https://github.com/decompals/wibo),一个最小化的 32 位 Windows 二进制包装器,将被自动下载并使用。 ### Linux - 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages)。 [wibo](https://github.com/decompals/wibo),一个最小化的 32 位 Windows 二进制包装器,将被自动下载并使用。 ## 构建 - 克隆仓库: git clone https://github.com/zeldaret/tp.git - 将你的游戏光盘镜像复制到 `orig/GZ2E01`。 - 支持的格式:ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC。 - 初次构建完成后,可以删除光盘镜像以节省空间。 - 配置: python configure.py 若要使用 `GZ2E01` (GCN 美国) 以外的版本,请使用 `--version` 指定。 - 构建: ninja ## 差异对比 一旦初始构建成功,项目根目录下应存在一个 `objdiff.json` 文件。 从 [encounter/objdiff](https://github.com/encounter/objdiff) 下载最新版本。在项目设置中,设置 `Project directory`。配置应会自动加载。 从左侧边栏选择一个对象以开始差异对比。项目的更改将自动触发重建:包括对源文件、头文件、`configure.py`、`splits.txt` 或 `symbols.txt` 的修改。 ![objdiff application window](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6c247ad98a144358.png) ## 贡献 如果你已设置好所有要求并希望了解如何为反编译工作做出贡献,请加入我们的 [Discord server][discord] 并查看我们的[贡献指南](https://zsrtp.link/contribute)。
标签:C++, DNS解析, GameCube, GZ2E01, Ninja, Python, UML, URL提取, VPS部署, Wii, zeldaret, 二进制分析, 云安全运维, 云资产清单, 代码重构, 任天堂, 反编译, 塞尔达传说:黄昏公主, 开源项目, 怀旧游戏, 数据擦除, 无后门, 游戏开发, 游戏源码, 网络安全研究, 软件分析, 逆向工具, 逆向工程