Case study
2 Ship 2 Harkinian: a native Majora’s Mask port built on the decompilation
Builds native Windows, Linux and macOS versions of The Legend of Zelda: Majora’s Mask from an adapted copy of the zeldaret/mm decompilation, with libultraship reimplementing N64 SDK functions. Game data comes from a user-supplied ROM and is packed into an archive that custom asset packs can override. It targets a playable PC port with enhancements, not a byte-identical ROM.
Requirements and limitations
- The reviewed develop commit follows release 5.0.1 (2026-08-25), published as Windows, Linux and macOS archives; nightly CI builds are for playtesting and may have bugs and crashes. The repository’s decomp_diff.py describes its game sources as changed decompilation code compared with the official zeldaret/mm repository. Rendering uses DirectX 11, OpenGL or Metal.
- No copyrighted assets are included: supply a supported copy of Majora’s Mask. The docs list SHA-1 hashes for NTSC-U 1.0 and NTSC-U GC versions. Built-in extraction turns the supplied game into an mm.o2r archive; custom .o2r or .otr packs go in a mods folder, and the README notes that fast64 does not fully support MM.
- Source builds need the libultraship, OTRExporter and ZAPDTR submodules plus CMake. Windows uses Visual Studio 2022 with the v143 toolset, Python 3 and at least 8 GB of RAM; the Linux lists include GCC or Clang, Ninja, SDL2, libzip, spdlog, tinyxml2 and Opus/Vorbis libraries; macOS needs Xcode tools with SDL2, libpng, GLEW, Ninja, CMake, nlohmann-json and libzip.
- The reviewed README and build guide report no matching, checksum or fidelity checks for the port; the release notes list tweaks and bug fixes. Enhancement and randomizer code changes behavior relative to the original game. This collection did not build or run it.
- The repository is CC0 1.0, and the libultraship submodule is MIT; game content from the user’s copy keeps its own rights, and the README says the project does not condone piracy. The reviewed sources establish no AI or REA use.
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
- README.md GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- docs/BUILDING.md GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- docs/supportedHashes.json GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- decomp_diff.py GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- .gitmodules GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- LICENSE GitHub · 2ship2harkinian/2ship2harkinian · Revision f1dda4c
- https://github.com/2ship2harkinian/2ship2harkinian/releases/tag/5.0.1
- README.md GitHub · Kenix3/libultraship · Revision 7f9b86a
- LICENSE GitHub · Kenix3/libultraship · Revision 7f9b86a