Shipwright:在 PC 上重玩《时之笛》的源码级平台

Shipwright:在 PC 上重玩《时之笛》的源码级平台

【免费下载链接】Shipwright 【免费下载链接】Shipwright 项目地址: https://gitcode.com/GitHub_Trending/sh/Shipwright

Shipwright(Ship of Harkinian,简称 SoH)是把任天堂 64 的《塞尔达传说:时之笛》完整反编译、重新编译并在现代硬件上运行的开源工程。它解决的问题很直接:N64 早已停产,但这套代码现在能跑在你的 PC 上,并且随机器、多人联机、存档快照这些原版没有的功能全部内置。项目不附带任何版权资源,你需要自备一份合法来源的游戏 ROM。

🚀 先跑起来

两条路:直接下载 Releases 里的预编译包,解压后运行 soh.exe(Windows)或 soh.appimage(Linux),游戏启动时会提示你选择一份受支持的 ROM;或者自己从源码编译,Linux 下的最小路径是:

git clone --recursive https://gitcode.com/GitHub_Trending/sh/Shipwright
cd Shipwright
cmake -H. -Bbuild-cmake -GNinja
cmake --build build-cmake --target GenerateSohOtr
cmake --build build-cmake

跑通后 ./build-cmake/soh/soh.elf 可以启动,选一份合法 ROM 完成 OTR 资源提取即可进入游戏。注意仓库不带资源,GenerateSohOtr 这一步依赖你放入 roms/ 目录的 ROM,构建细节(含 Windows/macOS 依赖)见 docs/BUILDING.md。

🧩 它到底干什么

  • 源码级重编译:整个游戏是 OOT 反编译项目的可编译源码,改任何逻辑都在 soh/src/ 里改完重新编译,不需要打补丁或改二进制。
  • 内置随机器:把物品、钥匙、Boss 位置打乱重排,支持 Classic Rando 和 3D Rando 等多种规则组合,源码在 soh/soh/Enhancements/randomizer/。
  • 多人联机:基于 UDP 的自定义网络层实现多人同局,相关代码在 soh/soh/Network/。
  • 存档快照:F5 快速保存、F7 快速读取,状态文件由 soh/soh/savestates.cpp 管理,崩溃后能回到任意进度点。
  • 自定义资产:把替换的模型、贴图、音乐打包成 .otr 文件放进 mods 文件夹即可加载,不需要重新编译。

🗂️ 按场景挑模块

我想改游戏逻辑

改 soh/src/ 下的反编译源码,或写增强功能进 soh/soh/Enhancements/;改完 CMake 重新构建即可看到效果。

我想跑一局随机器

入口在游戏菜单,实现全部集中在 soh/soh/Enhancements/randomizer/,3D Rando 的填坑逻辑在其中的 3drando/fill.cpp。

我想和朋友联机

联机代码在 soh/soh/Network/,Anchor、Sail 等目录分别处理协议与连接状态,属于游戏内功能,无需额外服务端。

我想做代码 Mod

按 docs/MODDING.md 的完整教程走:从 develop 切分支、加一个可配置的时间流速 slider、再发 PR,一条真实改动从定位到提交的完整流程。

我想移植到掌机或主机

Switch 和 Wii U 的工具链构建脚本在 scripts/switch/ 和 scripts/wiiu/,docs/BUILDING.md 末尾给出了 soh_nro、soh.rpx 的生成命令。

其他:资产与配置

每个场景/道具/动画的资产配置是 YAML 文件,按 ROM 版本分区放在 soh/assets/yml/;版本号规则(x.y.z 加科幻电影代号)说明在 docs/VERSIONING.md。

⚠️ 新手容易踩的坑

  • clone 忘了带子模块:构建缺文件且报错不明显。解法:加 --recursive,或补跑 git submodule update --init。
  • ROM 不被支持:资源提取直接失败。解法:把 ROM 的 sha1 和 docs/supportedHashes.json 对照,不在列表里的版本无法运行。
  • CMake 找不到第三方包配置:老发行版的 tinyxml2(< 10.0.0)、SDL2_net(< 2.2.0)不带 CMake 配置文件。解法:装新版包并传 -DCMAKE_PREFIX_PATH,或按 docs/BUILDING.md 的提示从源码编译。

📌 卡住了去哪找答案

把仓库拉下来本地编译一遍,比读十页文档更能让你明白它怎么工作。

【免费下载链接】Shipwright 【免费下载链接】Shipwright 项目地址: https://gitcode.com/GitHub_Trending/sh/Shipwright

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值