Para muchos puede ser el juego de nuestra infancia, y seguramente hayamos intentado jugar a él con más o menos éxito en nuestra Raspberry Pi. Es posible que hayamos tenido más o menos suerte, usando cosas como RetroPie o Batocera y jugando más o menos bien con una Raspberry Pi 4. Pero hoy podemos decir que alguien ha hecho un port o conversión no oficial de Super Mario 64 para ordenadores, entre los que se incluye la Raspberry Pi, y ahora podemos jugar sin problemas de forma nativa y con un rendimiento espectacular en Raspberry Pi 4, pero no tanto en la 3.
Y ahora que ya tenemos los dientes largos, os voy a explicar un poco de donde ha salido este port de Super Mario 64 y que ventajas tiene usarlo en nuestra Raspberry Pi en vez de emular el juego.
Lo primer decir que este por se ha conseguido gracias al trabajo que se hizo decompilando la ROM original para Nintendo 64 por el grupo Nintendo 64 Decompilation Projects. Una vez se consiguió un código fuente valido del juego, este ha sido portado a PC por sm64pc, de forma que lo podemos compilar en nuestra Raspberry Pi y jugar a una versión nativa de Super Mario 64 en esta.
Una cosa que tenemos que saber antes de hacernos ilusiones para jugar a al Super Mario 64 en nuestra Raspberry Pi de forma nativa, es que necesitamos la ROM original del juego para poder compilarlo. Evidentemente, si no tienes el juego original es ilegal tener la ROM, por lo que no puedo proporcionárosla para que podáis compilar el Super Mario 64 en Raspberry Pi. Tendréis sacarla vosotros de vuestro propio cartucho, o preguntar a Google.
Compilando el port de Super Mario 64 para Raspberry Pi
Ahora que lo tenemos todo listo y todos los conceptos aclarados, es hora de compilar este port de Super Mario 64 para Raspberry Pi.
Empezaremos instalando todas las cosas necesarias para poder compilar el juego. Esto lo haremos poniendo lo siguiente en la terminal:
sudo apt update
sudo apt install build-essential git python3 libaudiofile-dev libglew-dev libglfw3-dev libusb-1.0.0 libsdl2-dev
Una vez se han instalado y actualizado todos los paquetes necesarios es hora de descargar el código fuente de sm64pc, que lo haremos con el siguiente comando en la terminal:
git clone https://github.com/sm64pc/sm64pc
En caso de que queramos descargarnos la versión en pruebas, podemos elegir clonar ese código poniendo en la terminal este comando en vez del que os he puesto arriba:
git clone --branch testing https://github.com/sm64pc/sm64pc
Esta versión en pruebas del port de Super Mario 64 para Raspberry Pi tiene algunas cosas que se van añadiendo para luego ponerlas en la versión final. Aunque, de momento no se ha comprobado su correcto funcionamiento y se han dejado en esta rama del repositorio.
Una vez tenemos descargado el código fuente, tenemos que copiar la ROM de Super Mario 64 en la carpeta donde está el código fuente. Esto lo haremos con lo siguiente:
cp ruta/a/la/rom/de/mario/64.z64 sm64pc/baserom.version.z64
Puede ser que esto os confunda un poco, pero os lo explico y ahora os pongo mi ejemplo. Ademas, si tienes dudas, la primera ruta corresponde con donde tenemos la ROM guardada, que tiene que estar descomprimida y en formato .z64, y la segunda parte es donde vamos a guardarla. Donde pone versión tenemos que especificar que versión es la que tenemos (eu para la europea, jp para la japonesa y us para la americana), ya que dependiendo de eso los archivos que tiene que extraer son diferentes. Yo lo haría tal que así:
cp mario64.z64 sm64pc/baserom.eu.z64
Y ahora que lo tenemos todo, llega el momento de compilar el port de Super Mario 64 para Raspberry Pi. Entramos en el directorio donde está el código fuente y usaremos make para esto.
cd sm64pc
make VERSION=eu TARGET_RPI=1 -j4
En el comando make, en el parámetro VERSION tendremos que especificar que versión de la ROM tenemos. Entonces comprobará que esa ROM sea la correcta y si lo es, empezará a extraer los archivos necesarios para compilar el juego. Una vez termine de extraer los archivos, compilará el juego y, si no hay ningún error, ya podremos jugar a este port de Super Mario 64 en nuestra Raspberry Pi. Para ello, pondremos en la terminal el siguiente comando, sustituyendo version por la versión del juego que hemos compilado:
./build/version_pc/sm64.us.f3dex2e.arm
Si vamos a compilar la version europea del juego, debemos saber que actualmente tiene soporte experimental, por lo que nos encontraremos con fallos como que no funciona el sonido o que los textos no se muestran correctamente.
Jugando al port de Super Mario 64 en Raspberry Pi
¡Bien! Ya lo tenemos todo compilado, solo falta enchufar nuestro mando y empezar a revivir los recuerdos de nuestra infancia, pero en nuestra Raspberry Pi, y con un mando en condiciones, y en pantalla panorámica, y en HD ¿o no?
Pues en Raspberry Pi 4 no tendremos ningún problema, ya que además parece que este port está mejor optimiza para el procesador de esta y no lo he visto consumiendo mucho mientras jugaba fluidamente y sin tirones. Los problemas vienen cuando tenemos una Raspberry Pi 3B o 3B+.
Vemos que en modo ventana el juego funciona más o menos bien, aun sin llegar al 100% de velocidad. Pero cuando maximizamos esa ventana, nos encontramos con la sorpresa de que el juego funciona muy lento, además de tener los 4 núcleos del procesador al 100% siempre, aun con una resolución de 720p. En Raspberry Pi 4 el juego funciona perfectamente.
Para terminar, tengo que añadir que la única forma que existe ahora mismo de salir del juego es cerrando la ventana. Esto no es un problema si abrimos el juego desde el escritorio de Raspbian. Pero si iniciamos este port de Super Mario 64 en una Raspberry Pi sin entorno gráfico, donde tienes que hacer unas cuantas cosas para lograrlo, la única opción que nos queda es tratar de cerrar el proceso desde otra terminal o forzar el reinicio de la Raspberry Pi, arriesgándonos a corromper la tarjeta microSD si desenchufamos directamente de la corriente.
Si quieres ver este port de Super Mario 64 funcionando en una Raspberry Pi 4, tambien he preparado un vídeo donde se ve como preparar el sistema operativo, como descargar el código fuente y compilar el port, y el juego en movimiento. Puedes hacerlo desde el canal de YouTube de Raspberry para novatos, o desde el enlace que tienes aquí abajo.
Más información
[themoneytizer id=»32486-28″]Última actualización el 2024-10-08 / Enlaces de afiliados / Imágenes de la API para Afiliados
Gracias, muy interesante, lo he probado con una rom europea y no sale ningun sonido, sin embargo luego he probado con la americana y va perfecto.
Por cierto, ¿hay algun proyecto similar con otros juegos de la consola?
Muchas gracias por el aviso Montagut.
Me pensaba que en el vídeo que hice no se escuchaba el sonido por alguna movida que le pasa a veces a mi capturadora, pero después de decirme que no se escucha nada en la versión europea he buscado por internet, y parece que no estamos solos. Lo he añadido al artículo para que más gente sepa de este fallo hasta que lo solucionen.
hola cuando estoy por el paso de make me sale esto:
pi@raspberrypi:~/sm64pc $ make VERSION=us TARGET_RPI=1 -j4
Failed to open baserom.us.z64. Please ensure it exists!
Makefile:247: *** Failed to extract assets. Alto.
pi@raspberrypi:~/sm64pc $
cual es el problema? me audarias bastante si tenes la respuesta:) muchas gracias
Buenas Maxi.
Ese error significa que la rom no la has copiado en la ruta correspondiente, o no la has nombrado de forma adecuada para poder compilar el juego. Comprueba que existe el archivo baserom.us.z64 en la carpeta sm64pc y prueba de nuevo a compilar.
y el paso anterior tampoco puedo hacerlo tambien me dice que falla o que la ruta especificada es inexistente. mi room esta descargada en una carpeta en el escritorio y descomprimida y la rom descomprimida en la carpeta del cpdigp fuente esta en /home/pi/sm64pc
help! i need somebody