This time we’ll use the decompilation of Zelda: Ocarina of Time for N64 to install the game, allowing us to enjoy it at 60FPS along with many other options.
Table of Contents:
Installation:
There is a
precompiled binary available
for Linux, so we just need to make sure we have one of the
supported ROMs
.
Download the
binary
from the project’s GitHub and unzip it:
unzip SoH-Blair-Foxtrot-Linux.zip
Check the SHA1 hash of the ROM:
sha1sum ~/PAL\ 1.1.z64
cfbb98d392e4a9d39da8285d10cbef3974c2f012 /home/kr0m/PAL 1.1.z64
It is indeed one of the supported versions, so we move the ROM to the directory where we unzipped the binary:
mv ~/PAL\ 1.1.z64 ./
Run the binary:
./soh.appimage
In this screenshot you can see the game — fullscreen mode is fully supported.
By the way, the Xbox controller works perfectly.
Building:
If the precompiled binary gives any issues, we can always build the software ourselves .
Install the dependencies as indicated in the documentation :
apt-get install gcc g++ clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev libopus-dev libopusfile-dev
Clone the repository:
git clone https://github.com/HarbourMasters/Shipwright.git
cd Shipwright
git submodule update --init
Keep in mind that only certain ROM versions are supported.
Check the SHA1 hash of the ROM:
sha1sum ~/PAL\ 1.1.z64
cfbb98d392e4a9d39da8285d10cbef3974c2f012 /home/kr0m/PAL 1.1.z64
It’s supported, so move the ROM to the directory where you cloned the repository:
mv ~/PAL\ 1.1.z64 ./
Generate the Ninja project:
cmake -H. -Bbuild-cmake -GNinja
On my Debian 12 system, an error appeared due to the CMake version:
PaperStreet $ ~/Shipwright> cmake -H. -Bbuild-cmake -GNinja
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.26.0 or higher is required. You are running version 3.25.1
The cleanest solution is to install a newer version from the backports:
echo "deb http://deb.debian.org/debian bookworm-backports main" | tee /etc/apt/sources.list.d/backports.list
apt update
apt -t bookworm-backports install cmake
Regenerate the Ninja project:
rm -rf build-cmake
cmake -H. -Bbuild-cmake -GNinja
Generate the soh.otr file:
cmake --build build-cmake --target GenerateSohOtr -j8
Build the project:
cmake --build build-cmake -j8
Run the binary:
./build-cmake/soh/soh.elf
When it asks to generate the OTR, choose yes:
|
|
|
It will ask if you want to extract any other ROM, choose no:
Here’s a screenshot of the game — again, fullscreen is supported.
Again, the Xbox controller works perfectly.
Master Quest:
The GameCube and Nintendo 3DS versions included a mode called Master Quest with modified dungeons, improved graphics, and a mirrored world. Essentially, it was the same game with a few tweaks.
In our case, this only applies to the GameCube version, since according to the list of
supported ROMs
, only N64 and GameCube versions are supported — the latter being the only one that includes Master Quest.
The GameCube game was distributed on two discs — one for the vanilla game and another for Master Quest. To play this mode, we’ll need the ROM associated with the latter:
"name": "PAL MQ",
"sha1": "f46239439f59a2a594ef83cf68ef65043b1bffe2"
The process is exactly the same as previously described, just make sure to copy both ROMs.
Check the SHA1 hash of the ROMs:
sha1sum ~/PAL\ 1.1.z64
sha1sum ~/Zelda,\ The\ Legend\ of\ -\ Ocarina\ of\ Time\ Master\ Quest\ Assets\ for\ the\ Ship\ of\ Harkinian\ -\ PAL\ GameCube.z64
cfbb98d392e4a9d39da8285d10cbef3974c2f012 /home/kr0m/PAL 1.1.z64
f46239439f59a2a594ef83cf68ef65043b1bffe2 /home/kr0m/Zelda, The Legend of - Ocarina of Time Master Quest Assets for the Ship of Harkinian - PAL GameCube.z64
Move the ROMs to the directory where the
binary resides
or where the
repository was cloned
:
mv ~/PAL\ 1.1.z64 ./
mv ~/Zelda,\ The\ Legend\ of\ -\ Ocarina\ of\ Time\ Master\ Quest\ Assets\ for\ the\ Ship\ of\ Harkinian\ -\ PAL\ GameCube.z64 ./
When you access the game, you’ll see that an additional game mode is now available:
|
|
Advanced Options:
This port offers far more configuration options than simple emulation. Below are some of the most notable ones in my opinion.
Camera control:
Esc: Settings -> Controls -> Buttons -> C(Up/Down/Left/Right): D-Pad(Up/Down/Left/Right)
Esc: Settings -> Controls -> Camera Controls -> Third-Person Camera -> Free Look
|
|
Play the ocarina using the D-pad:
Esc: Settings -> Controls -> Ocarina Controls -> Dpad Ocarina Playback
Assign tunics and boots to the C-buttons:
Esc: Enhancements -> Items -> Equipment -> Assignable Tunics and Boots
Resolution:
Esc: Settings -> Graphics -> Internal Resolution
Anti-aliasing:
Esc: Settings -> Graphics -> Anti-aliasing(MSAA)
FPS:
Esc: Settings -> Graphics -> Current FPS: 60
Esc: Settings -> Graphics -> Match Refresh Rate
Auto save:
Esc: Enhancements -> Quality of Life -> Saving -> Autosave
Esc: Enhancements -> Quality of Life -> Saving -> Remember Save Location
Bug fixes:
Esc: Enhancements -> Fixes
Cosmetics:
Esc: Enhancements -> Cosmetics Editor
Cheats:
Esc: Enhancements -> Cheats
Extra game modes:
Esc: Enhancements -> Extra Modes
Beta levels, developer test environments:
Esc: Cheats -> Beta Quest -> Enable Beta Quest