Crear una consola de videojuegos retro desde un sistema base (Ubuntu)

Hace un tiempo empecé el desarrollo de un programa que permitiera hacer de una PC una consola de videojuegos retro, a partir de una una mini laptop que tenía especificamente; por cierto, hice ésta entrada de blog al respecto. Avancé bastante la verdad, pero al final descubrí que estaba tratando de crear la rueda 😅, pero fue buena la experiencia dado que lo estaba desarrollando mediante Gambas3 y SQLite (lenguaje de programación y base de datos que desconocía). Bueno, entonces sí, ya existía eso que quería hacer; su nombre es RetroPie.

RetroPie

RetroPie es propiamente un sistema operativo basado en Raspbian, EmulationStation, RetroArch y otros proyectos de software libre, el cual nos permite crear una consola de videojuegos a partir de una Raspberry Pi, ODroid C1/C2, o una computadora convencional. Es algo así como tener un portal de emuladores, para así poder ejecutar juegos de Atari, Nintendo (NES), Super Nintendo (SNES), Nintendo 64 (N64), y una gran lista más de consolas (Ver la lista completa de emuladores soportados).

En ésta entrada, les comparto un mini tutorial para instalar, en una computadora convencional, una consola de videojuegos retro basado en Ubuntu y RetroPie.

Lo primero será descargar la versión de Ubuntu más minimalista que hay. A continuación, la URL de descarga:

En mi caso, descargué la versión Ubuntu 18.04 «Bionic Beaver» de 64-bit PC.

De ahí, pues ya saben… Como todo ISO de un sistema operativo, se debe de quemar en CD o hacer una USB «booteable» para poder instalarlo en una PC mediante dicho medio. Tengo un vídeo para la instalación básica de un Ubuntu Server, el cual se parece un poco al procedimiento en nuestro caso… pero recomiendo que se tome en cuenta algunos detalles para la instalación (y como convención para éste tutorial):

  • De preferencia, establecer una IP Fija y un nombre de host al gusto. Tomar en cuenta que el equipo deberá de contar con Internet para poder instalar los paquetes, por cuanto hacer las configuraciones respectivas o, si hay un dhcp (y no se quieren complicar…), no modificar la configuración IP.
  • Asignar como nombre de usuario retropie y contraseña retro
  • Entre los paquetes que hay que marcar:
    • Utilidades de servidor (Basic Ubuntu Server)
    • Servidor OpenSSH (Para la conexión remota al servidor mediante Putty en Windows o el comando ssh en sistemas GNU/Linux)
    • Especificar el directorio /home separado, si es posible. Totalmente opcional.

Por si sirve de algo, un vídeo que puede darles una guía de la instalación. Ojo, de guía… no seguir paso a paso, dado que posiblemente no sea igual, dado que el vídeo es de la versión 14.04 y el objetivo era otro, pero igual… Inicia en el minuto 0:59 la instalación.

Al finalizar la instalación de Ubuntu, nos aparecerá el inicio de sesión, donde nos «loguearemos» con el usuario y contraseña que pusimos durante la instalación (retropie y contraseña retro).

Modificaremos el archivo /etc/sudoers para dar privilegios de sudo al usuario retropie cuando éste lo requiera (sin contraseña).

sudo sed -i -e '$a\retropie ALL=(ALL) NOPASSWD:ALL' /etc/sudoers

Actualizaremos el repositorio de paquetes y el sistema.

sudo apt update -y
sudo apt upgrade -y

Ahora, instalaremos las dependencias básicas para ejecutar EmulationStation ingresando la siguiente línea de comando (1 sola):

sudo apt install xorg openbox pulseaudio alsa-utils python-xdg at-spi2-core menu dbus-x11 git dialog unzip xmlstarlet --no-install-recommends -y

Procederemos a configurar el autologin, de tal manera que al iniciar el SO de una vez inicie la sesión del usuario retropie; para esto, crearemos una carpeta, un archivo y le añadiremos unas líneas al mismo.

sudo mkdir /etc/systemd/system/getty@tty1.service.d/
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

Ingresaremos las siguientes líneas dentro de override.conf

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin retropie --noclear %I
Type=Idle

Guardamos y cerramos el editor nano (yo lo hago presionando CTRL+X , luego presiono la tecla Y para confirmar la escritura y [ENTER] para confirmar el nombre de archivo).

Podemos hacer la prueba de que funcione bien el autologin, reiniciando el equipo (sudo reboot); debería iniciarse la sesión del usuario retropie automáticamente.

Una vez tenemos nuestro entorno preparado, descargaremos RetroPie y lo instalaremos; Para descargarlo, ingresamos la siguiente línea de comando:

git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git

Ahora iniciaremos la instalación así:

sudo RetroPie-Setup/retropie_setup.sh

Éste proceso instala la base de RetroPie, y nos aparecerá una pantalla con el RetroPie-Setup Script.

RetroPie Setup
RetroPie Setup

Presionamos [ENTER] en la opción «Basic Install» y esperamos a que se termine de descargar e instalar muchas cosas…

Una vez finalizado el proceso, nos vamos a la opción «Configuration / tools» y luego [ENTER] a la opción «Autostart Emulation Station after login» (creo que damos otro ENTER para habilitarlo). Con la tecla [ESC] (varias veces) nos salimos del menú a la terminal nuevamente para configurar la ejecución automática del escritorio.

Ingresamos la siguiente línea de comando:

nano ~.bashrc

Y dentro de éste archivo agregamos las siguientes líneas:

if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
   exec startx
fi

Cerramos y guardamos el archivo. Ya podemos hacer la prueba… Reiniciamos el equipo con:

sudo reboot

Y, al iniciar, debería de ejecutarse de una vez el EmulationStation.

EmulationStation
EmulationStation

Por el momento, sería todo. Todavía falta habilitar la carpeta compartida de los ROMS mediante SAMBA (Configuration / tools), buscar y copiar los roms (juegos) de las consolas que queramos, configurar los controles, configurar los emuladores al gusto, instalar temas, otras configuraciones, etc.

Espero retomar el hilo de esta entrada más adelante. ¡Saludos!.

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*