Case study

Ship of Harkinian: a native Ocarina of Time port built on the decompilation

Builds Ocarina of Time as a native PC application from the OoT decompilation’s source, with libultraship standing in for the N64 libultra SDK and DirectX 11, OpenGL or Metal rendering. No game assets are shipped: they are converted from the user’s supported ROM into an .o2r archive, and the port adds save states, alternate and custom assets and other enhancements.

Requirements and limitations

  • README presents Ship of Harkinian as built on libultraship and dependent on source from the OoT decompilation project; the soh/src tree carries that decomp-derived game code. The output is a modified native port (CMake project version 9.3.0) with added features, not a matching ROM build or a byte-for-byte reconstruction.
  • Play requires a legally acquired, supported Ocarina of Time ROM; docs/supportedHashes.json lists 19 SHA-1 entries covering PAL, NTSC (US/JP), GameCube, Master Quest and debug variants. Copyrighted assets are not included and are converted from that ROM into oot.o2r or oot-mq.o2r; prebuilt releases still need the ROM.
  • README documents Windows, Linux (AppImage) and macOS releases with DirectX 11, OpenGL or Metal; CMake also has Nintendo Switch and CafeOS (Wii U) branches. Source builds need CMake 3.26+, Python 3, Git and the libultraship and Torch submodules, plus Visual Studio 2022 (v143) on Windows or the listed distribution packages and minimum GCC/Clang versions on Linux.
  • The reviewed CI workflow builds Windows, macOS and Linux packages and generates soh.o2r; it runs no gameplay or fidelity comparison against the original game. Behavior and enhancements are project-documented, and this collection built or ran nothing.
  • The pinned tree has no root license file and GitHub detects none; the randomizer’s 3drando component carries its own license, the submodules are separate repositories and Nintendo content keeps its own rights. README says the project does not condone piracy; the reviewed sources establish no REA or coding-agent involvement.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · HarbourMasters/Shipwright · Revision dd702b0
  2. docs/BUILDING.md GitHub · HarbourMasters/Shipwright · Revision dd702b0
  3. docs/supportedHashes.json GitHub · HarbourMasters/Shipwright · Revision dd702b0
  4. CMakeLists.txt GitHub · HarbourMasters/Shipwright · Revision dd702b0
  5. .gitmodules GitHub · HarbourMasters/Shipwright · Revision dd702b0
  6. soh/.gitrepo GitHub · HarbourMasters/Shipwright · Revision dd702b0
  7. docs/CREDITS.md GitHub · HarbourMasters/Shipwright · Revision dd702b0
  8. .github/workflows/generate-builds.yml GitHub · HarbourMasters/Shipwright · Revision dd702b0
  9. soh/soh/Enhancements/randomizer/3drando/LICENSE.md GitHub · HarbourMasters/Shipwright · Revision dd702b0