Esta pagina se ve mejor con JavaScript habilitado

Zelda: Majoras Mask nativo en Linux

 ·  🎃 kr0m

En esta ocasión vamos a hacer uso de la decompilación del juego Zelda: Majoras Mask de N64 para instalar dicho juego, lo que nos permitirá disfrutar del título a 60FPS.

Índice:


Instalación:

En principio hay una versión precompilada del binario para Linux, así que tan solo debemos asegurarnos de tener una de las ROMS soportadas .

Nos bajamos el binario desde el GitHub del proyecto y lo descomprimimos:

unzip 2Ship-Rena-Alfa-Linux.zip

Comprobamos el hash SHA1 de la ROM:

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

Efectivamente es una de las versiones soportadas, movemos la ROM al directorio donde hemos descomprimido el binario:

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

Ejecutamos el binario:

./2ship.appimage

En esta captura se puede ver el juego, por supuesto se puede jugar a pantalla completa.

Por cierto el mando de Xbox funciona de maravilla.


Compilación:

Si el binario precompilado dá algún tipo de problema siempre podremos compilar nosotros mismos el software.

Instalamos las dependencias tal como indica la documentación :

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

Clonamos el repositorio:

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

Debemos tener en cuenta que solo se soportan ciertas versiones de ROM .

Comprobamos el hash SHA1 de la ROM:

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

Efectivamente es una de las versiones soportadas, movemos la ROM al directorio donde hemos descomprimido el binario:

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

Generamos el proyecto Ninja:

cmake -H. -Bbuild-cmake -GNinja

En mi sistema Debian12 ha presentado problemas por la versión de CMake:

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

La solución mas limpia es instalar desde backports una versión mas moderna:

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

Rejecutamos la generación del proyecto Ninja:

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

Generamos el fichero 2ship.o2r:

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

Compilamos el proyecto:

cmake --build build-cmake -j8

Ejecutamos el binario:

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

Cuando nos pregunte si generar el O2R, respondemos que si:

En esta captura se puede ver el juego, por supuesto se puede jugar a pantalla completa.

Por cierto el mando de Xbox funciona de maravilla.