MuyLinux Eduardo Medina  

RetroArch, una solución universal de emulación para ‘retrogaming’

Hoy expondremos qué es RetroArch, uno de los inventos más interesantes dentro del software libre para resucitar los grandes clásicos de los videojuegos y aparentemente la implementación más destacada de la biblioteca Libretro, orientada a facilitar la creación de juegos y emuladores.

Lejos de aferrarse a una plataforma en particular, RetroArch es una especie de solución universal capaz de emular una gran cantidad de plataformas, no solo las clásicas como PlayStation 1, Super Nintendo, MegaDrive, Game Boy, Game Boy Advance y NES, sino también Amstrad, Atari Neo Geo, Dreamcast, Atari y Commodore, las cuales se suman a implementaciones de motores como OpenLara y algunos de Quake.

Para abarcar esa gran cantidad de plataformas, RetroArch facilita la descarga de unos componentes llamados núcleos, los cuales se encargan cada uno de emular una plataforma. Tras descargar un núcleo, el usuario ya tiene los componentes necesarios para ejecutar los videojuegos de una plataforma determinada, pero algunas como PlayStation requieren de la descarga de firmware que se tiene que obtener aparte. Otro punto a tener en cuenta es que hay diversas versiones de un mismo módulo y distintos módulos que pueden emular una misma plataforma. Por ejemplo, para Super Nintendo están Snes9x, que es privativo, y diversas compilaciones del módulo de su rival libre: bsnes.

Módulos descargados en RetroArch

El enfoque de RetroArch tiene un punto a su favor y otro en contra. Lo positivo es que es posible emular desde un único frontend una gran cantidad de consolas, ahorrando al usuario el tener que instalar una gran cantidad de aplicaciones orientadas a emulación. En el caso de los módulos basados en emuladores libres, hasta se pueden encontrar algunos que ofrecen mejores resultados que la aplicación original (es lo que me ha pasado con bsnes).

Pero toda esa “potencia” a la hora de soportar plataformas arrastra un inconveniente importante: una aplicación que es un tanto técnica y difícil de configurar. Sí, es probable que RetroArch sea, al menos en un principio, poco amigable si no se tiene medianamente claro cómo funcionan sus partes más básicas. Sin embargo, que no cunda el pánico, que estamos aquí para ayudar a introducir a los interesados en esta peculiar e interesante solución de emulación universal (y decimos introducir porque abarcar todo lo que ofrece daría para una enciclopedia).

Cómo instalar RetroArch

RetroArch, como aplicación de software libre que es, tendría que estar presente en los repositorios de las principales distribuciones, pero en nuestro caso hemos decidido emplear el empaquetado en Flatpak y en menor medida el PPA oficial para Ubuntu:

sudo add-apt-repository ppa:libretro/stable
sudo apt update
sudo apt install retroarch

Por otro lado, existe Lakka, una distribución ligera orientada al retrogaming y a Raspberry Pi, el archiconocido mini-PC que es muy empleado en estos contextos.

Por supuesto, RetroArch también está disponible para Windows, macOS, Android y otras muchas plataformas.

Cómo restaurar o instalar los componentes faltantes

Cuando uno inicia RetroArch por primera vez en muchas configuraciones, uno puede encontrarse con que se muestra de la siguiente manera, con iconos faltantes y unas fuentes tipográficas que lucen realmente feas.

RetroArch con recursos o assets faltantes

Por suerte, y a pesar del susto que probablemente se lleve el usuario, es algo fácil de solucionar. Para ello hay que dirigirse a “Actualizador en línea” dentro del “Menú principal”.

Actualizador en línea de RetroArch

Una vez dentro, hay que actualizar los siguientes componentes, preferiblemente en este orden: “Actualizar recursos”, “Actualizar archivos de información de núcleos” y “Actualizar perfiles de mandos”. Dependiendo de las necesidades del usuario, es posible que tenga que actualizar más cosas, pero esas tres deberían de ofrecer las funciones básicas para poner emuladores y juegos en funcionamiento.

Actualizar los componentes minimos necesarios para hacer funcionar RetroArch

Iniciando RetroArch y partes básicas

Antes de continuar, queremos decir que hemos probado la aplicación en Linux a través de Flatpak y también hemos ejecutado la versión Plus para Android, que da acceso a 127 núcleos a cambio de usar como mínimo la versión 8 del sistema de Google. Lo que vamos a exponer en este artículo, a grandes rasgos, sirve para los dos sistemas operativos (e incluso Windows y macOS).

Cuando el usuario inicia RetroArch se encontrará la siguiente ventana en la versión para escritorio Linux compilada en formato Flatpak.

Pantalla de inicio RetroArch en Linux

Mientras que en Android la pantalla que aparece es esta, con un diseño similar al de la aplicación para escritorio, pero con evidentes diferencias. Y sí, sería recomendable poner el móvil o la tablet en horizontal para poder leer el nombre de los módulos fácilmente.

Pantalla de inicio RetroArch en Android

La aplicación para escritorio tiene, al menos en apariencia, más posibilidades que la de Android. Desde Linux el usuario verá una columna a la izquierda con todas las posibilidades de RetroArch, empezando, como no, con el menú principal, que da acceso a la gestión básica de los núcleos y permite cargar contenidos, los cuales pueden ser ROM de juegos de consolas que funcionan mediante algún formato de cartucho o discos ópticos para plataformas como PlayStation.

Desde la misma sección de menú principal es posible actualizar los componentes descargados a través de RetroArch, reiniciar la aplicación y cerrarla. Para muchas plataformas, deambular solo por esta sección ya es suficiente para poner emuladores y videojuegos en funcionamiento.

La segunda gran sección la componen los Ajustes, que permiten configurar los siguientes aspectos en la aplicación para escritorio:

  • Los controladores (o más bien los drivers, para que no se confundan con los mandos para videojuegos).
  • La salida de vídeo.
  • El audio.
  • La configuración de los dispositivos de entrada (tanto controladores como teclado y ratón).
  • La latencia de vídeo, sonido y control.
  • La gestión pormenorizada de los núcleos, permitiendo su eliminación.
  • La configuración general de RetroArch.
  • La configuración del registro de eventos (log).
  • La regulación de los fotogramas, abarcando rebobinado, avance rápido y cámara lenta.
  • Grabación y transmisión.
  • El servicio de inteligencia artificial para la traducción de textos y voz.
  • Accesibilidad.
  • Los ajustes de energía (que da acceso a la integración con el GameMode de Feral Interactive).
  • Los logros.
  • La configuración de la red y el servidor.
  • Lista de reproducción.
  • La configuración del usuario.
  • Los directorios predeterminados.

Como vemos, el apartado de Ajustes es gigantesco, así que en este artículo nos centraremos en los núcleos y expondremos algunas de sus partes más básicas.

La sección de Favorito permite añadir un juego con su configuración (el módulo sobre el que se ejecuta) como un favorito del usuario. Para ello, con el juego ejecutado, hay que dirigirse al Menú rápido de RetroArch pulsando F1 (en la configuración predeterminada) y descender hasta pulsar sobre esta opción: “Agregar a Favoritos”.

Ajustes o configuración de RetroArch en Linux

El Historial, como es obvio, permite ver los juegos que han sido ejecutados en RetroArch, guardando además el módulo sobre el que ha funcionado. La sección de imágenes muestra los pantallazos tomados en las partidas a través de la tecla F1 tras poner en funcionamiento una ROM.

Añadir una imagen a RetroArch Accediendo a la sección de Imágenes de RetroArch

Las siguientes secciones son los historiales de música y vídeo, que más bien sería de audio y vídeo. Con el explorador de archivos de RetroArch se pueden abrir ficheros de audio o vídeo para reproducirlos con la propia aplicación. Parece que en algunos sistemas hay que añadir el módulo de ffmpeg, pero en la versión Flatpak hemos podido ejecutar al menos MP3 y MP4 (x264) sin problemas, pero no otros formatos como MKV.

Historial de audio/música de RetroArch Historial de vídeo de RetroArch

Por último y para resumir los apartados principales, ya que la intención de este artículo es centrarse en la descarga de los núcleos y la puesta en funcionamiento de los juegos, tenemos la sección de Juegos en red, que como bien indica su nombre se encarga del soporte de partidas en línea; la importación de contenidos, cuya función sobra describir; la exploración basada en los contenidos escaneados; además de la posibilidad de instalar Núcleos independientes que no están en la base de datos de RetroArch.

Cómo poner en funcionamiento emuladores y juegos en RetroArch

RetroArch es un software que asusta un poco al principio, pero no es para tanto una vez se entienden las partes más fundamentales para ejecutar los juegos, que pueden ser ROM o imágenes de discos ópticos dependiendo de la plataforma a emular. Como esta solución ofrece soporte para decenas de plataformas, en este artículo nos centraremos en Super Nintendo y la primera PlayStation para así cubrir un ejemplo sencillo y otro algo más complejo que requiere de algunos ajustes adicionales.

Emulando la Super Nintendo en RetroArch

En primer lugar vamos a enseñar cómo poner en funcionamiento la emulación para Super Nintendo, la mítica consola que protagonizó junto a Mega Drive la que es para algunos la generación dorada de las consolas de videojuegos, además de ser una plataforma muy emulada por retrogamers.

El primer paso para descargar un núcleo nuevo es dirigirse a “Menú principal” > “Cargar núcleo”, que mostrará la lista de los núcleos descargados junto a su licencia, la opción de descargar núcleos, instalar o restaurar núcleos, además de las opciones de iniciar el procesador de vídeo y el RetroPad remoto.

Cargar un núcleo en RetroArch

Una vez se haya accedido a la sección “Cargar núcleo” del apartado “Menú principal”, hay que dirigirse a “Descargar núcleo”, donde aparecerá la enorme lista de núcleos y motores que RetroArch pone a disposición para su descarga.

Descargar un núcleo para la Super Nintendo en RetroArch

Como es obvio, lo suyo es realizar un proceso de búsqueda presionando la tecla ‘S’ o el correspondiente botón del controlador indicado en la esquina inferior derecha. Tras introducir ‘snes’ en la búsqueda, la lista queda reducida a los núcleos disponibles para la consola de Super Nintendo. Descargar un núcleo es tan simple como pulsar sobre la opción elegida con el botón principal del ratón o con el botón del controlador indicado en la esquina inferior derecha.

En nuestro caso hemos decidido descargar el núcleo Beetle Spuafaust, aunque el usuario puede elegir el que más le guste o descargar unos pocos e ir probando para ver cuál le convence más.

Descargar un núcleo para la Super Nintendo en RetroArch

Para cargar un núcleo basta con dirigirse a la ya mencionada sección de “Cargar núcleo” y seleccionar el que se quiere usar mediante los pasos explicados con ratón o controlador. Recordamos que aquí se muestran todos los módulos descargados independientemente de la plataforma que emula cada una.

Cargar un núcleo en RetroArch

Ahora toca cargar una ROM con un juego. Para ello hay que dirigirse a “Cargar contenido” dentro del apartado de “Menú principal”.

Cargar una ROM de Super Nintendo en RetroArch

Como estamos usando la versión Flatpak de RetroArch, lo suyo es empezar a explorar desde la raíz de la carpeta de usuario hasta llegar a la ubicación en la que se encuentra la ROM, que en nuestro caso es el subdirectorio de “Descargas”.

Explorar para cargar una ROM de Super Nintendo Explorar para cargar una ROM de Super Nintendo

Tras realizar todos los pasos para cargar un módulo de un emulador de Super Nintendo y la correspondiente ROM, el juego debería de ejecutarse con normalidad.

Juego de Super Nintendo ejecutado con RetroArch

Emulando la primera PlayStation en RetroArch

La primera consola de Sony fue tan popular que en el subsconciente de muchos es la primera consola de videojuegos de la historia. RetroArch pone a disposición núcleos publicados como software libre para emularla, pero su configuración es más aparatosa debido a que requiere de un firmware que se distribuye aparte para funcionar, así que vamos a explicar los pasos a seguir para que todo esté correcto a la hora de ejecutar los juegos.

En primer lugar hay que hacer el recorrido “Menú principal” > “Cargar núcleo” > “Descargar núcleo”. Una vez ahí buscamos uno para PlayStation 1, PCSX ReARMed en nuestro caso.

Instalando el núcleo de PCSX ReARMed en RetroArch

Después de instalar el núcleo, hay que dirigirse a la configuración del núcleo desde el menú principal recorriendo la siguiente ruta: Ajustes > Núcleos > “Administrar núcleos” > “Sony – PlayStation (PSCX ReARMed)”. Descendiendo un poco uno ve los firmware faltantes para las versiones japonesa (NTSC), norteamericana (NTSC) y europea (PAL) de los juegos. Como vemos, RetroArch requiere unas versiones concretas, las cuales pueden obtenerse desde aquí.

Firmware faltante para emular PlayStation con PCSX ReARMed

Ahora queda saber la ubicación donde colocar los ficheros de firmware. En la versión Flatpak de RetroArch la ubicación es la siguiente:

~/.var/app/org.libretro.RetroArch/config/retroarch/system/

Mientras que Ubuntu, instalando RetroArch mediante el PPA de Libreretro, la ruta es la siguiente (es probable que sea la misma en otros formatos de paquetes “tradicionales”):

~/.config/retroarch/system/

Tras colocar el o los ficheros de firmware en la ubicación correcta, solo hay que cerrar la aplicación, volverla a abrir y recorrer la ruta ya mostrada: Ajustes > Núcleos > “Administrar núcleos” > “Sony – PlayStation (PSCX ReARMed)”. El usuario verá delante la “Presente” en caso de que todo haya ido correctamente.

Firmware de PlayStation correctamente configurado en RetroArch

Con los componentes necesarios ya configurados para la emulación de la primera PlayStation, se procede a cargar el núcleo de PSCX ReARMed a través de “Menú principal” > “Cargar núcleo” > “Sony – PlayStation (PCSX ReARMed)”.

Cargando el núcleo de PCSX ReARMed para emular PlayStation 1 en RetroArch Cargando el núcleo de PCSX ReARMed para emular PlayStation 1 en RetroArch

Una vez ahí se procede a colocar el CD en el lector de disco ópticos del ordenador o se busca el contenido de un juego que puede estar en un fichero en formato ISO, IMG, MDF u otro relacionado con los discos ópticos.

Cargando un disco o una imagen de disco en RetroArch

Si todo ha ido bien, los juegos de PlayStation deberían de ejecutarse y funcionar con normalidad.

RetroArch con el núcleo PSCX ReARMed funcionando

Cómo cerrar un juego en RetroArch

Si uno presiona la tecla escape, verá que la aplicación muestra un aviso de que se cerrará en caso de volverla a pulsar dentro de un corto lapso de tiempo. En muchas ocasiones lo que se quiere hacer es solo cerrar el juego ejecutado, no la aplicación entera, así que para ello hay que pulsar la tecla ‘F1’. Se desplegará un menú en el que el usuario podrá realizar diversas acciones como la mencionada captura de pantalla y también es posible cerrar el juego sin llevarse por delante a RetroArch.

Cerrando un juego en RetroArch

Pero como muchos usan RetroArch para emular consolas de videojuegos, es muy probable que se esté usando un controlador, por lo que ir alternando entre el teclado y el controlador puede terminar siendo un poco molesto dependiendo de cómo se tengan ordenados los periféricos.

Con el fin de poder canalizar todas las características básicas de la aplicación a través de su controlador, en nuestro caso hemos configurado una entrada adicional para asignar el acceso al menú al botón de menú de un controlador 8BitDo Pro 2. Para ello hay que dirigirse al apartado Ajustes > Entrada > Teclas rápidas > Menú (alternar). Una vez allí se puede pulsar sobre la opción y presionar luego sobre el botón del controlador encargado de acceder al menú de RetroArch.

Botón del 8BitDo Pro 2 al que se le ha asignado el acceso al menú de RetroArch

Asignar el acceso al menú de RetroArch a un botón de un mando/controlador

Wayland, el tendón de aquiles

La experiencia de RetroArch con la emulación es buena, incluso es posible que sea mejor que con las aplicaciones originales de los módulos que toma. Además, permite configurar la salida de vídeo empleando OpenGL y Vulkan (entre otros) y el marco mediante el cual funcionan los periféricos (SDL, udev o HID).

Pero incluso con todas sus virtudes, RetroArch arrastra un inconveniente importante, y es que parece un software bastante atado a Xorg, lo que deriva en una experiencia mejorable sobre Wayland. Por ejemplo, al abrir la aplicación por primera vez o tras cerrarla, el usuario puede comprobar que al menos en GNOME Shell no es posible redimensionar la ventana. Para solucionar eso tiene que lidiar primero con la ventana empleando el teclado, ya sea maximizando o escorando a la izquierda o a la derecha empleando la tecla súper (o tecla Windows). Tras hacer eso, el usuario podrá lidiar con la ventana como de costumbre.

También hay opciones como “SwtichRes para CRT” que solo están disponibles al iniciar una sesión sobre Xorg. Dicha opción se encarga de generar señales de vídeo a baja resolución para pantallas CRT, las cuales desde hace mucho tiempo están en desuso y son más un artículo retro que otra cosa.

Configuración de vídeo de RetroArch en Xorg

Una forma de disimular algunas de las carencias de RetroArch sobre una sesión de Wayland es haciendo que la aplicación funcione siempre a pantalla completa, cosa que se consigue pulsando la tecla ‘F’. Eso sí, en caso de volver al modo ventana, esta queda de la siguiente manera. Por suerte eso se arregla cuando se empieza a redimensionar la ventana.

Ventana de RetroArch fallando en una sesión de Wayland tras salir del modo de pantalla completa

Por otro lado, la aplicación no bloquea el salvapantallas, ni siquiera habilitando la correspondiente opción, así que no queda otra que ir a la configuración del entorno de escritorio e inhabilitar el apagado de la pantalla para poder jugar sin molestias en una sesión de Wayland.

Conclusión

RetroArch es una solución de emulación con enormes posibilidades y que, una vez dominadas sus partes básicas, lo pone fácil para emular una gran cantidad de plataformas empleando una única interfaz. Esto elimina la necesidad de tener que aprender a usar y configurar una gran cantidad de emuladores diferentes.

Se trata de una aplicación con un gran futuro por delante y que aparentemente mejora constantemente, aunque en Linux tiene que mejorar su soporte para Wayland y pulir algunos aspectos que pueden dar un buen susto al usuario la primera vez que la abre.

Buena parte de lo expuesto en este artículo también sirve para Windows y macOS, por si alguien pregunta.

La entrada RetroArch, una solución universal de emulación para ‘retrogaming’ es original de MuyLinux

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.