Super Mario 64 está siendo portado a Wii U



Super Mario 64 es un port (https://github.com/aboood40091/sm64-port) a Wii U, llevado a cabo por AboodXD (https://github.com/aboood40091), del proyecto de descompilación (https://github.com/n64decomp/sm64) del juego.

No es posible distribuir el port compilado. El port es completamente legal (por eso está disponible en GitHub) pero los binarios compilados utilizan archivos de la rom del juego, propiedad de Nintendo. Es necesario que lo compiléis vosotros mismos. A continuación haré una guía, más o menos simple, de cómo hacerlo.

COMPILAR EL JUEGO

Existen varias formas de compilar el juego y entornos de compilación, es un tema complicado (para un usuario normal) e inabarcable. Aquí explicaré cómo hacerlo, desde cero, con el Subsistema de Windows para Linux (WSL), que aunque su nombre es un tanto equívoco en realidad es Linux para Windows 10. Esto lo podéis hacer en cualquier versión de Windows 10, da igual que sea la Pro, que la Home, que la LTSC, es indiferente que tenga la UWP instalada o no.

El primer paso será instalar el Subsistema de Windows para Linux. Para ello iremos a Panel de Control (escribid 'panel de control' en la barra de direcciones del explorador) > Programas y Características > Activar o desactivar características de Windows y marcad Subsistema de Windows para Linux. Aceptad y reiniciad Windows.

Imagen


Bajad la imagen de Ubuntu 18.04 (enlace) e instaladla vía Powershell. Para ello id a la carpeta donde lo halláis descargado, en la barra de direcciones poned powershell y presionad Enter. El comando para instalar sería Add-AppxPackage ./XXX.Appx, donde XXX sería el nombre del paquete.

Imagen


Una vez el proceso haya finalizado id a Inicio > Aplicaciones > Ubuntu 18.04 y dejad que finalice la instalación. Rellenad el usuario que usaréis y la contraseña (dos veces). Cerrad el Terminal.

Volved a abrir el Terminal de Linux (Inicio > Aplicaciones > Ubuntu 18.04). Usad los siguientes comandos por orden, cuando acabe uno usad otro:

Primero sudo apt update (la primera vez que uséis sudo os pedirá la contraseña de administrador) y luego sudo apt upgrade -y (-y sirve para aceptar automáticamente).

Imagen
sudo apt update + sudo apt upgrade -y


Después sudo apt install build-essential -y y a continuación sudo apt install software-properties-common -y.

Imagen
sudo apt install build-essential -y + sudo apt install software-properties-common -y


El siguiente comando será sudo apt install git-all -y.

Imagen
sudo apt install git-all -y


Finalmente sudo apt install p7zip-full p7zip-rar -y. Cerrad el Terminal.

Imagen
sudo apt install p7zip-full p7zip-rar -y


Con esto habremos instalado las herramientas básicas para trabajar con compilaciones. Ahora instalaremos el kit de desarrollo devkitPro, el cual nos permitirá compilar aplicaciones de Nintendo: Wii, WiiU, 3DS, etc.

Abrid nuevamente el Terminal de Linux y usad el comando sudo apt install gdebi-core -y. GDebi es una herramienta para instalar paquetes Debian, que es la manera más fácil de instalar devkitPRO. Cerrad el Terminal.

Imagen
sudo apt install gdebi-core -y


Seguidamente descargaremos devkitPRO (enlace). En la carpeta donde hayamos descargado el paquete abrimos un Terminal de Linux, para ello iremos a la barra de direcciones y escribiremos bash para pulsar Intro seguidamente. En esa ventana de Terminal usaremos el comando sudo gdebi devkitpro-pacman.amd64.deb.

Imagen
sudo gdebi devkitpro-pacman.amd64.deb


De esta manera tendremos instalado el entorno de desarrollo devkitPro, pero nos harán falta las herramientas específicas de cada plataforma. En este caso, 3DS, serán las WiiU-dev. Primero usamos el comando sudo dkp-pacman -Sy (sirve para buscar actualizaciones en devkitPRO) y después sudo dkp-pacman -Syu -y (sirve para instalar actualizaciones, si las hubiese).

Imagen
dkp-pacman -Sy + sudo dkp-pacman -Syu -y


A continuación usaremos sudo dkp-pacman -S wiiu-dev. Cuando os pregunte qué paquetes de 3DS-dev instalar, simplemente pulsad intro para instalarlos todos. Finalmente usaremos sudo dkp-pacman -S wiiu-sdl2. Para acabar cerraremos el Terminal.

Imagen
sudo dkp-pacman -S wiiu-dev + dkp-pacman -S wiiu-sdl2


A continuación actualizaremos algunas librerías extra. Volved a abrir el Terminal y usad sudo apt install build-essential pkg-config git binutils-mips-linux-gnu zlib1g-dev libaudiofile-dev.

Imagen
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu zlib1g-dev libaudiofile-dev


En último lugar descargaremos el paquete de instalación de Irix para QEMU (enlace) y lo instalaremos (abrid un Terminal en la misma carpeta de descarga con bash en la barra de direcciones) con sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb.

Imagen
sudo dpkg -i qemu-irix-2.11.0-2169_amd64.deb


De esta forma quedará instalado todo nuestro entorno de programación, listo para compilar Super Mario 64. A continuación veremos cómo descargar el código fuente y cómo compilar el juego.

El primer paso será compilar el juego. Para ello descargamos el código fuente del GitHub de AboodXD (enlace). Para ello vamos a la carpeta donde queremos descargarlo y usamos bash en la barra de direcciones, como hemos visto varias veces ya. Primero usaremos el comando git clone https://github.com/aboood40091/sm64-port para descargar el repositorio completo. Cuando finalice la descarga/comprobación entraremos en la carpeta con cd sm64-port.

Imagen
git clone + cd sm64-port


Aquí es donde entra en juego la parte "turbia" del asunto. El proyecto de decompilación de Super Mario 64 y sus consiguientes ports son completamente legales en tanto en cuanto no usan código de Nintendo. Sin embargo, para compilar el port, obviamente hacen falta los archivos del juego, de manera que necesitaréis la rom. Personalmente suelo compilar el juego con la versión USA, pero la EUR y JPN también valen. El formato tiene que ser Z64, el SHA1 de la versión USA, por si queréis comprobarlo es 9bef1128717f958171a4afac3ed78ee2bb4e86ce. Con este hash también podéis hacer otras cosas (guiño-guiño-codazo-codazo). Descargad la rom, extraedla y renombradla a: baserom.us.z64, baserom.eu.z64 o baserom.jp.z64, dependiendo de la región escogida. Finalmente moved la rom, renombrada, a la carpeta sm64-port, creada en el paso anterior.

Imagen
make


Finalmente compilaremos el juego con make. Si la habéis cagado en algún sitio aquí es donde habrá errores a chorrón. En principio el Terminal informa de dónde está el problema y a qué es debido, generalmente la falta de alguna dependencia o la imposibilidad de acceso a algún programa (porque no esté en el PATH, porque no sea ejecutable, etc), sin embargo puede ser complicado de descifrar si no estáis familiarizados con la compilación o la programación. Si tenéis algún problema comentadlo por aquí con una captura de pantalla del error.

Si todo ha ido como la seda el ejecutable se encontrará en la ruta: /sm64-port/build/**_wiiu/sm64.**.f3dex2e.rpx. Donde los asteriscos son la región (us, eu o jp). Ese es el ejecutable que deberemos usar con Homebrew Launcher.

------EN PROCESO------

Nota: Existe Ubuntu 20.04 en Windows Subsystem, sin embargo a mi me ha dado problemas con algunos programas (Cargo/Rust, por ejemplo), Ubuntu 18.04 es más que suficiente para una "experiencia Linux" completa.

GITHUB
https://github.com/aboood40091/sm64-port
Noticion, este si que lo espero, junto a un posible port a vita.
Saludos.
El juego ha sido actualizado hoy en cuanto al render, a pesar de todo sigue sin tener gráficos, solo un display rojo. El sonido parece funcionar correctamente y los controles funcionan, es difícil decir si bien o mal [+risas]

Aquí os dejo un vídeo que he grabado: https://streamable.com/3tf30x

La guía para compilar 3DS/WIIU sigue en proceso, estoy un poco vagoneta. En WiiU tampoco es que haya prisa.

Edito: Buenas noticias, ya muestra muchos más gráficos (parcialmente jugable) y el rendimiento, que era bastante lento debido a un desbordamiento del buffer de vértices, ahora es completamente estable a 30FPS@1080P.

Imagen
Que buena noticia, le seguiré la pista.
Imagen

Ahora sí que sí. Excepto las cajas de texto, que están corruptas e ilegibles, el resto del juego funciona perfecto. Sin errores gráficos, que yo haya notado, 30 frames por segundo y 1080P. Me he pasado el primer piso y todo bien.

El tutorial lo tengo más o menos acabado en 3DS, lo pegaré por aquí (con las modificaciones pertinentes) hoy o mañana.
@gelon Ok, me acabo de dar cuenta que la fuente que colocaste es para compilar la versión de PC (esta https://github.com/aboood40091/sm64-port) y me di cuenta porque me puse a compilarla creyendo que era para Wiiu (en la PC con Windows 7 de mi trabajo [+risas] no le digan a mi supervisor [poraki] ) y el resultado fue un .exe [carcajad] que al abrirlo saltó el juego de Mario, el asunto es que yo lo quería para Wiiu... [carcajad] A jugar Mario64 en mi trabajo [sati] [tomaaa] [babas] [fiu] [qmparto]
Ummmm no no, esa es la rama de WiiU correcta. Si tienes devkitpro + wiiu-dev + wiiu-sdl2 + irix y haces un make te debería salir el port de WiiU :-?
Si los tengo, pero yo seguí el tutorial que viene allí, Deja me informo más.

Windows

Install and update MSYS2, following all the directions listed on https://www.msys2.org/.
From the start menu, launch MSYS2 MinGW and install required packages depending on your machine (do NOT launch "MSYS2 MSYS"):

64-bit: Launch "MSYS2 MinGW 64-bit" and install: pacman -S git make python3 mingw-w64-x86_64-gcc
32-bit (will also work on 64-bit machines): Launch "MSYS2 MinGW 32-bit" and install: pacman -S git make python3 mingw-w64-i686-gcc
Do NOT by mistake install the package called simply gcc.

The MSYS2 terminal has a current working directory that initially is C:\msys64\home\<username> (home directory). At the prompt, you will see the current working directory in yellow. ~ is an alias for the home directory. You can change the current working directory to My Documents by entering cd /c/Users/<username>/Documents.
Clone the repo: git clone https://github.com/sm64-port/sm64-port.git, which will create a directory sm64-port and then enter it cd sm64-port.
Place a Super Mario 64 ROM called baserom.<VERSION>.z64 into the repository's root directory for asset extraction, where VERSION can be us, jp, or eu.
Run make to build. Qualify the version through make VERSION=<VERSION>. Add -j4 to improve build speed (hardware dependent based on the amount of CPU cores available).
The executable binary will be located at build/<VERSION>_pc/sm64.<VERSION>.f3dex2e.exe inside the repository.



E d i t o:

Ya encontré el error y es en donde dice

"Clone the repo: git clone https://github.com/sm64-port/sm64-port.git, which will create a directory sm64-port and then enter it cd sm64-port."

Descarga una versión para PC así que hay que hacerlo de forma manual, descargarlo de aquí https://github.com/aboood40091/sm64-por ... master.zip descomprimirlo y hacer "make" a ese archivo.
Ah vale, ya veo el problema.

El tema es que cuando se crea una rama de un proyecto se suele copiar el README tal cual, y ese README indica cómo compilar la versión de PC, no la de WiiU. De ahí que indique que hagas un git clone del port de PC, no del de WiiU (que es el enlace que he puesto). git clone descarga exactamente el mismo contenido que si fueras al código fuente y lo descargaras en zip, no hay ninguna diferencia (más allá de la verificación de archivos).

Esa guía no te sirve para compilar la versión de WiiU, que requiere las herramientas que he mencionado en el post anterior: devkitPro, wiiu-dev, wiiu-sdl2 e irix.

Luego, si tengo tiempo, pongo por aquí la guía.
EDITO

Al final lo logré!! gracias por el tuto me ayudó bastante. El juego se ve hermoso a 1080p nativos y a 16:9 widescreen, Ojalá en un futuro también se pueda aplicar esto a juegos como Goldeneye, Perfect Dark, Rogue Squadron [babas] [tadoramo] .

Imagen
https://www.youtube.com/watch?v=HKQ5OZeMNdM
En la descripcion del video tienen los archivos necesarios para compilar el juego en español.
@blade133bo Ya lo probé y el juego si está en español y Mario tiene otras texturas, pero los escenario no cambiaron ¿...? ¿Que habré hecho mal?

Imagen

[bye]
Saludos
Siento la confusion, en consolas solo Mario y Bowser estan en HD.
Te tocaria meter los otros modelados, y ver si son compatibles con wiiu y el resto el de render96 segun ellos no recomiendan usar en 3DS.
Yo solo puse los que me interesaban para compartir los archivos.
Solo el de render96 es compatible con texturas y tal, el de switch no se como comprobarlo, me sale un archivo mas pequeño y no funciona en el emulador.
Ok, el juego en español, Mario y Bowser en HD, para mi suena muy bien [oki]
Hola, alguien podria pasarme el savegame de este Port? Lo que tengan avanzado, el archivo se guarda en la raiz de vuestra sd.
gracias
@blade133bo No sé si te servirá un save cualquiera, lo tengo con unas veintialgo estrellas creo recordar.

Saludos,
@Roscarage
Si cualquiera, mejor veintialgo que 0.
Que necesito 70.
18 respuestas