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:
- Raspberry Pi 1 Model B+
- Adafruit Pi Box – Enclosure
- SanDisk Ultra microSDHC 8 Gb
- TP-LINK TL-WN725N Wireless N Nano USB Adapter
- SNES Retro USB Super Nintendo Controller
- Raspberry Pi 1 B+
- TP-LINK Wireless Nano USB Adapter
- SanDisk Ultra microSDHC
- SNES Retro USB Super Nintendo Controller
- Charge cable
- Raspberry Pi 1 B+
- Ensamblado 1
- Ensamblado 2
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:
- RetroPie
- Consola RetroPie
- emulationstation
- NES
- Roms
- Super Mario Bros 3
- Super Mario Bros 3
- Super Mario Bros 3
- Super Mario Bros 3
- emulationstation
Próximamente estaré probando el nuevo modelo, la Raspberry Pi 2 B+, para poder emular Nintendo 64 como se debe:
Espero se diviertan… 🙂
Buen tuto, se antoja para crear el mio tambien… Saludos
Anímate!! Son muchas horas de diversión… 😉
Saludos!
Siguiendo este tutorial he logrado construirme una maquina arcade con una raspberry pi 2 y retropie 3.0. Salvo que soy incapaz de configurar un segundo joystick. Es lo que me falta.
Por cierto’el emulador de N64 en la pi 2 está aún sin pulir, y da bastantes fallos.
Que bien! Checa la wiki del proyecto, encontrarás como puede funcionar. 😉
Saludos!