This page looks best with JavaScript enabled

Zelda: Majora's Mask Native on Linux

 ·  🎃 kr0m

This time we’re going to use the decompilation of the N64 game Zelda: Majora’s Mask to install it, 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 .

Download the binary from the project’s GitHub and extract it:

unzip 2Ship-Rena-Alfa-Linux.zip

Check the SHA1 hash of the ROM:

sha1sum ~/Legend\ of\ Zelda,\ The\ -\ Majora\'s\ Mask\ \(USA\).z64
d6133ace5afaa0882cf214cf88daba39e266c078  /home/kr0m/Legend of Zelda, The - Majora's Mask (USA).z64

Since it’s one of the supported versions, move the ROM to the directory where we extracted the binary:

mv ~/Legend\ of\ Zelda,\ The\ -\ Majora\'s\ Mask\ \(USA\).z64 ./

Run the binary:

./2ship.appimage

This screenshot shows the game; of course, it can be played in full screen.

By the way, the Xbox controller works wonderfully.


Compilation:

If the precompiled binary gives any issues, we can always compile it 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 libboost-dev libopengl-dev

Clone the repository:

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

Keep in mind that only certain ROM versions are supported.

Check the SHA1 hash of the ROM:

sha1sum ~/Legend\ of\ Zelda,\ The\ -\ Majora\'s\ Mask\ \(USA\).z64
d6133ace5afaa0882cf214cf88daba39e266c078  /home/kr0m/Legend of Zelda, The - Majora's Mask (USA).z64

Since it’s one of the supported versions, move the ROM to the directory where we extracted the binary:

mv ~/Legend\ of\ Zelda,\ The\ -\ Majora\'s\ Mask\ \(USA\).z64 ./

Generate the Ninja project:

cmake -H. -Bbuild-cmake -GNinja

On my Debian12 system, I ran into issues due to the CMake version:

PaperStreet $ ~/2ship2harkinian> 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

Re-run the project generation:

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

Generate the 2ship.o2r file:

cmake --build build-cmake --target Generate2ShipOtr -j8

Compile the project:

cmake --build build-cmake -j8

Run the binary:

./build-cmake/mm/2s2h.elf

When asked whether to generate the O2R, answer yes:

This screenshot shows the game; of course, it can be played in full screen.

By the way, the Xbox controller works wonderfully.