Ship of Harkinian (Ocarina of Time) Wii U Port


This is a port of Ship of Harkinian to the Wii U. Ship of Harkinian is a PC port of Ocarina of Time allowing you to enjoy the game with modern controls, widescreen, high-resolution, and other great features!
Check out the awesome original project here!

Quick Start

  1. Download the latest release from the releases page and extract it to the root of your SD Card.
  2. Requires a supported copy of the game (See supported games below).
  3. Download the OTRGui BE version from here.
  4. Use OTRGui to create an oot.otr archive file.
  5. Copy the oot.otr file to the wiiu/apps/soh/ folder on your SD Card.
Nightly builds can be downloaded as artifacts from the actions tab (requires a GitHub account).

Supported Games

Ocarina of Time Debug (not Master Quest) (Recommended)
Build team: `[email protected]`
Build date: `03-02-21 00:49:18` (year-month-day)
sha1: cee6bc3c2a634b41728f2af8da54d9bf8cc14099

Ocarina of Time PAL GameCube
sha1: 0227d7c0074f2d0ac935631990da8ec5914597b4

:arrow: Downloads
:arrow: Source code

Configuration options

CVars

There are several Gameplay options which can be configured. To configure them create a file called cvars.cfg in wiiu/apps/soh/ and add the lines listed below, separated by a newline, using a text editor.

Game language
0 = English / 1 = German / 2 = French
set gLanguages 0

Text speed
Text speed can be between 1 and 5
set gTextSpeed 1

Enable rumble
set gRumbleEnabled 1

There are several more options which haven't been listed here yet :P

Controller mappings

A default mapping will be created after for each connected controller after launching the port at least once.

Customizing controller mappings

To edit controller bindings edit the shipofharkinian.ini file in wiiu/apps/soh/ using a text editor. [wiiu gamepad binding 1] is the gamepad binding, [wiiu procontroller binding 1] a binding for a pro controller in slot 1, [wiiu classiccontroller binding 2] a binding for a classic controller in slot 2, etc, you get the idea...

# C-Buttons
btn_cright
btn_cleft
btn_cdown
btn_cup
# Secondary C-Button mapping
btn_cright_2
btn_cleft_2
btn_cdown_2
btn_cup_2
# L and R buttons
btn_r
btn_l
# DPAD
btn_dright
btn_dleft
btn_ddown
btn_dup
# START button
btn_start
# Z utton
btn_z
# A and B buttons
btn_b
btn_a
# Analog stick
btn_stickright
btn_stickleft
btn_stickdown
btn_stickup

The following values can be used for bindings:
//! The A button.
32768
//! The B button.
16384
//! The X button.
8192
//! The Y button.
4096
//! The left button of the D-pad.
2048
//! The right button of the D-pad.
1024
//! The up button of the D-pad.
512
//! The down button of the D-pad.
256
//! The ZL button.
128
//! The ZR button.
64
//! The L button.
32
//! The R button.
16
//! The + button.
8
//! The - button.
4
//! The HOME button.
2
//! The SYNC button.
1
//! The right stick button.
131072
//! The left stick button.
262144
//! The TV button.
65536
//! Left on the right stick.
67108864
//! Right on the right stick.
33554432
//! Up on the right stick.
16777216
//! Down on the right stick.
8388608
//! Left on the left stick.
1073741824
//! Right on the left stick.
536870912
//! Up on the left stick.
268435456
//! Down on the left stick.
134217728

//! The up button of the D-pad.
1
//! The left button of the D-pad.
2
//! The ZR button.
4
//! The X button.
8
//! The A button.
16
//! The Y button.
32
//! The B button.
64
//! The ZL button.
128
//! Reserved.
256
//! The right trigger button.
512
//! The + button.
1024
//! The HOME button.
2048
//! The - button.
4096
//! The left trigger button.
8192
//! The down button of the D-pad.
16384
//! The right button of the D-pad.
32768
//! The right stick button.
65536
//! The left stick button.
131072
//! Up on the left stick.
2097152
//! Down on the left stick.
1048576
//! Left on the left stick.
262144
//! Right on the left stick.
524288
//! Up on the right stick.
33554432
//! Down on the right stick.
16777216
//! Left on the right stick.
4194304
//! Right on the right stick.
8388608

//! The up button of the D-pad.
1
//! The left button of the D-pad.
2
//! The ZR button.
4
//! The X button.
8
//! The A button.
16
//! The Y button.
32
//! The B button.
64
//! The ZL button.
128
//! The R button.
512
//! The + button.
1024
//! The HOME button.
2048
//! The - button.
4096
//! The L button.
8192
//! The down button of the D-pad.
16384
//! The right button of the D-pad.
32768
//! Left on the left stick.
65536
//! Right on the left stick.
131072
//! Down on the left stick.
262144
//! Up on the left stick.
524288
//! Left on the right stick.
1048576
//! Right on the right stick.
2097152
//! Down on the right stick.
4194304
//! Up on the right stick.
8388608

Example:
A mapping which would map the "A" button of a Pro Controller in slot 1 would look like this:
Code:
[wiiu procontroller binding 1]
btn_a=16

TODO

Known bugs and issues

Let me know if there are any bugs or issues while playing the game. If these are also present on the PC version of SoH, consider reporting them to the original project instead.

Missing features​

  • Gyroscope support
Credits

 
Last edited by GaryOderNichts,

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
30,073
Trophies
2
XP
19,741
Country
United States
I have an everdirve, and it uses eep, srm, and fla save files, so you have to add the right extension for the save to work. how you know is based on the size of the save. the everdrive itself will create the appropriate saves, this is for saves from the cartridges, I believe. all my saves work. not sure if the endianness is the same, but I think they were both big endian when I injected a ds save on the wiiu itself. I don't recall if it was from an emulator or a flash cart.
 
  • Like
Reactions: ploggy

ploggy

WAKA! WAKA!
Member
Joined
Aug 29, 2007
Messages
4,326
Trophies
1
XP
6,237
Country
United Kingdom
I have an everdirve, and it uses eep, srm, and fla save files, so you have to add the right extension for the save to work. how you know is based on the size of the save. the everdrive itself will create the appropriate saves, this is for saves from the cartridges, I believe. all my saves work. not sure if the endianness is the same, but I think they were both big endian when I injected a ds save on the wiiu itself. I don't recall if it was from an emulator or a flash cart.
Actually I think this maybe more likely to work.. https://github.com/DarkMatterCore/sbn64 :)
 

GaryOderNichts

Well-Known Member
OP
Member
Joined
Aug 9, 2018
Messages
616
Trophies
1
XP
3,726
Country
Germany
Actually I think this maybe more likely to work.. https://github.com/DarkMatterCore/sbn64 :)
I doubt this will work. All of the N64 save swappers will just swap all 32 bit words of the save file, since I guess some emulators store them swapped in sram. We'll need something which actually parses the OoT save file and handles byteswapping of the individual variables in the save file though.
 

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
30,073
Trophies
2
XP
19,741
Country
United States
I doubt this will work. All of the N64 save swappers will just swap all 32 bit words of the save file, since I guess some emulators store them swapped in sram. We'll need something which actually parses the OoT save file and handles byteswapping of the individual variables in the save file though.
I know that the wiiu doesn't do much with padding or the headers that some emulators or flash cards might do, so he could essentially delete that stuff. maybe compare each version if that stuff exists. I don't really know. strange that no one has created a tool for something like this.
 

Rgorgory

Well-Known Member
Member
Joined
Sep 23, 2017
Messages
133
Trophies
0
Age
38
XP
315
Country
Venezuela
Wish me Luck.
IMG_20220521_032725596_HDR.jpg

So far the Port works great. Minimal issues. Thanks again to all involved in this project.
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
974
Trophies
0
Age
34
XP
2,338
Country
Germany
strange that no one has created a tool for something like this.
To be fair I was assuming that SoH just uses the same save format as a N64. Turned out I was wrong with this. So no tools exist as the format didn't exist before SoH.

Anyway, @GaryOderNichts wants to look into creating such a tool. Also the question for a compatible format between all SoH ports is on the table (till now nobody replied to it through).

BTW: The table is SoH Discord. ;)
 

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
30,073
Trophies
2
XP
19,741
Country
United States
Wish me Luck.
View attachment 310824
So far the Port works great. Minimal issues. Thanks again to all involved in this project.
I got stuck in there for a while in the nso version, but I figured it out eventually. it's not really that bad once you find where to go, but I must say, shadow link was a major pita. I was just mashing buttons hoping to kill him, which I did eventually.
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
974
Trophies
0
Age
34
XP
2,338
Country
Germany
I was just mashing buttons hoping to kill him, which I did eventually.
The trick is to _not_ use Z targeting. As soon as you press the Z button to target him he'll be faster than you (jumping onto your sword and stuff like that). Or simply use the biggorons sword.
 
  • Like
Reactions: godreborn

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
30,073
Trophies
2
XP
19,741
Country
United States
The trick is to _not_ use Z targeting. As soon as you press the Z button to target him he'll be faster than you (jumping onto your sword and stuff like that). Or simply use the biggorons sword.
I actually don't have the biggerons sword. not sure how to get it, since I've been playing without a guide. missing tons of stuff, I think. I know I'm missing one bottle, many heart pieces, a few upgrades, and that sword.
 
  • Like
Reactions: Lostbhoy

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
974
Trophies
0
Age
34
XP
2,338
Country
Germany
I actually don't have the biggerons sword
That's no prob as this is an optional item not needed to end the game.
I've been playing without a guide
So you're playing it as it's meaned to get played (the whole game is made for you to explore it slowly. There's a reason they tell you to talk with every NPC multiple times, for example. All the people telling this game is too short are just playing it wrongly) and how we played it in our childhoods on N64s (there was no such things as googling a guide back in the days. All we had was thin hints from gaming magazines and exchanging experiences at the scools playground). ;)
 

Lostbhoy

HEY YOU GUYS!
Member
Joined
Aug 23, 2009
Messages
1,300
Trophies
1
Location
Scotland
XP
2,983
Country
United Kingdom
So you're playing it as it's meaned to get played (the whole game is made for you to explore it slowly. There's a reason they tell you to talk with every NPC multiple times, for example. All the people telling this game is too short are just playing it wrongly) and how we played it in our childhoods on N64s (there was no such things as googling a guide back in the days. All we had was thin hints from gaming magazines and exchanging experiences at the scools playground). ;)
Exactly this!! Coupled with remembering stuff from back in the day, I'm enjoying slowly going round it again and finding forgotten stuff!
 

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
30,073
Trophies
2
XP
19,741
Country
United States
Yeah, can't beat Ganon's second form. I've been playing all new games without a guide until I beat it and everything I uncover like optional bosses. I might use a guide after that, but I'm hesitant to use one on odyssey. I managed to get 843 power moons on my own, but I would like to get the rest someday.
 

Rgorgory

Well-Known Member
Member
Joined
Sep 23, 2017
Messages
133
Trophies
0
Age
38
XP
315
Country
Venezuela
I just passed the game 100%, all skulltulas, all submissions, all heart containers
There are some things i might want to point out:
* The game has Just a few acceptable visual glitches on pause menu sometimes.
* In Child time: Pierre the Scarecrow crashed the game after recording a song due to cvars.cfg (quick solution: move away the cvars.cfg from the game folder, record the song, and copy cvars.cfg back)
* Frog's song was so damn fast to catch, i had to find the sequence on google to be able to keep up with them, If by somehow you can make a fix to make it slower, that would be great.
* At the ending scenes, Epona gets stuck at the right corner of the screen
* IMPORTANT: Epona stops showing in Hyrule Field after you call her with the Ocarina. You can hear her, but she doesn't show up. Solution so far is to call her from Gerudo Valley, or Lake Hylia and then she arrives at your location without any problem. I had to unmount her at entry of Kakariko, or Hyrule Castle, and she stays right there when i go out. But if I call her when she is out of sight she never shows up and literally disappear from Hyrule Field.
* 23 years later, and i still get goosebumps when i hear the reDead's screaming
 

drag4you

Active Member
Newcomer
Joined
Mar 27, 2020
Messages
34
Trophies
0
Age
27
XP
819
Country
Mexico
I just passed the game 100%, all skulltulas, all submissions, all heart containers
There are some things i might want to point out:
* The game has Just a few acceptable visual glitches on pause menu sometimes.
* In Child time: Pierre the Scarecrow crashed the game after recording a song due to cvars.cfg (quick solution: move away the cvars.cfg from the game folder, record the song, and copy cvars.cfg back)
* Frog's song was so damn fast to catch, i had to find the sequence on google to be able to keep up with them, If by somehow you can make a fix to make it slower, that would be great.
* At the ending scenes, Epona gets stuck at the right corner of the screen
* IMPORTANT: Epona stops showing in Hyrule Field after you call her with the Ocarina. You can hear her, but she doesn't show up. Solution so far is to call her from Gerudo Valley, or Lake Hylia and then she arrives at your location without any problem. I had to unmount her at entry of Kakariko, or Hyrule Castle, and she stays right there when i go out. But if I call her when she is out of sight she never shows up and literally disappear from Hyrule Field.
* 23 years later, and i still get goosebumps when i hear the reDead's screaming
I just played the game and I just got to the part when you start playing with adult link. My game didnt crash with
Pierre and Epona does appear in hyrule field and I'm using the cvar codes that V10lator posted here:
No. Available langages are english (0), german (1) and french (2). You can change language by setting gLanguages at the cvars.cfg file like described in the OP.

//EDIT: To all: I made a cvars.cfg showing all available options at the time of writing and setting them to values I like:
Code:
gDisableLOD = 0
gDebugEnabled = 0
gPauseLiveLink = 1
gMinimalUI = 0
gRumbleEnabled = 1
gUniformLR = 1
gNewDrops = 1
gDekuNutUpgradeFix = 1
gTwoHandedIdle = 1
gVisualAgony = 0
gLanguages = 0
gTextSpeed = 3
gDpadPauseName = 1
gDpadOcarinaText = 1
gDpadShop = 1
gFixDungeonMinimapIcon = 1
gTextureFilter = 0
Explaining the values:

gDisableLOD is for disabling level of detail reductions. DO NOT ENABLE as this is currently broken!
gDebugEnabled enables debugging functionality. You don't need that.
gPauseLiveLink animates Link at the pause screen instead of showing a static image.
gMinimalUI enables some form of minimal UI. I never tested this and guess you don't want this.
gRumbleEnabled enables rumble. Should work nicely with latest nightly.
gUniformLR fixes a cosmetic issue at the pause screen.
gNewDrops replaces low poly drops with the 3D models you see when taking something out of a chest.
gDekuNutUpgradeFix fixes a game bug where you can't ugrade your deku bag anymore.
gTwoHandedIdle better idle animation when holding a two hand weapon.
gVisualAgony visualises the stone of agony. You might want to enable that in case you have rumble disabled.
gLanguages sets the language, see above.
gTextSpeed 3x text speed (like in OOT 3D).
gDpadPauseName allows you to navigate the pause menu with the dpad.
gDpadOcarinaText allows you to play the ocarina notes with the dpad.
gDpadShop allows you to navigate through shop items with the dpad.
gFixDungeonMinimapIcon fixes dungeon minimap icon missplacement.
gTextureFilter isn't used yet but will enable 3 point texture filtering in the future. 0 = three point, 1 = 4 point. Right now it's forced to 4 point / the setting is ignored.
but i created the otr using this Gui from here:
@T00nist8 and everyone else having issues with OTRGui, please try if the attached build fixes the issues you were having.
The Otr file that was created from this Gui weights a little bit more than the one created from the Github. I didn't test the frogs need to beat the forest temple i guess.

Also, King Dodongo had weird glitchy eyes some numbers appear, the Armos when he jumps he has some snowy or white dots that falls from him but only when he jumps and the Goron's have some weird animation at the start of them getting up like they make like a subtle 360 from down to up and then the animation looks normal.
 
Last edited by drag4you,
General chit-chat
Help Users
    KenniesNewName @ KenniesNewName: Primary care is already licensed to touch penises