Esta pagina se ve mejor con JavaScript habilitado

Zelda: Ocarina of Time nativo en Linux

 ·  🎃 kr0m

En esta ocasión vamos a hacer uso de la decompilación del juego Zelda: Ocarina of Time de N64 para instalar dicho juego, lo que nos permitirá disfrutar del título a 60FPS entre otras muchas opciones.

Í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 SoH-Blair-Foxtrot-Linux.zip

Comprobamos el hash SHA1 de la ROM:

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

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

mv ~/PAL\ 1.1.z64 ./

Ejecutamos el binario:

./soh.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 libopengl-dev libopus-dev libopusfile-dev

Clonamos el repositorio:

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

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

Comprobamos el hash SHA1 de la ROM:

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

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

mv ~/PAL\ 1.1.z64 ./

Generamos el proyecto Ninja:

cmake -H. -Bbuild-cmake -GNinja

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

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

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 soh.otr:

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

Compilamos el proyecto:

cmake --build build-cmake -j8

Ejecutamos el binario:

./build-cmake/soh/soh.elf

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

Nos preguntará si queremos extaer alguna otra ROM, respondemos que no:

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.


Master Quest:

La versión de GameCube y Nintendo 3DS incluían un modo llamado MasterQuest con algunas modificaciones en mazmorras, gráficos mejorados y un modo espejo, básicamente se trataba del mismo juego pero algún que otro retoque.

En nuestro caso solo aplica para la versión de GameCube ya que en la lista de ROMs soportadas solo soporta versiones del juego de N64 y GameCube siendo esta última la única que incluye el modo MasterQuest.

El juego de GameCube se distribuía en dos discos, uno con el juego en modo vanilla y otro con el modo MasterQuest, para poder jugar este último modo necesitaremos la ROM asociada a dicho disco:

"name": "PAL MQ",
"sha1": "f46239439f59a2a594ef83cf68ef65043b1bffe2"

El proceso es exactamente igual que el descrito anteriormente pero copiando ambas ROMs.

Comprobamos el hash SHA1 de las 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

Movemos las ROMs al directorio donde reside el binario o donde hemos clonado el repositorio :

mv ~/PAL\ 1.1.z64 ./
mv ~/Zelda,\ The\ Legend\ of\ -\ Ocarina\ of\ Time\ Master\ Quest\ Assets\ for\ the\ Ship\ of\ Harkinian\ -\ PAL\ GameCube.z64 ./

Cuando accedamos al juego podremos ver que disponemos de un modo de juego adicional:


Opciones avanzadas:

El port nos permite una configuración mucho mas avanzada que una simple emulación, a continuación se describen algunas de las opciones mas destacadas desde mi punto de vista.

Control cámara:

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

Tocar la ocarina con el D-pad:

Esc: Settings -> Controls -> Ocarina Controls -> Dpad Ocarina Playback

Asignar túnicas y botas a los botones-C:

Esc: Enhacements -> Items -> Equipment -> Assignable Tunics and Boots

Resolución:

Esc: Settings -> Graphics -> Internal Resolution

Anti-aliasing:

Esc: Settings -> Graphics -> Anti-aliasing(MSAA)

FPSs:

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

Parches algunos bugs:

Esc: Enhancements -> Fixes

Cosméticos:

Esc: Enhancements -> Cosmetics Editor

Trucos:

Esc: Enhancements -> Cheats

Modos extra de juego:

Esc: Enhancements -> Extra Modes

Niveles beta, escenarios de pruebas de los desarrolladores:

Esc: Cheats -> Beta Quest -> Enable Beta Quest