Consola de juegos retro con Lakka y una Raspberry Pi

Escrito por picodotdev el , actualizado el .
gnu-linux juegos planeta-codigo software-libre
Comentarios

El propósito original de las Raspberry Pi era educativo y se ha hecho muy popular debido a su bajo precio y un buen trabajo de marketing. Sin embargo, puede utilizarse para muchos otros propósitos desde aprendizaje a programación, electrónica, servidor de archivos personales, descarga de películas, series y libros con torrent y también como una consola de juegos antiguos de arcade.

Lakka
Linux

Desde que compré la Raspberry Pi en el año 2012, el modelo inicial B con 256 MiB de memoria, me ha dado y me esta dando un estupendo servicio. Principalmente la he estado usando para descargar películas y libros vía torrent con Transmission usando la distribución Arch Linux para ARM. Sin embargo, ya estoy pensando en sustituirla por algo más potente para hacer algunas pruebas con Docker, Ansible y algunas pruebas más que se me ocurran aparte de seguir queriendo hacer descargas o en un futuro con la función de SmartTV. De la Raspberry Pi no se lanzará un nuevo modelo, el que sería el 4, hasta el 2019 y cuando salga no creo que sea más potente que una Rock64 que ya a día de hoy incorporan hasta 4 GiB de memoria, tienen Gigabit Ethernet y un puerto USB 3.0 con precio similar a la Raspberry Pi, lo único que le falta respecto al modelo de la RPi 3 es WiFi y Bluetooth pero a cambio se puede tener 4 veces más memoria, Gigabit Ethernet y un puerto USB 3.0. El mayor problema de la Rock64 es su soporte tanto en distribuciones, software y comunidad, en estos es donde la Raspberry Pi no tiene competidor.

Pero antes estoy pensando en el uso que le puedo dar a la Raspberry Pi para que no se quede en un cajón cogiendo polvo. Y he pensado en utilizarla como consola de juegos retro con Lakka para mis sobrinos que ahora usan PlayStation 1 pero que ya tiene los cables de los mandos estropeados de tanto doblarlos al guardarlos, de tanto uso ya no funcionan bien.

Lo primero que he hecho es comprar unos mandos similares a los de la antigua Super NES, aunque con un teclado USB también se puede jugar es más cómodo con los mandos, además de poder jugar a dos jugadores. En muchos juegos de arcade antiguos es posible incluso a tres o cuatro jugadores.

Retroarch

Los elementos necesarios para tener tener una consola retro son los siguientes: una Raspberry Pi 3, un cargador USB adecuado, una tarjeta microSD de 32 GiB o más, dos mandos para consola USB o un teclado USB, un cable HDMI y si se quiere una caja. Por unos 65 € se pueden adquirir los elementos imprescindibles en la tienda de Amazon.

El software para usar la Raspberry Pi como consola retro que he utilizado es Lakka que es una distribución GNU/Linux especifica para convertir un ordenador en una consola de juegos retro. Para instalarlo en la tarjeta microSD hay que descargar la imagen de Lakka y una forma simple de grabarla en la tarjeta microSD es utilizando Etcher, basta instalarlo, iniciarlo, seleccionar la imagen de Lakka una vez descomprimido su archivo zip, seleccionar la unidad de la tarjeta SD (si es necesario ya que Etcher puede seleccionarla automáticamente) y pulsar el botón Flash!, después de unos pocos minutos la imagen está grabada y la tarjeta microSD lista para usarla en la Raspberry Pi y efectuar el primer inicio.

Etcher

Los juegos se distribuyen en archivos denominados ROM y estos se pueden descargar de ciertas páginas, una de ellas es de Internet Archive donde está una colección de juegos de las consolas más populares o si sabemos el nombre del juego de arcade descargarlo individualmente de CoolROM. Hay miles de juegos por lo que es importante conocer su nombre para hacer la búsqueda. En otro artículo hice una pequeña recopilación de juegos míticos de arcade y en otros blog están recopilados otra selección de juegos:

Algunas de las consolas emuladas son:

  • Nintendo Entertainment System, Super Nintendo Entertainment System, Nintendo 64, Nintendo GameCube, Game Boy
  • Sega Master System, Genesis, Saturn, Dreamcast, Game Gear
  • MSX, MSX 2
  • Atari 2600, 5200, 7800, Lynx, Jaguar
  • Varias más y juegos de máquinas recreativas con FBA Alpha y MAME

En el primer inicio Lakka debe hacer una serie de tareas para inicializar el sistema durante unos minutos, recomiendo no conectar el cable de red ni ningún mando o teclado en este paso. Una vez se completa este primer inicio el siguiente paso es copiar las ROMs, hay varias formas una de ellas es desde un equipo con GNU/Linux y copiar los archivos al directorio /storage/ROMs/ directamente a la tarjeta microSD desde un ordenador. En otros sistemas que no saben como acceder a las particiones ext4 de Linux la más sencilla es activando el protocolo SAMBA en Lakka y copiarlos por la red, aunque tarda más. SAMBA se activa desde el menú Settings > Services > SAMBA Enable.

Raspberry Pi ejecutando Lakka (La televisión va acorde con los juegos XD)

Con el cable de red conectado a la Rasberry Pi al router y desde un equipo con Windows, macOS o GNU/Linux y probando la dirección IP que el router le ha asignado a la Raspberry Pi se accede a los directorios compartidos por red poniendo en el explorador de archivos \\192.168.0.2, \\192.168.0.3 o \\192.168.0.4, … o posteriores números dependiendo de los dispositivos conectados en la red, también podría ser \\192.168.1.2, \\192.168.1.3, \\192.168.1.4, … Con acceso en el explorador de archivos ya solo queda copiar las ROMs a la carpeta compartida ROMs. En macOS macOS con Finder en la opción Ir > Conectar al servidor.

Carpetas compartidas por Lakka mediante SAMBA

Copiados los archivos de las ROMs a la Raspberry Pi desde la opción Import Content > Scan Directory de Lakka esta detectará todos los juegos que encuentre en su base de datos añadiéndolos en varios menús según el sistema emulado del juego en las últimas opciones del menú horizontal de Lakka.

Juegos Lakka

Detectadas las ROMS iniciar un juego basta con seleccionarlo desde los menús e iniciarlo. La mayoría funcionará con un rendimiento óptimo tanto el fluidez de imagen como en sonido, la Raspberry Pi es mucho más potente que los sistemas antiguos que emula, el modelo Raspberry Pi 3 incluso funcionará mejor. Aún asi algunos pueden ir un poco lentos o el sonido no ser completamente fiel al original.

Varios juegos de la NES y Sega

Tenía dudas por la calidad de los mandos por si eran demasiado frágiles, sin embargo, cuando me han llegado y los he visto me han parecido muy decentes y creo que tratándolos bien van a aguantar mucho tiempo. Además, la Raspberry Pi y Lakka los han reconocido sin ningún tipo de problema tanto conectando uno individualmente o los dos al mismo tiempo reconociendo correctamente todos los botones. Lo único que he tenido que hacer es configurar en el menú Input > Menu Toggle Gamepad Combo (se elige con la cruceta a derecha e izquierda) un botón para salir de un juego pulsando a la vez los botones Start + Select.

Tampoco he tenido ningún problema para que me funcione por el HDMI como también por la salida de vídeo RCA y el sonido por el jack de 3.5mm que posee la Raspberry Pi 1 original que tengo, todo me ha funcionado sin haya tenido que realizar ninguna acción.

Si añadimos algunos juegos de arcade que Lakka no reconoce es posible crear una lista personalizada de juegos, el nombre de la lista determina los iconos de los juegos y las rutas de los cores dependen del sistema a emular, es probable que funcionen con FB Alpha - Arcade Games o MAME. Es importante no renombrar los nombres de los archivos zip de las ROMs ya que es necesario que tengan el nombre original para funcionar bien.

También es posible crear una lista de juegos favoritos (muy útil si tenemos muchos juegos), para ello hay que una vez iniciado el juego salir al menú con la conbinación de teclas configurada en Settings > Input > Menu Toggle Gamepad Combo y usar la opción Add to favorites. Desde el mismo menú es posible salir del juego u obtener una captura de pantalla. La lista de favoritos se guarda en Configfiles > retroarch > content_favorites.lpl y el historial en Configfiles > retroarch > content_history.lpl por si se quiere editar manualmente.

Como son muchas ROMs reconocer una entre las muchas que hay o ver como es el juego sin entrar en él está la opción de descargar imágenes del juego y elegir ver una imagen de como es el juego, su portada o su pantalla inicial. Las imágenes se pueden descargar desde la opcion Main Menu > Online Updater > Thumbnails Updater.

Al obtener ROMs de forma individual a veces es difícil dar con una que funcione, de algunos juegos hay varias versiones y es posible que algunas de ellas fallen al cargarse, hay que tener un poco de paciencia para encontrar la correcta.

Juego The Legend of Zelda de NES

Ya solo queda pasar algunos buenos momentos con estos juegos antiguos pero entretenidos, nosotros o los más pequeños de la casa. Otra opción alternativa a Lakka para el mismo propósito es RetroPie aunque la primera soporta algunos modelos mas de placas similares a la Raspberry Pi.