I don’t like all the attention. I think it’s better to let my work do the talking.

No me gusta toda la atención. Creo que es mejor dejar que mi trabajo hable por mí.

Shigeru Miyamoto (Entrevista en DigitalTrends. 2006)

En días pasados, el buen amigo Dragón, me equipó con una Raspberry Pi, y me dí a la tarea de investigar varios proyectos interesantes que se pueden desarrollar con este hardware tan versátil. El que más llamo mi atención, además de satisfacer una necesidad geek recién adquirida, fue construir una consola de videojuegos retro.

En este post quiero compartirles como la construí. El hardware que utilice es:

Después de ensamblar el hardware, descargue la imagen de Raspbian y la instale en la microSD con el ARM installer de Fedora:

Al encender la Raspberry, se ejecuta el raspi-config, donde debemos modificar la configuración:

  • Expand Filesystem [Para que utilice los 8 Gb de la MicroSD]
  • Change User Password [Del usuario Pi]
  • Internationalisation Options [Modificar Teclado y zona horaria]
  • Advanced Options
    • SSH [Habilitar]
    • Hostname [Cambiar]
    • Memory Split [Modificar a 128 o 192]

Al seleccionar Finish, la raspberry se reiniciará. Después del reinicio, conectada a Internet vía Ethernet, actualizamos el firmware de la Pi:

root@heimdall:~# rpi-update 

Y posteriormente los paquetes:

root@heimdall:~# apt-get update
root@heimdall:~# apt-get upgrade

Después del reinicio, validamos que arranque correctamente el modo gráfico:

root@heimdall:~# startx

Al conectar la tarjeta wireless, no la reconocía, googleando un poco, encontré como instalar la tarjeta:

Descargar el driver más actual, siguiendo este post para ubicar el que le corresponde conforme la versión que tengamos, en mi caso:

root@heimdall:~# uname -a
Linux heimdall 3.18.5+ #744 PREEMPT Fri Jan 30 18:19:07 GMT 2015 armv6l GNU/Linux
root@heimdall:~#

En el post encontré el comentario acerca de la versión 3.18.5+ que  tengo, donde, para descargar la versión correspondiente había que ejecutar:

root@heimdall:~# wget https://github.com/lwfinger/rtl8188eu/raw/c83976d1dfb4793893158461430261562b3a5bf0/rtl8188eufw.bin -O /lib/firmware/rtlwifi/rtl8188eufw.bin

Y después de reiniciar, la tarjeta es funcional y se puede configurar con wpa_cli:

root@heimdall:~# wpa_cli 
...
Selected interface 'wlan0'

Interactive mode

> scan
OK
<3>CTRL-EVENT-SCAN-RESULTS 
> scan_results
bssid / frequency / signal level / flags / ssid
20:73:85:24:e2:a0 2412 46 [WPA2-PSK-CCMP][WPS][ESS] wifi_local 
c0:a5:62:7a:68:c0 2437 0 [WPA2-PSK-CCMP][WPS][ESS] ARRIS-76C3
0c:f8:96:29:f0:b0 2442 0 [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS] ARRIS-F030
> quit
root@heimdall:~#

Con esta info, generamos el archivo que contenga la configuración de nuestra red:

root@heimdall:~# vi /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
	ssid="wifi_local"
	psk="password"
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	auth_alg=OPEN
}
root@heimdall:~#

Si queremos agregar otra red, como la del trabajo, por ejemplo, podemos editar este mismo archivo, agregando las líneas correspondientes de la red deseada:

network={
	ssid="wifi_chamba"
	psk="password_chamba"
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	auth_alg=OPEN
}

Y configuramos la conexión automática al arranque, editando el archivo /etc/network/interfaces, agregando al principio del archivo la línea:

auto wlan0

Al final del mismo archivo, agregamos:

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Al reiniciar, debe conectarse automáticamente a nuestra red inalámbrica, lo comprobamos con wpa_client:

root@heimdall:~# wpa_cli 
...
Selected interface 'wlan0'

Interactive mode

> status
bssid=20:73:85:24:e2:a0
ssid=wifi_local 
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.0.11
address=e8:de:27:a5:44:fb
> quit
root@heimdall:~#

Con la wireless funcional, iniciamos la configuración de la RetroPie, para lo cual opte por utilizar el método de la wiki del proyecto en github; entonces, primeramente, instalamos git y sus dependencias:

root@heimdall:~# apt-get install -y git dialog

Con el usuario pi, iniciamos la instalación de RetroPie:

pi@heimdall ~ $ git clone --depth=1 git://github.com/petrockblog/RetroPie-Setup.git
pi@heimdall ~ $ cd RetroPie-Setup
pi@heimdall ~ $ chmod +x retropie_setup.sh
pi@heimdall ~ $ sudo ./retropie_setup.sh

Al terminar la instalación/configuración, nos creará varios directorios dentro del directorio $HOME/RetroPie:

pi@heimdall ~ $ ls RetroPie/*
RetroPie/BIOS:
CARTS.SHA fast.bin gles2n64rom.conf MSX2EXT.ROM MSX2.ROM PAINTER.ROM system.bin
CYRILLIC.FNT FMPAC16.ROM ITALIC.FNT MSX2PEXT.ROM MSXDOS2.ROM RS232.ROM
DISK.ROM FMPAC.ROM KANJI.ROM MSX2P.ROM MSX.ROM skip.bin

RetroPie/roms:
amiga gamegear mame-samples pc snes
amstradcpc gamegear-osmose mastersystem pcengine snes-pisnes
apple2 gb mastersystem-osmose pcengine-libretro snes-snes9xrpi
atari2600-libretro gba megadrive ports vectrex
atari2600-stella gbc megadrive-dgen psx zmachine
atari800 intellivision msx quake3 zxspectrum
atarilynx macintosh n64 scummvm zxspectrum-fbzx
atariststefalcon mame n64-mupen64plus sega32x
c64 mame-advmame neogeo sega32x-dgen
fba mame-artwork neogeo-gngeopi segacd
fba-libretro mame-libretro nes segacd-dgen
pi@heimdall ~ $

Después de reiniciar la Pi, al hacer login, nos muestra el inicio característico de RetroPie:

Los ROM’s de los juegos hay que transferirlos por SSH al directorio correspondiente de la consola, por ejemplo:

[alex.callejas@isengard retropie]$ scp Super_Mario_Bros.3.nes  pi@192.168.0.9:/home/pi/RetroPie/roms/nes/

Buscando un poco se pueden encontrar nuestros juegos predilectos 😉

Para arrancar la consola Retropie, ejecutamos:

pi@heimdall ~ $ emulationstation

La primera vez, nos pedirá configurar el control que deseemos usar y después de eso ya podemos jugar en la consola.

Para mayor información, consulten la wiki del proyecto, acerca de roms, emulación de plataformas, configuración de controles, etc.

Aquí la galería con la RetroPie en funciones:

Próximamente estaré probando el nuevo modelo, la Raspberry Pi 2 B+, para poder emular Nintendo 64 como se debe:

Ver en YouTube

Espero se diviertan… 🙂