explaingit

harbourmasters/shipwright

4,789CAudience · generalComplexity · 3/5Setup · moderate

TLDR

Ship of Harkinian is a native port of The Legend of Zelda: Ocarina of Time to modern PCs and Nintendo Switch, enabling higher framerates and resolutions. Built on libultraship. Requires your own legally obtained ROM, no game data is included.

Mindmap

mindmap
  root((shipwright))
    Platforms
      Windows
      Linux
      macOS
      Nintendo Switch
    Graphics Backends
      DirectX 11
      OpenGL
      Metal
    Core Layer
      libultraship
      N64 decomp base
    Modding
      OTR asset packs
      Mods folder
      Blender plugin
    Setup
      ROM verification
      Asset extraction
      Source build docs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Play Ocarina of Time natively on Windows, Linux, macOS, or Nintendo Switch at higher framerates and resolutions

USE CASE 2

Load custom asset packs via .otr mod files dropped into the mods folder

USE CASE 3

Compile the project from source using instructions in the docs directory

USE CASE 4

Use the Blender plugin to work with the game's 3D formats for mod creation

Tech stack

ClibultrashipDirectX 11OpenGLMetalOTR archivesBlender plugin

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a legally obtained OoT ROM. Windows/Linux extract assets automatically on first launch. Switch users must run the PC version first to generate asset archives, then copy to SD card.

License not mentioned in the explanation.

In plain English

Ship of Harkinian is a native port of The Legend of Zelda: Ocarina of Time to modern computers and the Nintendo Switch. It lets you play the game at higher framerates and resolutions on Windows, Linux, macOS, and Switch hardware. The project does not include any of the original game's data or music, so you must supply your own legally obtained copy of the game ROM to use it. Getting started is straightforward. You verify your ROM using a compatibility checker on the project's website, download the latest release, and launch the executable. On Windows and Linux the game extracts the assets from your ROM automatically on first launch. On Switch, you run the PC version first to generate the asset archive files, then copy those to your SD card alongside the Switch executable. Under the hood, the project is built on a custom compatibility layer called libultraship. The original Nintendo 64 game was developed using Nintendo's official SDK called libultra, and libultraship reimplements that same set of functions so the game code can run on modern operating systems without rewriting it from scratch. The project also depends on work done by a separate community effort that decompiled the original game's code. Supported graphics backends are DirectX 11 on Windows, OpenGL on all platforms, and Metal on macOS. The game supports custom asset packs distributed as .otr archive files, which you drop into a mods folder. Tools for creating those archives and a Blender plugin for working with the game's 3D formats are linked from the README. Instructions for compiling the project from source are in the docs directory.

Copy-paste prompts

Prompt 1
I have Ship of Harkinian set up with my ROM. How do I create a custom .otr asset pack and install it into the mods folder?
Prompt 2
Using the libultraship source in this repo, explain how it reimplements Nintendo's libultra SDK functions to make N64 game code run on modern operating systems.
Prompt 3
Walk me through cross-compiling Ship of Harkinian for Nintendo Switch from a Linux host, including generating the asset archive and copying files to the SD card.
Prompt 4
I want to contribute a new graphics backend to Ship of Harkinian. Show me where DirectX 11 and OpenGL backends are implemented so I can follow the same pattern.
Prompt 5
Explain how asset extraction works on first launch, trace the code path from ROM input to the generated asset archive files.
Open on GitHub → Explain another repo

← harbourmasters on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.