HarbourMasters/Shipwright

GitHub: HarbourMasters/Shipwright

基于《时之笛》反编译源码和 libultraship 库构建的现代原生游戏移植项目,让经典 N64 游戏脱离模拟器在多平台原生运行并支持 Mod 扩展。

Stars: 4581 | Forks: 673

![Ship of Harkinian](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/86a9e44c6a101323.png) ![Ship of Harkinian](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1eedbda603101324.png) ## 网站 官方网站:https://www.shipofharkinian.com/ ## Discord 官方 Discord:https://discord.com/invite/shipofharkinian 如果你在阅读完此 `README` 后遇到任何问题,请随时在 Support 文本频道中寻求帮助。请记住,我们绝不纵容盗版行为。 # 快速开始 The Ship 不包含任何受版权保护的资产。你需要提供一份受支持的游戏副本。 ### 1. 验证你的 ROM Dump 你可以通过 https://ship.equipment/ 上的兼容性检查工具来验证你是否已 Dump 了受支持的游戏副本。如果你更愿意手动验证你的 ROM Dump,可以将其 `sha1` 哈希值与此处[这里](docs/supportedHashes.json)的哈希值进行交叉比对。 ### 2. 从 [Releases](https://github.com/HarbourMasters/Shipwright/releases) 下载 The Ship of Harkinian ### 3. 启动游戏! #### Windows * 解压 zip 文件 * 运行 `soh.exe` #### Linux * 将你受支持的游戏副本放在与 appimage 相同的文件夹中。 * 执行 `soh.appimage`。你可能需要通过终端执行 `chmod +x` 为该 appimage 赋予执行权限。 #### macOS * 运行 `soh.app`。出现提示时,选择你受支持的游戏副本。 * 你应该会看到一条写着 `Processing OTR` 的通知,然后,一旦该过程完成,你应该会收到一条写着 `OTR Successfully Generated` 的通知,接着游戏就会启动。 #### Nintendo Switch * 运行其中一个 PC 版本以生成 `oot.o2r` 和/或 `oot-mq.o2r` 文件。在 PC 上启动游戏后,你可以在 `soh.exe` 或 `soh.appimage` 所在的同一目录中找到这些文件。在 macOS 上,这些文件可以在 `/Users//Library/Application Support/com.shipofharkinian.soh/` 中找到 * 将文件复制到你的 SD 卡中 ``` sdcard └── switch └── soh ├── oot-mq.o2r ├── oot.o2r ├── soh.nro └── soh.o2r ``` * 通过 Atmosphere 的 `Game+R` 启动方式启动。 ### 4. 游玩! 恭喜,你正在与 Ship of Harkinian 一起航行!祝你玩得开心! # 配置 ### 默认键盘配置 | N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad | | - | - | - | - | - | - | - | - | | 键盘 | X | C | Z | Space | WASD | Arrow keys | TFGH | ### 其他快捷键 | 按键 | 动作 | | - | - | | ESC | 切换菜单 | | F2 | 切换捕获鼠标输入 | | F5 | 保存状态 | | F6 | 更改状态 | | F7 | 读取状态 | | F9 | 切换文本转语音(仅限 Windows 和 Mac) | | F11 | 全屏 | | Tab | 切换备用资产 | | Ctrl+R | 重置 | # 项目概述 Ship of Harkinian (SOH) 构建于一个名为 libultraship (LUS) 的自定义库之上。早在 N64 时代,有一个分发给开发者的名为 libultra 的 SDK;LUS 旨在现代硬件上模拟 libultra 的功能。此外,我们依赖于 OOT 反编译项目提供的源代码。 为了让游戏运行,你需要一份**合法获取**的《时之笛》 ROM。点击[这里](https://ship.equipment/)查看你特定 ROM 的兼容性。任何受版权保护的资产都会从 ROM 中提取出来并重新打包为 .o2r 存档文件供代码使用。 ### 图形后端 目前支持三种渲染 API:DirectX11(Windows)、OpenGL(所有平台)和 Metal(MacOS)。你可以在菜单栏的 `Settings` 菜单中更改要使用的 API,这需要重新启动才能生效。如果你遇到崩溃问题,可以在 `shipofharkinian.json` 文件中找到 `gfxbackend:""` 行,并将其值更改为 `sdl` 以使用 OpenGL。Windows 上默认使用 DirectX 11。 # 自定义资产 自定义资产被打包在 `.otr` 存档文件中。要使用自定义资产,请将它们放在 `mods` 文件夹中。 如果你有兴趣创建和/或打包你自己的自定义资产 `.otr` 文件,请查看以下工具: * [**retro - OTR 生成器**](https://github.com/HarbourMasters64/retro) * [**fast64 - Blender 插件**](https://github.com/HarbourMasters/fast64) # 开发 ### 构建 如果你想手动编译 SoH,请参阅[构建说明](docs/BUILDING.md)。 ### 游戏测试 如果你想对持续集成版本进行游戏测试,可以在下方链接中找到它们。请记住,这些版本仅用于游戏测试,你很可能会遇到错误甚至崩溃。 * [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip) * [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip) * [Linux](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux.zip) ### 延伸阅读 更详细的文档可以在 'docs' 目录中找到,包括前面提到的[构建说明](docs/BUILDING.md)。 * [致谢](docs/CREDITS.md) * [自定义音乐](docs/CUSTOM_MUSIC.md) * [控制器映射](docs/GAME_CONTROLLER_DB.md) * [Modding](docs/MODDING.md) * [版本控制](docs/VERSIONING.md) Powered by libultraship
标签:C++, Nintendo Switch, PC移植, ROM Hack, Ship of Harkinian, UML, URL提取, 云资产清单, 反编译, 复古游戏, 客户端加密, 开源游戏, 数据擦除, 游戏开发, 游戏引擎, 游戏重制, 独立游戏, 资源提取, 赛尔达传说:时之笛, 软件解耦, 逆向工程