Ship of Harkinian
Ship of Harkinian emulates The Legend of Zelda: Ocarina of Time. It reads 19 files, none of them required: it starts games without them.
About this profile
Technical notes
PC port of The Legend of Zelda: Ocarina of Time built on the decompilation, by HarbourMasters. The game runs from assets extracted out of the user's ROM into oot.o2r (oot-mq.o2r for Master Quest), plus the port's own archive soh.o2r, on the libultraship runtime. ZAPDTR and OTRExporter perform the extraction inside the executable.
RetroBat installs the 9.2.3 release ("Ackbar Delta"): its soh.7z carries the soh.exe, soh.o2r and gamecontrollerdb.txt of SoH-Ackbar-Delta-Win64.zip byte for byte, so the profile is pinned to the 9.2.3 tag. Its launcher passes the ROM on the command line when neither archive exists (only a .z64, .n64 or .v64 file, else it copies the ROM beside the executable), and deletes both archives first when the major version stored in them differs from the one in soh.o2r. ref: emulatorLauncher Generators/PortsLauncher.Configuration.cs:1685-1724
Startup:
- soh.o2r is located in the application directories and its stored
port version must match the build. A missing or outdated soh.o2r
shows an error and exits (
soh/soh/OTRGlobals.cpp:273-274,465-483). - oot.o2r and oot-mq.o2r are checked for the version they were built
with. Without an assets/ folder beside the executable nothing can be
regenerated and the port exits (
soh/soh/OTRGlobals.cpp:397-398, 433-443). - Without either archive a ROM given on the command line is extracted.
Otherwise .z64, .n64 and .v64 files in the search folder are offered,
then a file dialog (
soh/,soh/ Extractor/ Extract.cpp:229-280 488-559).
ROM check: the size must be 32, 54 or 64 MiB, the data is converted to
big-endian order whatever the dump format, the word at 0x10 picks the
version from a table of known values, and a CRC-32C of the whole
converted image must be one of 21 values, which include the debug ROM
overdumps. Compressed files are refused. One supported ROM is needed to
build the first archive.
ref: soh/, 335-354, 376-401
The SHA-1 values below are those the repository publishes for the .z64 forms of the accepted ROMs (docs/supportedHashes.json). The code itself only checks the CRC-32C, so .n64 and .v64 dumps of the same ROMs are accepted too.
libultraship is a submodule pinned at 9.2.3 to fdcaf6336776d24a6408d016b0a52243f108f250. Its citations are at that revision.
19 files: 0 required, 19 optional. 2 more files come with the app.
By kind: 21 game data.
| File | Required | Hash |
|---|---|---|
oot.pal.10.z64 |
no | SHA1 328a1f1beba3 |
oot.pal.11.z64 |
no | SHA1 cfbb98d392e4 |
oot.pal.gc.z64 |
no | SHA1 0227d7c0074f |
oot.pal.mq.z64 |
no | SHA1 f46239439f59 |
oot.pal.gc.dbg.z64 |
no | SHA1 cee6bc3c2a63 |
oot.pal.mq.dbg1.z64 |
no | SHA1 079b855b943d |
oot.pal.mq.dbg2.z64 |
no | SHA1 50bebedad9e0 |
oot.pal.mq.dbg3.z64 |
no | SHA1 cfecfdc58d65 |
oot.us.10.z64 |
no | SHA1 ad69c91157f6 |
oot.us.11.z64 |
no | SHA1 d3ecb253776c |
oot.us.12.z64 |
no | SHA1 41b3bdc48d98 |
oot.jp.10.z64 |
no | SHA1 c892bbda3993 |
oot.jp.11.z64 |
no | SHA1 dbfc81f65518 |
oot.jp.12.z64 |
no | SHA1 fa5f5942b274 |
oot.us.gc.z64 |
no | SHA1 b82710ba2bd3 |
oot.us.mq.z64 |
no | SHA1 8b5d13aac69b |
oot.jp.gc.z64 |
no | SHA1 0769c8461542 |
oot.jp.gc.ce.z64 |
no | SHA1 2ce2d1a9f053 |
oot.jp.mq.z64 |
no | SHA1 dd14e143c427 |
soh/soh.o2r |
with the app | MD5 d3701e7ce3e1 |
soh/gamecontrollerdb.txt |
with the app | MD5 7d7b338604d8 |
In this collection: 0 in repo, 0 missing and 19 unsourceable.
Game data
Section titled “Game data”19 files
oot.pal.10.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL N64 1.0 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
328a1f1beba30ce5e178f031662019eb32c5f3b5 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:2-5
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.11.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL N64 1.1 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
cfbb98d392e4a9d39da8285d10cbef3974c2f012 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:6-9
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.gc.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL GameCube ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
0227d7c0074f2d0ac935631990da8ec5914597b4 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:10-13
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.mq.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL Master Quest ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
f46239439f59a2a594ef83cf68ef65043b1bffe2 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:14-17
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.gc.dbg.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL GameCube debug ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
cee6bc3c2a634b41728f2af8da54d9bf8cc14099 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:18-21
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.mq.dbg1.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 1 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
079b855b943d6ad8bd1eb026c0ed169ecbdac7da - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:22-25
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.mq.dbg2.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 2 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
50bebedad9e0f10746a52b07239e47fa6c284d03 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:26-29
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.pal.mq.dbg3.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, PAL Master Quest debug, dump 3 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
cfecfdc58d650e71a200c81f033de4e6d617a9f6 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:30-33
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.us.10.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, USA N64 1.0 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
ad69c91157f6705e8ab06c79fe08aad47bb57ba7 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:34-37
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.us.11.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, USA N64 1.1 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
d3ecb253776cd847a5aa63d859d8c89a2f37b364 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:38-41
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.us.12.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, USA N64 1.2 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
41b3bdc48d98c48529219919015a1af22f5057c2 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:42-45
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.10.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan N64 1.0 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
c892bbda3993e66bd0d56a10ecd30b1ee612210f - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:46-49
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.11.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan N64 1.1 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
dbfc81f655187dc6fefd93fa6798face770d579d - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:50-53
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.12.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan N64 1.2 ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
fa5f5942b27480d60243c2d52c0e93e26b9e6b86 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:54-57
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.us.gc.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, USA GameCube ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:58-61
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.us.mq.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, USA Master Quest ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
8b5d13aac69bfbf989861cfdc50b1d840945fc1d - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:62-65
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.gc.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan GameCube ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
0769c84615422d60f16925cd859593cdfa597f84 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:66-69
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.gc.ce.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan GameCube Collector's Edition ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73 - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:70-73
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
oot.jp.mq.z64 optional unsourceable game data
The Legend of Zelda: Ocarina of Time, Japan Master Quest ROM
- System: The Legend of Zelda: Ocarina of Time
- SHA1:
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f - Source:
soh/,soh/ Extractor/ Extract.cpp:81-103 docs/supportedHashes.json:74-77
- Not collectable: retail ROM the collection does not hold, and a same-named dump of another game must not stand in (acknowledged gaps)
Comes with the app
Section titled “Comes with the app”2 files
soh.o2r comes with the app game data
Port archive: shaders, textures and data added by the port
- Path:
soh/soh.o2r - System: The Legend of Zelda: Ocarina of Time
- Size: 4.3 MB
- SHA1:
313c3251edc2b345f04a34f80e09e7b27f0660ee - MD5:
d3701e7ce3e1f27572f697430212224e - Source:
soh/soh/OTRGlobals.cpp:273-274,soh/soh/OTRGlobals.cpp:465-483
- 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.
- Not collectable: ships inside the Ship of Harkinian release, and the collection does not hold it (acknowledged gaps)
gamecontrollerdb.txt comes with the app game data
SDL game controller mapping database
- Path:
soh/gamecontrollerdb.txt - System: The Legend of Zelda: Ocarina of Time
- Size: 578.5 KB
- SHA1:
155097429a2c74f9d8ac0ee30e6ee225f5917be5 - MD5:
7d7b338604d8da35cbd28638f0a134c3 - Source:
libultraship src/,libultraship/ libultra/ os.cpp:18-24 libultraship src/ship/ Context.cpp:510-525
- A load failure is logged and SDL keeps its built-in mappings. Hash of the copy in SoH-Ackbar-Delta-Win64.zip.
- Not collectable: ships inside the Ship of Harkinian release, and other revisions under the same name must not stand in (acknowledged gaps)
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start