![]() * * fixes softlock when talking to Mido without Kokiri Emerald after killing Gohma * * moved scene check to hook * moved vanilla conditioon into GameInteractor_Should * * corrected hook condition * removed 'this' * * reverted GameInteractor and hook_handlers * changed actor to use existing hook * * updated kokiri emerald conditions * * missed parentheses * * Overworld pretty much done. * Known issue with Market Night + 2 bushes in KF * Known issue with Adult bush in ZR * * fixed locations post-merge * * renamed option and types to 'GRASSANITY' * changed grassnity to be a combobox option * added first 5 deku tree locations * * color is a sickly green when containing a check * added ZR 14 (adult only bush on the platform, not the same?) * * forgot to rename the files to grassanity * updated draw method to fix regrowing grass * Removed old WIP locacc files * * removed comments in bush actor * added rest of Deku Tree plus MQ * Added DC + MQ * Fixed DC incorrect pos value on 1 loc * JJB done minus after big octo * Added BotW + MQ locs * WIP grottos * Grottos done * Workaround to allow market grass during night * Seperated the 2 KF bushes into 4 checks * Hints and additional formatting * Slightly less ghastly color * Corrected the 2 JJB locs * * Renaming and removal of some locs. * Restructure in z_en_kusa.c to leave vanilla code alone. * Formatting. * * see previous (forgot to stage woops) * * Clear grassIdentity on item drop * Added check for RC on RandoDraw function Results in no extra dupe drops, and instantly correct the color of the grass when cut instead of on collecting the item. * * fixed dupe location spoiler names which caused occasional crash when writing spoiler log * * reverse should * * fixed faulty locations * * corrected KAK location names and some formatting * * Fixed market bushes by tree not working at night * * merged ZR near PoH grass into a single loc * * Changed to ShipInit (might be missing something?) * Corrected Should in z_en_kusa.c to use original draw func when setting is Off * * Renaming to Shuffle Grass * * minor fix * * keyboard fail lol * * suggestions * * removed unused function * * move grass locations into ShuffleGrass * move grass GameInteractor into GIVanillaBehavior * minor fixes * * pre-removed locs from dungeon.cpp * * pre-remove from context.cpp * * re-added Grass to context * * added Dana's amazing custom bush models * using CSMC to display flowers based on "contents" * * added Dana's grass models * refactor to lessen the clutter in the switch * * removed fairy case * Added back missing Deku Tree locations * formatting * Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp Co-authored-by: Philip Dubé <serprex@users.noreply.github.com> * re-added suggestion from previous * removed wrong line >.> --------- Co-authored-by: Philip Dubé <serprex@users.noreply.github.com> |
||
---|---|---|
.devcontainer | ||
.github/workflows | ||
.vscode | ||
CMake | ||
docs | ||
libultraship@7e40f9de1b | ||
OTRExporter@8f71672901 | ||
scripts | ||
soh | ||
ZAPDTR@04d42249d2 | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
copy-existing-otrs.cmake | ||
Dockerfile | ||
README.md |
Website
Official Website: https://www.shipofharkinian.com/
Discord
Official Discord: https://discord.com/invite/shipofharkinian
If you're having any trouble after reading through this README
, feel free to ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
Quick Start
The Ship does not include any copyrighted assets. You are required to provide a supported copy of the game.
1. Verify your ROM dump
You can verify you have dumped a supported copy of the game by using the compatibility checker at https://ship.equipment/. If you'd prefer to manually validate your ROM dump, you can cross-reference its sha1
hash with the hashes here.
2. Download The Ship of Harkinian from Releases
3. Launch the Game!
Windows
- Extract the zip
- Launch
soh.exe
Linux
- Place your supported copy of the game in the same folder as the appimage.
- Execute
soh.appimage
. You may have tochmod +x
the appimage via terminal.
macOS
- Run
soh.app
. When prompted, select your supported copy of the game. - You should see a notification saying
Processing OTR
, then, once the process is complete, you should get a notification sayingOTR Successfully Generated
, then the game should start.
Nintendo Switch
- Run one of the PC releases to generate an
oot.otr
and/oroot-mq.otr
file. After launching the game on PC, you will be able to find these files in the same directory assoh.exe
orsoh.appimage
. On macOS, these files can be found in/Users/<username>/Library/Application Support/com.shipofharkinian.soh/
- Copy the files to your sd card
sdcard
└── switch
└── soh
├── oot-mq.otr
├── oot.otr
├── soh.nro
└── soh.otr
- Launch via Atmosphere's
Game+R
launcher method.
4. Play!
Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
Configuration
Default keyboard configuration
N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad |
---|---|---|---|---|---|---|---|
Keyboard | X | C | Z | Space | WASD | Arrow keys | TFGH |
Other shortcuts
Keys | Action |
---|---|
F1 | Toggle menubar |
F5 | Save state |
F6 | Change state |
F7 | Load state |
F9 | Toggle Text-to-Speech (Windows and Mac only) |
F11 | Fullscreen |
Tab | Toggle Alternate assets |
Ctrl+R | Reset |
Project Overview
Ship of Harkinian (SOH) is built atop a custom library dubbed libultraship (LUS). Back in the N64 days, there was an SDK distributed to developers named libultra; LUS is designed to mimic the functionality of libultra on modern hardware. In addition, we are dependant on the source code provided by the OOT decompilation project.
In order for the game to function, you will require a legally acquired ROM for Ocarina of Time. Click here to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .otr archive file which the code uses.
Graphics Backends
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the Settings
menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the shipofharkinian.json
file by finding the line gfxbackend:""
and changing the value to sdl
for OpenGL. DirectX 11 is the default on Windows.
Custom Assets
Custom assets are packed in .otr
archive files. To use custom assets, place them in the mods
folder.
If you're interested in creating and/or packing your own custom asset .otr
files, check out the following tools:
Development
Building
If you want to manually compile SoH, please consult the building instructions.
Playtesting
If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.
Further Reading
More detailed documentation can be found in the 'docs' directory, including the aforementioned building instructions.
