1cc3201c19
* Fixes some IDE warnings/linter-suggestions in context.* Most of these come from CLion Nova. Some of these may be controversial, such as the if-init-statement related ones. Most of them should not be controversial though, like replacing C-style casts with static casts. * Fixes IDE warnings/Linter suggestions in option.* * Fixes some IDE warnings/linter suggestions. Left a few about "Template Arguments can be deduced", and a "Redundant static_cast" for the sake of clarity. * Fixes some IDE warnings/linter suggestions in item.* * Fixes some IDE warnings/linter suggestions in location.* * Fixes some IDE warnings/linter suggestions in item_location.* * Fixes some IDE warnings/linter suggestions in item_override.* * Fixes some IDE warnings/linter suggestions in dungeon.* * Fixes some IDE warnings/linter suggestions in trial.* * Use std::ranges::generate rather than manually looping. * Fixes a typo * Changes a TODO comment with more info. Previously this TODO statement was a question of whether or not we ever want to not output a spoiler log. Eventually we may want different amounts or types of data to be output when generating a seed according to certain settings. For instance, maybe we want a human-readable spoiler log, that has item locations and hint content without the formatting info. Maybe we want a "Plandomizer File", which is that but the hint strings include formatting info so that the formatting/colors can be changed, and eventually we may want to let cosmetic info be specified in there as well. Or maybe we just want a Race/Patch file that just has the seed and settings, for Race files we could also specify non-rando settings that should be locked to certain values. Or maybe want one of each. All of that is stuff that should at least start being handled at the location of this TODO statement. * Fixes a scope issue Windows didn't catch * Removes std::ranges::generate as apparently AppleClang can't do it. * Removes std::ranges::any_of as apparently AppleClang can't do it. * Re-adds what I thought was an unused include. * An attempt to fix the macos construct_at error |
||
---|---|---|
.devcontainer | ||
.github/workflows | ||
CMake | ||
docs | ||
libultraship@317edd72cc | ||
OTRExporter@f1bc0a7268 | ||
scripts | ||
soh | ||
ZAPDTR@9b8e224dac | ||
.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 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 |
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
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.
- Windows
- macOS
- Linux (performance) (requires
glibc 2.35
or newer, but will be more performant than the compatibility build.) - Linux (compatibility) (compatible with most Linux distributions, but may not be as performant as the performance build.)
- Switch
- Wii U