2b78bea475
* Revert changes to GetItemFromGet
* Fixes Ganon's Boss Key shuffled while regular boss Keys aren't.
* Enum + combo box
* Add obtainability checks correctly
* combobox title rename + no number tracking
* Fix repeatable purchases and bottles rendering incorrectly
* Move shopsanity option in GUI
* Struct instead of ImVec + basic comportment for all case
* Attempt to fix odd build issue
* Cast randoGet for ganons boss key
* Remove redundancy in KD room
* Update logic Cvar names
* Fix Ganons Trials coming from old save files. Fixes #1365
* Fixes crash when entering Ganon's Castle lobby on linux.
* Makes `Item_Give` safe to use with a NULL globalCtx.
This should allow it's use for giving items to Link's Pocket
during rando save initialization.
* Converts Song from Impa to use `Item_Give`
* Adds more options for Link's starting item.
* Removes unneeded `GiveLinkItem` functions.
* and make it build
* bring back new rando dropdown
* gSaveContext access in GameMenuBar.cpp
* Implement Skip Scarecrow's Song
* Reimplement progressive Bombchus
* Rando-next: Deku Nut and Seed ammo gives a blue rupee
Fixes #1390
* Fixes Link starting with BGS
* Persist item tracker notes
* Adjust Hooks include
* Use SohImGui::RequestCvarSaveOnNextTick
* Fix issues from LUS refactor
* Fix for overriding deku scrub messages
* Fix mistake from merge
oops
* Restore checkboxes to enhancements menu
These got lost in the merge
* Update location access logic
Including MQ locations in Spirit and GC now
* Implement rando bombchu drops
* Missing break
* Simplify mudwall collision check
There was no need to have a second collider specifically for Ice Arrow hits
* Update settings.cpp
* Simplify mudwall collision check
* Restore checkboxes in menu
Accidentally lost these during merge
* Clean up bool
* Update logic Cvar name
* Fixed capacity on ammmo tracking
* Fix for beans obtainability
* Hook into file delete and clear notes
* Incorporate magic arrows in rando settings
* Update tooltip
To inform the player that they might have to reload the room if they're enabling this for the first time.
* Update tooltip
* Add line break in tooltip
* Tooltip wording + line break
* tweak on main logic
* All color logic for all types
* Fix: changes to please new LUS
* Ensure itemTrackerNotes vector is not fully empty
* Implement's Tycoon Wallet.
* Refactor DrawItemCount and Use EnhancementCombobox for tracker capacity options
* small tweaks and rename
* always display XX/YY when in ammo/capacity mode
* Move all merchant messages to be generated on file load
* added hovertext for the number display
* Swap german and french translations for shop messages
* Set key colors to be on by default
* Add another flag to skip mask shop
* Fix Sold Out bug
* Fix gerudo keys, add disabled checkbox
* tooltip line break
* Add trials required and merchant prices to save file instead of loading from active spoiler log
* Remove trialsRequired persisting in save manager
* Adds slotIndex to girla (shop item actor) and uses that for IdentifyShopItem.
* Fix issue when merchantPrices is empty
* Fix for a single zeroed merchantPrice entry
* Fix #1417
* Implements items selling out and fixes issues with purchasing some items.
* Fixes order of operations so Rupees will be spent.
* Fixes sold out items not getting overwritten by the randomized info.
* Clarify var names and comments
Also preserve chain platform cutscene in spirit based on Link's position
* Remove !=0 from cvar check
* Clarify var names and comments
* Rename randomizerMerchantPrices to merchantPrices
* Handle shop items in SaveManager
* Fix merge mistake
* Base whats in the bazaar shop on entranceIndex instead of age
* Tidy up chain platform cutscene check
* Fix merge error
Didn't mean to have Zhora changes in here yet
* Use 3drando item table for parsing spoiler names
* Use another nested method instead of one at the top level to fetch the table
* Add missing newline
* Remove log
* Respect custom draw functions
* Fix issues with rendering songs
* Fix localized item names for shopsanity
* Implements a larger array of Sprites for the Icon Hash.
* Uses the hash instead of seed for spoilerfile name and icons.
* Removes some unused functions and variables in `spoiler_log.cpp`
* Prevents leading 0s added to hash from being in file name
* Changes filename format to icon indexes separated by dashes
* Hopefully makes Jenkins happy
* Hopefully makes Jenkins happy
* [Rando] Child Gerudo Fortress 37th Heartpiece randomized
Fixes #1071
* Add descriptions to save editor flags editor, and added randomizer flags (#1386)
* Add descriptions to save editor flags editor, and added randomizer flags
* Hide randomizer flags when not on a randomizer save
* Move flag descriptions to header file
* Update soh/soh/Enhancements/debugger/debugSaveEditor.h
* Update soh/soh/Enhancements/debugger/debugSaveEditor.h
* Fix merge error
* crash on pause menu on linux (only in appimage)
Fixes #1437
* Applies fix to Song from Impa as well.
* Allow buying tunics as child when shopsanity is on
* Fix for custom draw methods overriding sold out sign
* Simplify logic around shopsanity and fix some issues
* Fix dungeon reward stone rotation and add particles
* Fix some issues with ice traps
* Fix adult wallet having its own max capacity
* Fix amount of keys given for BotW
* format
* Use EnGirlAShopItem enum instead of raw hex values
* [#1434] Renders non-warp songs more consistently with warp songs
* A few changes around merchant messages
* Various changes from PR feedback
* Rando: Junk Hint missing french translation
* Typo
* Fix free scrub being at 0 instead of TEXT_SCRUB_RANDOM
* Replace magic numbers in message handler
* Update soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Fix BGS softlock for shopsanity
* Support tycoon wallet on tracker
* Revert "Fix BGS softlock for shopsanity"
This reverts commit
|
||
---|---|---|
CMake | ||
libultraship | ||
OTRExporter | ||
OTRGui | ||
scripts | ||
soh | ||
StormLib | ||
ZAPDTR | ||
.gitignore | ||
BUILDING.md | ||
CMakeLists.txt | ||
Dockerfile | ||
Jenkinsfile | ||
README.md |
Welcome to the Ship of Harkinian!
A PC port of OoT allowing you to enjoy the game with modern controls, widescreen, high-resolution, gyroscopy and other great features! Setup is simple, let's get started!
The Ship does not include assets and as such requires a prior copy of the game to play.
Quick Start
- Download The Ship of Harkinian from Discord.
- Requires a supported copy of the game (See supported games below).
- Use the OTRGui to generate an
oot.otr
archive file. - Launch
soh.exe
Supported Games
Ocarina of Time Debug PAL GC (not Master Quest)
Currently the recommended option
Build team: `zelda@srd022j`
Build date: `03-02-21 00:49:18` (year-month-day)
sha1: cee6bc3c2a634b41728f2af8da54d9bf8cc14099
Ocarina of Time PAL GameCube
May lead to crashes and instability
sha1: 0227d7c0074f2d0ac935631990da8ec5914597b4
Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
Additional Setup Information
The Ship of Harkinian uses a proprietary versioning system consisting of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the addition of many new features and bug fixes. The code word represents a minor release version which increments with small updates mainly comprised of bug fixes. For example, DECKARD ALFA
.
Windows Rom Extraction
- Open OTRGui.exe, and select one of the supported roms listed above, to generate the
oot.otr
archive file. - If a second button already exits then
oot.otr
already exists. To prevent overwriting the oldoot.otr
use this button to choose a new game directory. The new directory must not already contain anoot.otr
to prevent an error. - When the process completes, place
oot.otr
besidesoh.exe
if it is not already.
This packaging process can take up to 5 minutes.
Close the OTRGui when the Done!
message appears.
If you get another message, then you might have selected the wrong rom. Make sure to use a rom consistent with the above checksum.
Linux Rom Extraction
- Place one of the supported roms in the same folder as the appimage.
- When you run the soh appimage, it should begin generating the
oot.otr
archive file. - When the process completes, place
oot.otr
in the same folder as the appimage, if it is not already, then run the appimage.
The packaging process can take up to 5 minutes.
If you get any errors, then you might have selected the wrong rom. Make sure to use a rom consistent with the above checksum.
MacOS Rom Extraction
- Run
soh.app
, and when prompted, select one of the supported roms listed above. - 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.
The packing process can take up to 5 minutes.
If you get an error saying Incompatible ROM hash
, you have selected the wrong rom, make sure the checksum matches one of the ones listed above.
Nintendo Switch Rom Extraction
- Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the
oot.otr
archive on that platform. - Place the
.nro
and theoot.otr
archive into a folder calledsoh
in your Switch folder on your Switch
Nintendo Wii U Rom Extraction
- Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the
oot.otr
archive on that platform. - Copy the
.rpx
and theoot.otr
archive towiiu/apps/soh
If you still cannot get the tool to work, join our Discord Server and ask for help in the #support
text channel. Keep-in-mind that we do not condone piracy in any way.
Running The Ship of Harkinian
Launch the game. If the window immediately closes, or if there are visual artifacts, you may have selected the wrong rom in the OTRGui tool.
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 |
F10 | Fullscreen (OpenGL) |
Alt+Enter | Fullscreen (DirectX) |
Ctrl+R | Reset |
Currently, DirectX 11 and OpenGL are supported. Change the renderer by opening the shipofharkinian.json
configuration file in notepad and add sdl
to the quotes in "GfxBackend": ""
for OpenGL or leave blank for DirectX.
Take The Survey
Want to use cartridge readers in tandem with the OTRGui? Take this survey to increase chances of this becoming reality.
Discord
Official Discord: https://discord.com/invite/BtBmd55HVH
Building The Ship of Harkinian
Refer to the building instructions to compile SoH.
Troubleshooting The Exporter
- Confirm that you have an
/assets
folder filled with XMLs in the same directory as OTRGui.exe - Confirm that
zapd.exe
exists in the/assets/extractor
folder
Nightly Builds
Nightly builds of Ship of Harkinian are available here
The Harbour Masters Are...
Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer
Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer
Louist103 | Developer - Save System Programmer and General Programmer
Emil | Developer - Fast3D Programmer
m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer
MelonSpeedruns | Developer - General Programmer
Rozlette | Developer - General Programmer
JoshDuMan | Developer - General Programmer
KiritoDev/Lywx | Developer - General Programmer
Theo3 | Developer - General Programmer
Random06457 | Developer - Linux Build
Special Thanks
Decomp & ZAPD | Made this project even possible in the first place!
MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation.
Rrrrry123 | Speedbunner, encouragement, and community moderation
Fierce deity | Encouragement and community moderation
mzxrules | For his contributions to decomp
zel. | For his contributions to decomp
Aloxado | Developer - General Programmer
MegaMech | Developer - General Programmer
Revo | Tester - GCC support and General Testing
zfg | Tester - General Testing
Horseless Headman | Tester - General Testing
Steven Pritchett | Tester - General Testing
Trenton May | Tester - General Testing
Zeldaboy14 | Tester - General Testing, encouragement, and community moderation
Koby Howell | Tester - General Testing
Logg | Tester - General Testing
Taylor Daley | Graphic Design
Can't Sleep | Graphic Design
Video Credits
Kenix | Producer / Writer
briaguya | Writer
rainbow_fash | Executive Producer
ReveriePass | Editor
MicTheMicrophone | Gwonam / The King
Amphibibro | Link
AceHeart | Zelda