This page looks best with JavaScript enabled

Zelda: Ocarina of Time Native on Linux

 ·  🎃 kr0m

This time we are going to use the decompilation of the Zelda: Ocarina of Time N64 game to install the game, which will allow us to enjoy the title at 60FPS.

Index:


Installation:

There is a precompiled binary version for Linux, so we just need to make sure we have one of the supported ROMS .

We download the binary from the project GitHub and extract it:

unzip SoH-Blair-Foxtrot-Linux.zip

We check the SHA1 hash of the ROM:

sha1sum ~/PAL\ 1.1.z64
cfbb98d392e4a9d39da8285d10cbef3974c2f012  /home/kr0m/PAL 1.1.z64

Indeed, it is one of the supported versions, so we move the ROM to the directory where we extracted the binary:

mv ~/PAL\ 1.1.z64 ./

We run the binary:

./soh.appimage

In this screenshot you can see the game; of course, you can play it in fullscreen.

By the way, the Xbox controller works perfectly.


Compilation:

If the precompiled binary causes any problems, we can always compile the software ourselves .

We 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

We clone the repository:

git clone https://github.com/HarbourMasters/Shipwright.git
cd Shipwright
git submodule update --init

We must keep in mind that only certain ROM versions are supported.

We check the SHA1 hash of the ROM:

sha1sum ~/PAL\ 1.1.z64
cfbb98d392e4a9d39da8285d10cbef3974c2f012  /home/kr0m/PAL 1.1.z64

Indeed, it is one of the supported versions, so we move the ROM to the directory where we cloned the repository:

mv ~/PAL\ 1.1.z64 ./

We generate the Ninja project:

cmake -H. -Bbuild-cmake -GNinja

On my Debian12 system it presented problems 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 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

We rerun the generation of the Ninja project:

rm -rf build-cmake
cmake -H. -Bbuild-cmake -GNinja

We generate the soh.otr file:

cmake --build build-cmake --target GenerateSohOtr -j8

We compile the project:

cmake --build build-cmake -j8

We run the binary:

./build-cmake/soh/soh.elf

When it asks us whether to generate the OTR, we answer yes:

It will ask if we want to extract any other ROM, we answer no:

In this screenshot you can see the game; of course, you can play it in fullscreen.

By the way, the Xbox controller works flawlessly.