{
  "commit": "fbe5ba4e3e790ab07eddc5b57e0f45a02cbcd60e",
  "count": 1,
  "generated_at": "2026-10-24T00:06:47Z",
  "items": [
    {
      "id": "soh",
      "profile": {
        "core_classification": "game_engine",
        "core_version": "9.2.3",
        "cores": [
          "soh"
        ],
        "display_name": "The Legend of Zelda: Ocarina of Time (Ship of Harkinian)",
        "emulator": "Ship of Harkinian",
        "files": [
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL N64 1.0 ROM",
            "name": "oot.pal.10.z64",
            "required": false,
            "sha1": "328a1f1beba30ce5e178f031662019eb32c5f3b5",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:2-5",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL N64 1.1 ROM",
            "name": "oot.pal.11.z64",
            "required": false,
            "sha1": "cfbb98d392e4a9d39da8285d10cbef3974c2f012",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:6-9",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL GameCube ROM",
            "name": "oot.pal.gc.z64",
            "required": false,
            "sha1": "0227d7c0074f2d0ac935631990da8ec5914597b4",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:10-13",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL Master Quest ROM",
            "name": "oot.pal.mq.z64",
            "required": false,
            "sha1": "f46239439f59a2a594ef83cf68ef65043b1bffe2",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:14-17",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL GameCube debug ROM",
            "name": "oot.pal.gc.dbg.z64",
            "required": false,
            "sha1": "cee6bc3c2a634b41728f2af8da54d9bf8cc14099",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:18-21",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 1 ROM",
            "name": "oot.pal.mq.dbg1.z64",
            "required": false,
            "sha1": "079b855b943d6ad8bd1eb026c0ed169ecbdac7da",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:22-25",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 2 ROM",
            "name": "oot.pal.mq.dbg2.z64",
            "required": false,
            "sha1": "50bebedad9e0f10746a52b07239e47fa6c284d03",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:26-29",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 3 ROM",
            "name": "oot.pal.mq.dbg3.z64",
            "required": false,
            "sha1": "cfecfdc58d650e71a200c81f033de4e6d617a9f6",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:30-33",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, USA N64 1.0 ROM",
            "name": "oot.us.10.z64",
            "required": false,
            "sha1": "ad69c91157f6705e8ab06c79fe08aad47bb57ba7",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:34-37",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, USA N64 1.1 ROM",
            "name": "oot.us.11.z64",
            "required": false,
            "sha1": "d3ecb253776cd847a5aa63d859d8c89a2f37b364",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:38-41",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, USA N64 1.2 ROM",
            "name": "oot.us.12.z64",
            "required": false,
            "sha1": "41b3bdc48d98c48529219919015a1af22f5057c2",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:42-45",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan N64 1.0 ROM",
            "name": "oot.jp.10.z64",
            "required": false,
            "sha1": "c892bbda3993e66bd0d56a10ecd30b1ee612210f",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:46-49",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan N64 1.1 ROM",
            "name": "oot.jp.11.z64",
            "required": false,
            "sha1": "dbfc81f655187dc6fefd93fa6798face770d579d",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:50-53",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan N64 1.2 ROM",
            "name": "oot.jp.12.z64",
            "required": false,
            "sha1": "fa5f5942b27480d60243c2d52c0e93e26b9e6b86",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:54-57",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, USA GameCube ROM",
            "name": "oot.us.gc.z64",
            "required": false,
            "sha1": "b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:58-61",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, USA Master Quest ROM",
            "name": "oot.us.mq.z64",
            "required": false,
            "sha1": "8b5d13aac69bfbf989861cfdc50b1d840945fc1d",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:62-65",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan GameCube ROM",
            "name": "oot.jp.gc.z64",
            "required": false,
            "sha1": "0769c84615422d60f16925cd859593cdfa597f84",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:66-69",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan GameCube Collector's Edition ROM",
            "name": "oot.jp.gc.ce.z64",
            "required": false,
            "sha1": "2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:70-73",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "category": "game_data",
            "description": "The Legend of Zelda: Ocarina of Time, Japan Master Quest ROM",
            "name": "oot.jp.mq.z64",
            "required": false,
            "sha1": "dd14e143c4275861fe93ea79d0c02e36ae8c6c2f",
            "source_ref": "soh/soh/Extractor/Extract.cpp:81-103, docs/supportedHashes.json:74-77",
            "system": "soh",
            "unsourceable": "retail ROM the collection does not hold, and a same-named dump of another game must not stand in"
          },
          {
            "bundled": true,
            "category": "game_data",
            "description": "Port archive: shaders, textures and data added by the port",
            "md5": "d3701e7ce3e1f27572f697430212224e",
            "name": "soh.o2r",
            "note": "Its stored version must match the executable's, so only the copy from the same release works. Hash of the copy in SoH-Ackbar-Delta-Win64.zip.",
            "path": "soh/soh.o2r",
            "required": true,
            "sha1": "313c3251edc2b345f04a34f80e09e7b27f0660ee",
            "size": 4551359,
            "source_ref": "soh/soh/OTRGlobals.cpp:273-274, 465-483",
            "system": "soh",
            "unsourceable": "ships inside the Ship of Harkinian release, and the collection does not hold it"
          },
          {
            "bundled": true,
            "category": "game_data",
            "description": "SDL game controller mapping database",
            "md5": "7d7b338604d8da35cbd28638f0a134c3",
            "name": "gamecontrollerdb.txt",
            "note": "A load failure is logged and SDL keeps its built-in mappings. Hash of the copy in SoH-Ackbar-Delta-Win64.zip.",
            "path": "soh/gamecontrollerdb.txt",
            "required": false,
            "sha1": "155097429a2c74f9d8ac0ee30e6ee225f5917be5",
            "size": 592371,
            "source_ref": "libultraship src/libultraship/libultra/os.cpp:18-24, libultraship src/ship/Context.cpp:510-525",
            "system": "soh",
            "unsourceable": "ships inside the Ship of Harkinian release, and other revisions under the same name must not stand in"
          }
        ],
        "notes": "PC port of The Legend of Zelda: Ocarina of Time built on the decompilation,\nby HarbourMasters. The game runs from assets extracted out of the user's\nROM into oot.o2r (oot-mq.o2r for Master Quest), plus the port's own archive\nsoh.o2r, on the libultraship runtime. ZAPDTR and OTRExporter perform the\nextraction inside the executable.\n\nRetroBat installs the 9.2.3 release (\"Ackbar Delta\"): its soh.7z carries\nthe soh.exe, soh.o2r and gamecontrollerdb.txt of SoH-Ackbar-Delta-Win64.zip\nbyte for byte, so the profile is pinned to the 9.2.3 tag. Its launcher\npasses the ROM on the command line when neither archive exists (only a\n.z64, .n64 or .v64 file, else it copies the ROM beside the executable), and\ndeletes both archives first when the major version stored in them differs\nfrom the one in soh.o2r.\nref: emulatorLauncher Generators/PortsLauncher.Configuration.cs:1685-1724\n\nStartup:\n  1. soh.o2r is located in the application directories and its stored\n     port version must match the build. A missing or outdated soh.o2r\n     shows an error and exits (soh/soh/OTRGlobals.cpp:273-274, 465-483).\n  2. oot.o2r and oot-mq.o2r are checked for the version they were built\n     with. Without an assets/ folder beside the executable nothing can be\n     regenerated and the port exits (soh/soh/OTRGlobals.cpp:397-398,\n     433-443).\n  3. Without either archive a ROM given on the command line is extracted.\n     Otherwise .z64, .n64 and .v64 files in the search folder are offered,\n     then a file dialog (soh/soh/Extractor/Extract.cpp:229-280, 488-559).\n\nROM check: the size must be 32, 54 or 64 MiB, the data is converted to\nbig-endian order whatever the dump format, the word at 0x10 picks the\nversion from a table of known values, and a CRC-32C of the whole\nconverted image must be one of 21 values, which include the debug ROM\noverdumps. Compressed files are refused. One supported ROM is needed to\nbuild the first archive.\nref: soh/soh/Extractor/Extract.cpp:54-103, 335-354, 376-401\n\nThe SHA-1 values below are those the repository publishes for the .z64\nforms of the accepted ROMs (docs/supportedHashes.json). The code itself\nonly checks the CRC-32C, so .n64 and .v64 dumps of the same ROMs are\naccepted too.\n\nlibultraship is a submodule pinned at 9.2.3 to\nfdcaf6336776d24a6408d016b0a52243f108f250. Its citations are at that\nrevision.\n",
        "profiled_date": "2026-10-20",
        "source": "https://github.com/HarbourMasters/Shipwright",
        "source_commit": "cb71e22a79bc5d1f688fa881795bbd93094895fc",
        "systems": [
          "soh"
        ],
        "type": "standalone",
        "upstream": "https://github.com/HarbourMasters/Shipwright"
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
