Retropie

En construcción.png

Este artículo está en construcción.

Por esta razón, seguramente habrá lagunas en el contenido o en el formato. Por favor, antes de cambiar el contenido, consulta la página de discusión del artículo.

Para consultas y debates sobre el contenido de este artículo, visita el Hilo oficial.


El Proyecto Retropie tiene como finalidad convertir a la Raspberry Pi en una consola de juegos-retro dedicada. El proyecto usa Raspbian como SO (Sistema Operativo) en integra un conjunto de emuladores para una gran variedad de sistemas de las décadas pasadas. A parte de los emuladores, también cuenta con una interfaz gráfica (EmulationStation).

Las imágenes para Raspberry Pi 1, 2 y 3 están disponibles en la página oficial:

  • Última versión estable: 4.5 (recomendable)

La mayor parte de este artículo tratará sobre la configuración para la 3.0 que difiere de la 2.6.

Logo Retropie - Emulación Raspberry.png

Contenido

Sistemas

Emuladores

Listado de emuladores soportados en la última versión:

Sistema Emulador/es Extensiones soportadas Retroarch BIOS
Logotipo 3do - Consola de Panasonic.png

3DO Interactive Multiplayer
4do-libretro
(experimental)
.iso
/home/pi/RetroPie/roms/3do
SI.png panafz10.bin
/home/pi/RetroPie/BIOS
Logotipo Amstrad CPC - Consola de Amstrad.png

Amstrad CPC
CPC4Rpi .dsk .cpc
/home/pi/RetroPie/roms/amstradcpc
NO.png NO.png
libretro-caprice32 SI.png
Apple II - Consola de Apple.jpg

Apple II
Linapple .dsk
/home/pi/RetroPie/roms/apple2/
NO.png NO.png
Logotipo Apple Macintosh - Consola de Apple.jpg

Apple Macintosh
BasiliskII .img .rom (.dsk?, .sit?)
/home/pi/RetroPie/roms/macintosh
NO.png mac.rom
disk.img
/home/pi/RetroPie/roms/macintosh
Logotipo Atari 2600 - Consola de Atari.png

Atari 2600
Stella .bin .a26 .rom
/home/pi/RetroPie/roms/atari2600/
NO.png NO.png
stella-libretro SI.png
Logotipo Atari 5200 - Consola de Atari.jpg

Atari 800 y 5200
(Atari 400, 800, 1200XL, 600XL, 800XL, 130XE, XEGS)
(Atari 5200)
Atari800 .xex .bin .a52
/home/pi/RetroPie/roms/atari800
/home/pi/RetroPie/roms/atari5200
NO.png ATARIXL.ROM (BIOS Atari XL/XE OS)
ATARIBAS.ROM (BIOS BASIC interpreter)
ATARIOSA.ROM (BIOS Atari 400/800 PAL)
ATARIOSB.ROM (BIOS Atari 400/800 NTSC)
5200.rom (BIOS Atari 5200)
/home/pi/RetroPie/BIOS
Logotipo Atari 7800 - Consola de Atari.png

Atari 7800
Prosystem-libretro .a78 .bin
/home/pi/RetroPie/roms/atari7800
SI.png 7800 BIOS (U).rom (opcional)
/home/pi/RetroPie/BIOS
Logotipo Atari Jaguar - Consola de Atari.jpg

Atari Jaguar
virtualjaguar-libretro
(experimental)
.j64 .jag
/home/pi/RetroPie/roms/atarijaguar
SI.png NO.png
Logotipo Atari Lynx - Consola de Atari.jpg

Atari Lynx
libretro-handy .lnx
/home/pi/RetroPie/roms/atarilynx/
SI.png NO.png
Logotipo Atari ST STE TT Falcon - Consola de Atari.jpg

Atari ST STE TT Falcon
Hatari .st, .stx, .img, .rom
/home/pi/RetroPie/roms/atariststefalcon
NO.png NO.png
Logotipo Commodore 64 - Consola de Commodore.png

Commodore 64
VICE .crt .d64 .g64 .t64 .tap .x64
/home/pi/RetroPie/roms/c64
NO.png NO.png
Logotipo Amiga - Consola de Commodore.png

Commodore Amiga
UAE4ALL2 .adf
/home/pi/RetroPie/roms/amiga/
NO.png kick13.rom
kick20.rom
kick31.rom
/home/pi/RetroPie/BIOS/
UAE4ARM NO.png
Dragon 32/64
TRS-80 Color Computer
XRoar ¿?
/home/pi/RetroPie/roms/xroar
NO.png d32.rom (Dragon 32)
bas13.rom (CoCo)
/home/pi/RetroPie/BIOS/
Logotipo FinalBurn Alpha - Multiple Arcade Emulator.png

FinalBurn Alpha
(Capcom CPS-1, CPS-2, CPS-3)
(Cave)
(Data East DEC-0, DEC-8 and DECO IC16 based games)
(Galaxian)
(Irem M62, M63, M72, M90, M92 y M107)
(Kaneko 16)
(Konami)
(Neo-Geo)
(NMK16)
(Pacman)
(PGM)
(Psikyo 68EC020 y SH-2)
(Sega System 1, System 16, System 18, X-Board y Y-Board)
(Super Kaneko Nova System)
(Toaplan 1, Toaplan 2)
Taito F2, X, Z)
PiFBA .zip (0.2.96.71 romset)
/home/pi/RetroPie/roms/fba
/home/pi/RetroPie/roms/neogeo
NO.png neogeo.zip
/home/pi/RetroPie/roms/fba
fba-libretro .zip (0.2.97.30 romset)
/home/pi/RetroPie/roms/fba
/home/pi/RetroPie/roms/neogeo
SI.png
Logotipo Game&Watch - Consola de Nintendo.png

Game & Watch
lr-gw
(experimental)
.mgw
/home/pi/RetroPie/roms/gameandwatch
SI.png NO.png
Logotipo Intellivision - Consola de Mattel.gif

Intellivision
jzintv .int .bin
/home/pi/RetroPie/roms/intellivision
NO.png exec.bin (executive)
grom.bin (graphics)
ECS.BIN (entertainment computer system ECS)
IVOICE.BIN (intellivoice)
/home/pi/RetroPie/BIOS/
Mame Logo.png

MAME
AdvanceMAME .zip (0.106 romset)
/home/pi/RetroPie/roms/mame-advmame
NO.png neogeo.zip
/home/pi/RetroPie/roms/mame-mame4all
/home/pi/RetroPie/roms/mame-advmame
Mame4all-Pi .zip (0.37b5 romset)
/home/pi/RetroPie/roms/mame-mame4all
NO.png
imame4all-libretro .zip (0.37b5 romset)
/home/pi/RetroPie/roms/mame-mame4all
SI.png
Logotipo MSX - Consola de Microsoft.png

MSX
fmsx-libretro .rom .mx1 .mx2 .col .dsk
/home/pi/RetroPie/roms/msx
SI.png NO.png
lr-bluemsx SI.png
Logotipo NeoGeo - Consola de SNK.jpg

Neo Geo
GnGeo-Pi .zip (0.106 romset)
/home/pi/RetroPie/roms/mame-advmame
NO.png neogeo.zip
/home/pi/RetroPie/roms/neogeo
PiFBA .zip (0.2.96.71 romset)
/home/pi/RetroPie/roms/neogeo
NO.png
fba-libretro .zip (0.2.97.30 romset)
/home/pi/RetroPie/roms/neogeo
SI.png
Logotipo Neo Geo Pocket - Consola de SNK.jpg

Neo Geo Pocket
lr-mednafen-ngp .ngp .ngc
/home/pi/RetroPie/roms/ngp
SI.png NO.png
Logotipo Nintendo 64 - Consola de Nintendo.png

Nintendo 64
Mupen64plus .z64 .n64 .v64
/home/pi/RetroPie/roms/n64
NO.png NO.png
Mupen64plus-libretro SI.png
Nintendo DS logo.png

Nintendo DS
libretro-desmume
(experimental)
.nds .bin
/home/pi/RetroPie/roms/nds
SI.png NO.png
Logotipo Nintendo Entertainment System - Consola de Nintendo.png

Nintendo Entertainment System (NES)
lr-nestopia .zip .nes .smc .sfc .fig .swc .mgd
/home/pi/RetroPie/roms/nes
SI.png disksys.rom (Famicom Disk System)
/home/pi/RetroPie/BIOS
lr-fceumm SI.png NO.png
Logo Game Boy - Videoconsola de Nintendo.png

Game Boy
gambatte-libretro .gb
/home/pi/RetroPie/roms/gb
SI.png NO.png
lr-tgbdual SI.png
Logo Game Boy Color - Videoconsola de Nintendo.png

Game Boy Color
gambatte-libretro .gbc
/home/pi/RetroPie/roms/gbc
SI.png NO.png
lr-tgbdual SI.png
Game Boy Advance Logo.png

Game Boy Advance
gpSP .gba
/home/pi/RetroPie/roms/gba
NO.png gba_bios.bin
/home/pi/RetroPie/BIOS
libretro-gpSP SI.png
lr-vba-next SI.png
lr-mgba SI.png
Logotipo Virtual Boy - Videoconsola de Nintendo.png

Virtual Boy
beetle-vb-libretro
(experimental)
.vb
/home/pi/RetroPie/roms/virtualboy
SI.png NO.png
Ibmlogo.jpg

PC (DOSBox)
DOSBox .com .sh .bat .exe
/home/pi/RetroPie/roms/pc
NO.png NO.png
Logotipo PC Engine - Videoconsola de Hudson y NEC.jpg

PC Engine
lr-mednafen-pce-fast .pce
/home/pi/RetroPie/roms/pcengine
SI.png syscard3.pce
/home/pi/RetroPie/BIOS
Logotipo PlayStation 1 - Videoconsola de Sony.png

PlayStation 1
libretro-pcsx-rearmed .bin .cue .img .mdf
/home/pi/RetroPie/roms/psx
SI.png SCPH1001.BIN
/home/pi/RetroPie/BIOS
pcsx-rearmed NO.png
ScummVM Logo.png

ScummVM
ScummVM .sh .svm
/home/pi/RetroPie/roms/scummvm
NO.png NO.png
Logotipo Sega 32X - Videoconsola de Sega.png

Sega 32X
libretro-picodrive .32x .smd .bin .md
/home/pi/RetroPie/roms/sega32x
SI.png NO.png
Logotipo Sega CD - Videoconsola de Sega.png

Sega CD
libretro-Genesis-Plus-GX .smd .bin .md .iso
/home/pi/RetroPie/roms/segacd
SI.png us_scd1_9210.bin (libretro-Genesis-Plus-GX)
bios_CD_U.bin(libretro-picodrive)
/home/pi/RetroPie/BIOS
libretro-picodrive SI.png
Logotipo Dreamcast - Videoconsola de Sega.png

Dreamcast
Reicast
(experimental)
.cdi .gdi
/home/pi/RetroPie/roms/dreamcast
NO.png dc_boot.bin
dc_flash.bin
/home/pi/RetroPie/BIOS
Logo Sega Game Gear.png

Game Gear
Osmose .gg
/home/pi/RetroPie/roms/gamegear
NO.png NO.png
libretro-Genesis-Plus-GX SI.png
Logotipo Mega Drive 001.png

Megadrive/Genesis
DGen .smd .bin .md .iso
/home/pi/RetroPie/roms/megadrive
/home/pi/RetroPie/roms/genesis
NO.png NO.png
libretro-picodrive SI.png
libretro-Genesis-Plus-GX SI.png
Logotipo Master System - Videoconsola de Sega.png

Master System
Osmose .sms
/home/pi/RetroPie/roms/mastersystem
NO.png NO.png
libretro-picodrive SI.png
libretro-Genesis-Plus-GX SI.png
Logotipo Sega Saturn - Videoconsola de Sega.png

Sega Saturn
lr-Yabause
(experimental)
.bin .iso .mdf
/home/pi/RetroPie/roms/saturn
SI.png dc_boot.bin
saturn_bios.bin
/home/pi/RetroPie/BIOS
Logotipo Sega SG-1000 - Videoconsola de Sega.png

Sega SG-1000
Libretro-Genesis-Plus-GX .sg .zip
/home/pi/RetroPie/roms/sg-1000
SI.png NO.png
Super Nintendo Logo.png

Super Nintendo Entertainment System
libretro-snes9x-next .zip .smc .sfc .fig .swc
/home/pi/RetroPie/roms/snes
SI.png NO.png
PiSNES NO.png
snes9x-rpi NO.png
libretro-armsnes SI.png
libretro-catsfc SI.png
libretro-pocketsnes SI.png
Logotipo Vectrex - Videoconsola.png

Vectrex
libretro-vecx .vec .gam .bin
/home/pi/RetroPie/roms/vectrex
SI.png NO.png
Logotipo Odyssey2 Videopac - Videoconsola de Philips.png

Videopac/Odyssey2
Libretro-o2em .bin
/home/pi/RetroPie/roms/videopac
SI.png o2rom.bin
/home/pi/RetroPie/BIOS
Logotipo WonderSwan - Videoconsola de Bandai.png

WonderSwan (Color)
lr-mednafen-wswan .ws .wsc
/home/pi/RetroPie/roms/wonderswan
SI.png NO.png
Logotipo Zmachine - Videoconsola.jpg

Zmachine
Frotz .z3 .DAT
/home/pi/RetroPie/roms/zmachine
NO.png NO.png
Logotipo ZX Spectrum - Videoconsola de Sinclair.png

ZX Spectrum
libretro-fuse sna .szx .z80 .tap .tzx .gz .udi .mgt .img .trd .scl .dsk
/home/pi/RetroPie/roms/zxspectrum
SI.png NO.png
FBZX NO.png
Fuse NO.png

Ports

Listado de ports de juegos soportados en la última versión:

Sistema Emulador/es Retroarch Descripción Otros
Logotipo KODI - Home Media Server.png

KODI
KODI
(experimental)
NO.png Kodi es un Home Media Server antiguamente conocido como XBMC.
Logotipo Minecraft Pi Edition - Juego de Mohang.jpg

Minecraft Pi Edition
Minecraft Pi Edition
(experimental)
NO.png Versión de Minecraft para la Raspberry Pi. Necesario teclado y ratón.
Logotipo Cave Story - Juego de PC.png

Cave Story
nxengine-libretro SI.png Videojuego freeware de acción / plataforma. Añadir los archivos del juego a:
/home/pi/RetroPie/roms/ports/CaveStory
Cabecera Doom.jpg

DOOM
(DOOM I, DOOM II)
libretro-prboom SI.png Videojuego de disparo en primera persona desarrollado por id Software en 1993. Añadir los archivos del juego a:
/home/pi/RetroPie/roms/ports/doom/
Logotipo Duke Nukem 3D - Juego de PC.jpg

Duke Nukem 3D
Eduke32 NO.png Videojuego de disparo en primera persona desarrollado por 3D Realms en 1996.
Quake.png

Quake Series
(Quake I, DarkPlaces Quake, Quake III)
Libretro-tyrquake SI.png Quake: videojuego de disparo en primera persona desarrollado por id Software en 1999.
DarkPlaces Quake Engine
(experimental)
NO.png DarkPlaces Quake: rebuild del engine de queake con mejores gráficos y rendimiento.
ioQuake3 NO.png Quake III Arena: tercer juego de la serie. Multijugador.
Logotipo Descent - Juego de PC.gif

Descent
(Descent, Descent 2)
D1X-Rebirth
(experimental)
NO.png Descent 1: videojuego de disparo en primera persona de los 90's. Añadir los archivos del juego y misiones a:
/home/pi/RetroPie/roms/ports/descent1
/home/pi/RetroPie/roms/ports/descent1/missions
D2X-Rebirth
(experimental)
NO.png Descent 2: videojuego de disparo en primera persona de los 90's. Añadir los archivos del juego y misiones a:
/home/pi/RetroPie/roms/ports/descent2
/home/pi/RetroPie/roms/ports/descent2/missions
Logotipo Super Mario War - Juego de PC.jpg

Super Mario War
Super Mario War NO.png Videojuego multijugador de Super Mario. Instrucciones para hacerlo funcionar en retropie

Juegos

Listado de juegos soportados en la última versión:

Sistema Emulador/es Retroarch Descripción Otros
Logotipo Dinothawr - Juego libretro core.png

Dinothawr
Dinothawr SI.png Dinothawr es un puzzle de presionar bloques en una superficie resbaladiza. Nuestro heroes es un dinosaurio cuyos amifos están atrapados en hielo. A traves de puzzles tu misión es liberar a los dinosaurios de sus prisiones de hielo. Instrucciones para hacerlo funcionar en retropie

Configuración de emuladores

Sección donde se detallarán configuraciones especificas de aquellos emuladores que no usen retroarch y/o aquellos que necesiten configuraciones especiales para su funcionamiento. Para seleccionar emulador una vez que hayamos ejecutado un "rom" deberemos pulsar inmediatamente el botón "0" (normalmente pulsar hacia abajo) o "x".

Amiga (UAE4All)

Tutorial no actualizado a la versión 3.0 de Retropie.

  • Configuración en es_systems.cfg:
<system>
<fullname>Amiga</fullname>
<name>amiga</name>
<path>~/RetroPie/roms/amiga</path>
<extension>.txt .adf .ADF</extension>
<command>/opt/retropie/emulators/uae4rpi/uae4all %ROM%</command>
<platform>amiga</platform>
<theme>amiga</theme>
</system>
  • Para que funcione este emulador, será necesario incluir el archivo "kick.rom" dentro del directorio:
  • Para la versión 2.2 de Retropie: /opt/retropie/emulators/uae4rpi/

Armstrad CPC (CPC4RPi)

Tutorial no actualizado a la versión 3.0 de Retropie.

  • No aparece en EmulationStation aun metiendo roms en el directorio correspondiente.
  • Para ejecutar el emulador nos vamos a un terminal (presionando F4) y accedemos el directorio del emulador (sustituir el asterisco por la rom)
cd /opt/retropie/emulatorscpc4rpi-1.1/
./cpc4rpi /home/pi/RetroPie/roms/armstradcpc/*.dsk
  • Una vez dentro deberemos ejecutar los siguientes comandos (en este ejemplo se carga el juego Hero Quest)
CAT (listamos los archivos)
RUN"HERO
  • Para salir del emulador habrá que pulsar F6 y para resetearlo F5.

Dinothawr

Tutorial sacado del foro oficial, realizado por Floob.

Pasos:

  • Descargar los archivos del juego Dinothawr para la Raspberry Pi y descomprimirlos en:
/home/pi/RetroPie/roms/ports/dinothawr
/opt/retropie/libretrocores/lr-dinothawr
  • Crear el directorio /opt/retropie/configs/dinothawr/ y crear una configuración para el juego retroarch.cfg y poner lo siguiente en el:
#include "/opt/retropie/configs/all/retroarch.cfg"
# All settings made here will override the global settings for the current emulator core
input_remapping_directory = /opt/retropie/configs/dinothawr/
  • Crear Dinothawr.sh en /home/pi/RetroPie/roms/ports/ y poner lo siguiente en el:
#!/bin/bash
/opt/retropie/supplementary/runcommand/runcommand.sh 0 "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-dinothawr/dinothawr_libretro.so --config /opt/retropie/configs/dinothawr/retroarch.cfg /home/pi/RetroPie/roms/ports/dinothawr/dinothawr.game" "dinothawr"

Game Boy Advance (gpSP)

Tutorial no actualizado a la versión 3.0 de Retropie.

  • Para que funcione este emulador, será necesario que incluyamos el archivo de la bios de GameBoy Advance "gba_bios.bin" dentro del directorio:
  • Para la versión 2.2 de Retropie: /opt/retropie/emulators/gpsp/raspberrypi/
  • Para versiones anteriores: /home/pi/RetroPie/emulators/gpsp/raspberrypi/
  • Para acceder al menú de este emulador deberemos pulsar a la vez los botones: Select + Gatillo Derecho (Right Trigger). Una vez en el menú podremos salvar/cargar estados, configurar los controles, salir del emulador, etc.

Game&Watch

Las roms para este emulador la podemos descargar de http://bot.libretro.com/assets/cores/gw/

Game Gear (Osmose)

  • Para utilizar un joystick deberemos cambiar el comando relativo a la Game Gear en el archivo es_systems.cfg (sustituyendo x, y, z por los botones del gamepad):
<system>
<fullname>Sega Game Gear</fullname>
<name>gamegear</name>
<path>~/RetroPie/roms/gamegear</path>
<extension>.gg .GG</extension>
<command>/opt/retropie/emulators/osmose-0.8.1+rpi20121122/osmose %ROM% -joy1 x -joy2 y -joystart z -joy -tv -fs</command>
<platform>gamegear</platform>
<theme>gamegear</theme>
</system>
  • Para salir de este emulador habrá que hacerlo mediante la tecla ESC de un teclado. Si se quiere usar un botón del gamepad habrá que aplicar este parche y recompilar. Entonces ya podremos usar la opción "-joyquit w". Otra opción es bajarse el binario ya compilado con esta opción y descomprimirlo en la raspberry en el mismo directorio (borrando antes el antiguo).

Mame (AdvanceMAME y Mame4all-Pi)

Tutorial (post del tutorial) para poder usar el mando dualshock 3 con el emulador de la mame:

  • El problema es debido a que el emulador rechaza cualquier gamepad con mas de 6 ejes. El mando de la PS3 tiene mas de 6 debido a los botones analógicos.
  • Editar el archivo minimal.cpp que se encuentra en la ruta mame4all-pi/src/rpi mediante el comando:
sudo nano /opt/retropie/emulators/mame4all-pi/src/rpi/minimal.cpp
  • Las lineas desde la 168 a la 174 tienen que quedar así: (se añade // delante de cada una para comentar el código):
// if (SDL_JoystickNumAxes(myjoy[i]) > 6)
// {
// SDL_JoystickClose(myjoy[i]);
// myjoy[i]=0;
// logerror("Error detected invalid joystick/keyboard\n");
// break;
// }
  • Pulsamos ctrl+x para guardar y salir.
  • Recompilamos yendo al directorio de mame4all y ejecutando el comando (puede llevar un par de horas):
cd /opt/retropie/emulators/mame4all-pi/
sudo make
  • Ahora simplemente con un teclado configuramos el dualshock en el menu del emulador pulsando la tecla tab, y asignamos las combinaciones de botones que queramos para por ejemplo emular la tecla tab para abrir el menu, seleccionar, etc, cada uno la que mas le guste, y ya no necesitariamos teclado para nada, lo hariamos todo desde el mando. Para que los cambios sean permanentes haremos lo siguiente:
  • Miramos si existe una carpeta llamada cfg en el directorio de mame4all-pi y si no creamos una.
  • Si existe comprobamos quien tiene la carpeta con el siguiente comando:
ls -ld /opt/retropie/emulators/mame4all-pi/cfg
  • Para que se guarden los cambios el usuario debe ser pi, no root, tendria que salir algo asi:
drwxr-xr-x 2 pi pi 4096 Jul 8 14:21 /opt/retropie/emulators/mame4all-pi/cfg
  • Si sale root, cambiamos el usuario a pi con el siguiente comando:
sudo chown -R pi /opt/retropie/emulators/mame4all-pi/cfg

Para acceder al menú de este emulador se hará con el tabulador del teclado (por defecto). Una vez allí podremos configurar nuestro gamepad. Con ESC se sale del emulador y del menú. La configuración se guarda en "/opt/retropie/configs/mame-mame4all/cfg/default.cfg".

Configuración de botones en el emulador mame4all-pi

NeoGeo (PiFBA)

Para configurar los controles deberemos hacerlo en el archivo:

nano /opt/retropie/emulators/pifba/fba2x.cfg

Si al ejecutar algún juego vemos que faltan los sprites o el fondo del juego deberemos revisar que los roms son correctas o la bios.

Para salir del emulador se hará presionando a la vez: SELECT + START.

Super Mario War

Enlace al tutorial (en ingles).

Instalación

Mediante imagen SD

Lo primero es bajarse la imagen SD con todos los emuladores todo perfectamente configurado: Retropie Proyect Image.

Una vez descargado el archivo y extraida la imagen, deberemos copiar la imagen en una SD (mínimo 4 GB de espacio):

sudo dd if=PATH_TO_IMG_FILE of=PATH_TO_SD_CARD_MOUNT_POINT bs=1M

Configuración

Una vez grabada la imagen en la tarjeta SD la meteremos en la Raspberry Pi y la conectaremos (será necesario conectar también un teclado para la configuración).

Nada mas arrancar nos saldrá una pantalla para poder configurar los botones del mando (esta configuración solo se aplica al menú EmulationStation pero no para los emuladores) para omitir un botón se puede dejar pulsado cualquiera durante 2 segundos. Una vez que ha terminado de arrancar solo veremos los emuladores de "IBM", "Ports" (y algún otro mas) ya que hasta que no hayamos metido alguna "rom" en los directorios de los emuladores, estos no aparecerán listados en el EmulationStation.

Primeros pasos

Ahora o bien podemos irnos al menú "Retropie" en el EmulationStation y seleccionar la opción "Retropie-Setup" (solo disponible a partir de la versión 3.0) o bien presionaremos F4 que nos llevará a la linea de comandos e introducimos el siguiente comando:

sudo raspi-config

Una vez en el menú (nos moveremos por el mediante las flecha / tabulador y enter / espacio):

  • Seleccionamos la opción "Expand Filesystem" (para poder usar toda la tarjeta SD) y esperaremos a que termine.
  • Luego podremos configurar si queremos la localización, el tipo de teclado y la zona horaria en "Internationalisation Options".
  • Iremos a la opción "Advanced Options" y activaremos el acceso por SSH para poder cargar roms sin necesidad de cables.
  • Cambiamos la contraseña del usuario.
  • Por último seleccionaremos "Finish" y esperaremos a que la Raspberry se reinicie.

La contraseña del usuario "root" del sistema puede ser modificada mediante el comando:

sudo passwd

Wifi

Teniendo en cuenta que retropie es simplemente un script ejecutandose en Raspbian OS (debian wheezy), para configurar un dongle wifi USB podremos hacerlo de varias maneras:

  • En EmulationStation desde la Versión 3 Beta 3, la conexión a la Wifi se puede hacer en EmulationStation desde el menu "Retropie" / "Configure Wifi" (necesitaremos conexión a internet la primera vez para la instalación de wicd-curses).
  • Mediante el terminal (presionando F4 desde EmulationStation) y utilizando el comando:
sudo nano /etc/network/interfaces
Luego editaremos el archivo de esta manera (cambiando "ssid" y "password" por nuestros datos):
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "ssid"
wpa-psk "password"
  • Mediante el programa Wicd, lo instalamos con el comando (debemos tener conexión a internet):
sudo apt-get install wicd-curses
y lo ejecutamos con el comando:
sudo wicd-curses
veremos todas las redes disponibles, pulsamos el cursos de la derecha obre nuestro punto de acceso y rellenamos los campos que nos aparecen.

Usar la salida AV Composite en lugar de HDMI

Si queremos utilizar el sistema con un televisor antiguo (habitual sobretodo si estamos usando el raspberry con una maquina arcade casera) podemos utilizar la salida de 3.5mm Composite vídeo+audio. Antes de adquirir el cable debemos tener claro que lleve la masa en el segundo anillo del minijack o no funcionará, tal como se indica en el gráfico: [1] Si el cable indica que es para videocámaras, debería funcionar.

Deberemos editar el fichero config.txt y descomentar la línea que dice "sdtv_mode=2" (2 es para composite PAL).

EXTRA: en muchos casos no se corresponde el cable. En mi caso y en el de tantos otros vistos en foros de habla inglesa, el Rojo es el de vídeo. Si no ves nada no desesperes y prueba poniendo en la entrada de vídeo los otros dos.

Cargar roms

Pendrive

  • Es posible usar un servicio que copia automaticamente las ROMs desde un pendrive USB a los directorios correctos. Si estás usando la imagen de la SD descargada de Retropie Proyect, este servicio ya viene activado.
  • Este servicio funciona de la siguiente manera:
  • La primera vez que conectar un pendrive USB en la RPi (Raspberry Pi), se crea una estructura de directorios en el pendrive (solo toma unos segundos).
  • Puedes desconectar el pendrive y conectarlo a un PC y copiar las ROMs a los directorios correspondientes del pendrive.
  • Cuando vuelves a conectar el pendrive a la RPi, los ROMs se sincronizan automaticamente con la RPi. Cuando el pendrive USB termine de parpadear (lo cual indica que no actividad de lectura llevandose a cabo), puedes desconectar el pendrive.

SSH

Mediante el cliente Filezilla:

  • Iremos a la linea de comandos (presionando F4 desde EmulationStation) y ejecutaremos el comando siguiente para saber la dirección IP asignada a nuestra raspberry Pi o bien desde el menú Retropie de EmulationStation:
ifconfig
  • Pondremos la dirección IP anterior en el campo "Servidor", como "Protocolo" utilizaremos "SFTP", en "Modo de acceso" seleccionaremos "Normal", en "Usuario" pondremos "pi" y en "Contraseña", "raspberry" (o la que hayamos establecido).
  • Una vez conectados iremos al directorio "/home/pi/RetroPie/roms/", seleccionaremos el sistema y añadiremos las roms.

Samba

En construcción

Usando almacenamiento externo

  • Lo primero es crear las carpetas con las roms en el dispositivo de almacenamiento usb.
  • Enchufar el dispositivo a la raspberry pi y ver la ruta donde se encuentra escibiendo
df

Nos fijaremos en la parte derecha de la tabla que nos muestra y, usualmente, nos dirá que es /media/usb0. Si tienes dudas ejecuta df sin el USB dive conectado, después conecta la unidad USB y ejecútalo otra vez, con lo que podrás ver que elemento nuevo hay conectado, que será la unidad

Si el dispositivo tiene un formato ntfs, primero habrá que instalar el paquete ntfs-3g, escribiendo

sudo apt-get install ntfs-3g

y montar el dispositivo de forma manual.

  • Tras esto hay que configurar el fichero ~/etc/emulationstation/es_systems.cfg y cambiar las rutas desde donde se cargan las roms para cada emulador.

Hacemos un backup del original

sudo cp /etc/emulationstation/es_systems.cfg /etc/emulationstation/es_systems.cfg.bak

Y ahora entramos al archivo

sudo nano /etc/emulationstation/es_systems.cfg

Buscamos la etiqueta path (Cada emulador tiene la suya propia)clear

<path>~/RetroPie/roms/amiga/</path>

Y la modificamos por la ruta que deseamos

<path>/aa/bb/amiga/</path>

  • Donde //aa/bb es el nombre del dispositivo en /media. (El nombre que vimos al principio de esta sección, con el comando df
  • Hay que tener en cuenta que si está habilitado el servicio que copia automaticamente las ROMs desde un dispositivo USB, la primera vez que se conecte se creará una estructura de directorios en el dispositivos que no deberemos de usar.

Desde un disco NAS

Desde la consola de Retropie (Alt+4 para salir a la consola desde el sistema, o por SSH). Escribir los comandos a mano o copiando/pegando por SSH.

pi@retropie ~ $ sudo apt-get install cifs-utils
pi@retropie ~ $ sudo mkdir /media/consolas

Añadimos el path (la ruta) de la red en el archivo fstab (en el ejemplo la unidad no tiene usuario ni contraseña).

pi@retropie ~ $ sudo nano /etc/fstab
pi@retropie ~ $ sudo mkdir /media/consolas
proc            /proc           proc    defaults          0       0

 a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for t$
//192.192.8.101/Consolas /media/consolas cifs guest,uid=1000,iocharset=utf8 0 0

Para salvar pulsamos control+x, aceptamos y salimos.

pi@retropie ~ $ sudo mount -a
pi@retropie ~ $ sudo reboot

Hacemos un backup del archivo de configuración de los juegos:

pi@retropie ~ $ sudo cp /etc/emulationstation/es_systems.cfg /etc/emulationstation/es_systems.bak

Como ya está mapeada una unidad de red, podríamos hacer la copia en esa unidad de red, con

pi@retropie ~ $ sudo cp /etc/emulationstation/es_systems.cfg /media/consolas/es_systems.bak

Abrimos el archivo de configuarción:

pi@retropie ~ $ sudo nano /etc/emulationstation/es_systems.cfg

Buscamos las líneas:

<path>~/RetroPie/roms/amiga</path>

Y ponemos nuestra dirección:

<path>/media/consolas/amiga/roms</path>

Pulsamos Ctrl+x y guardar.

pi@retropie ~ $ sudo reboot

Ahora dejar que se inicie sola, el primer inicio después de agregar roms puede tardar.

Consideraciones:

  • Si se introduce una cantidad elevada de roms, el tema visual puede verse afectado, dejándose de ver, no viéndose iconos, montandose las letras de los menus, etc... desconozco el por que.
  • Recomiendo ir añadiendo directorios poco a poco.
  • Algunas carpetas de emuladores no se pueden redirigir, como Scummvm, Amiga, etc.. las que se ven al iniciar, es porque la carpeta carga el emulador, desde dentro del emulador tendrás que navegar a la carpeta donde tienes las roms.

Mandos

Es posible conectar mandos directamente a la Raspberry Pi. Para configurar un nuevo mando que conectemos a la Raspberry Pi nos iremos a la linea de comandos (presionando F4 desde EmulationStation) y ejecutaremos los siguientes comandos o bien desde EmulationStation en el menú "Retroplay -> Configure Retroarch Keyboard/Joystick".

cd RetroPie-Setup
sudo ./retropie_setup.sh

Una vez que nos aparezca el menú seleccionamos la opción "Setup" que nos llevará el menú de configuración de mandos. Allí elegiremos "Register RetroArch Controller" y seguiremos los pasos que nos vayan saliendo. Cuando hayamos terminado seleccionaremos la opción "Perform Reboot".

Para ver que teclas pulsamos:

sudo jstest /dev/input/js0

Virtual GamePad

Paquete experimental para poder usar un smartphone/tablet simplemente apuntando a una dirección en el navegador. Enlace al proyecto.

Una vez instalado desde el menú deberemos dirigirnos a un explorador web como Chrome o Firefox e ir a la dirección http://node_server_adress, pondremos la dirección IP local de la Raspberry Pi (podemos ver nuestra IP desde el menu "Retropie" de EmulationStation).

Admite un máximo de 4 mandos virtuales. Podremos configurarlo en EmulationStation y en Retroarch como si de un mando mas se tratase.

Mando XBOX 360

Enlace al tutorial en ingles: https://github.com/petrockblog/RetroPie-Setup/wiki/Setting-up-the-XBox360-controller

Mando PS3

Enlace al tutorial en ingles: https://github.com/petrockblog/RetroPie-Setup/wiki/Setting-up-a-PS3-controller

Mando N64

Enlace al tutorial en ingles: https://github.com/petrockblog/RetroPie-Setup/wiki/Setting-up-an-N64-controller

Mando NES30

Enlace al tutorial en español: http://www.elotrolado.net/wiki/NES30#Retropie

Interfaz Xin-Mo

Solución para resolver el problema de que no funciones el segundo joystick, para ello hay que descargar el kernel, eliminar la lineas añadidas en este commit, compilar el kernel e instalarlo.

El usuario feederchain en el foro oficial ha subido una imagen del kernel ya parcheado para instalarlo. Instrucciones una vez bajado el kernel:

tar xf custom_kernel_1.20150619-1.tar.gz
cd custom_kernel_1.20150619-1
sudo ./install.sh

Modificar el archivo /opt/retropie/config/all/retroarch.cfg (susbstituyendo los valores por la salida de sudo jstest /dev/input/jsX, donde X es el index del joypad). Si no se encuentra el comando hay que instalar el paquete joystick con "sudo aptitude install joystick":

input_player1_joypad_index = 0
input_player1_b_btn = 4
input_player1_y_btn = 0
input_player1_select_btn = 2
input_player1_start_btn = 5
input_player1_up_axis = +0
input_player1_down_axis = -0
input_player1_left_axis = -1
input_player1_right_axis = +1
input_player1_a_btn = 3
input_player1_enable_hotkey_btn = 2
input_player1_exit_emulator_btn = 5

input_player2_joypad_index = 1
input_player2_b_btn = 4
...

Mantenimiento / Actualización

Es buena idea hacer copia de seguridad de tus archivos de configuración y de las roms antes de proceder a la actualización. Hay 3 cosas que pueden ser actualizadas en Retropie (deberemos dirigirnos al menú Retropie-Setup dentro de Retropie en EmulationStation), estas son:

  • Actualizar "Retropie Setup Script": actualizaremos a la última versión de Retropie. Para comprobar en que versión estamos podemos irnos a un terminal (pulsando F4) y escribir "cd ~/RetroPie-Setup" y:
git show
Nos saldrá el número de commit en el que estamos, luego nos dirigimos al proyecto en github y vemos la fecha de ese commit en concreto.
  • Actualizar Emuladores/Retroarch/EmulationStation/Ports, etc: es conveniente hacerlo una vez actualizado Retropie con la opción anterior. Dos opciones:
  • Nos vamos a la opción "Update RetroPie Binraries" y esperamos a que finalice.
  • Alternativamente, puedes elegir la opción "Source-based Installation" para recompilar y reconfigurar componentes individuales.
  • Actualizar Raspbian: actualizaremos la distribución raspbien sobre la que se ejecuta Retropie:
apt-get update

Retroarch

  • Retroarch es un "front-end" para libretro (una API genérica para juegos y emuladores) para Linux, Windows, Mac OS X, *BSD, PS3, XBox360, Wii, Android, iOS y Blackberry.
  • Actualmente hay implementaciones de libreto para los siguientes sistemas como SNES, NES, GBA, GB/GBC, Genesis, e incluso juegos arcades (Final Burn Alpha).
  • También hay juegos creados especialmente para Retroarch como por ejemplo Dinothawr.

Versiones

  • Emulación de la PSP: core PPSSPP.
  • Nuevos cores: fMSX, BlueMSX y Vectrex.
  • Nueva GUI: Lakka que sustituirá a RGUI.
  • Audio DSPs / Software Video Filters.
  • Soporte para Blackberry 10.
  • Mejorado el port de IOS, OSX y Android.
  • X-Arcade Tankstick support.

retroarch.cfg

  • Este archivo situado en el directorio ~/RetroPie/configs/all/retroarch.cfg o /opt/retropie/configs/all/retroarch.cfg es el que se utiliza para la configuración global de los emuladores.
  • El archivo para configurar individualmente cada emulador se encuentra en /configs/SYSTEMNAME/retroarch.cfg.
  • Para editarlo usaremos el comando:
sudo nano retroarch.cfg
  • Opciones disponibles (para activar alguna solo hay que descomentar la linea quitando #):

Generales

Descripción Comando
Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ... This will be overridden by explicit command line options. savefile_directory =
Save all save states (*.state) to this directory. This will be overridden by explicit command line options. savestate_directory =
Automatically saves a savestate at the end of RetroArch's lifetime. The path is $SRAM_PATH.auto. RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set. savestate_auto_save = false
savestate_auto_load = true
Load libretro from a dynamic location for dynamically built RetroArch. This option is mandatory. If a directory, RetroArch will look through the directory until it finds an implementation that appears to support the extension of the ROM loaded. This could fail if ROM extensions overlap. libretro_path = "/path/to/libretro.so"
Path to core options config file. This config file is used to expose core-specific options. It will be written to by RetroArch. A default path will be assigned if not set. core_options_path =
Path to ROM load history file. RetroArch keeps track of all ROMs loaded in RGUI and from CLI directly for convenient quick loading. A default path will be assigned if not set. game_history_path =
Number of entries that will be kept in ROM history file. game_history_size = 100
Sets the "system" directory. Implementations can query for this directory to load BIOSes, system-specific configs, etc. system_directory = /home/pi/RetroPie/emulatorcores/
Sets start directory for RGUI ROM browser. rgui_browser_directory =
Sets start directory for RGUI config browser. rgui_config_directory =
Show startup screen in RGUI. Is automatically set to false when seen for the first time. This is only updated in config if config_save_on_exit is set to true, however. rgui_show_start_screen = true
Flushes config to disk on exit. Useful for RGUI as settings can be modified. Overwrites the config. #include's and comments are not preserved. config_save_on_exit = false

Video

Descripción Comando
Video driver to use. "gl", "xvideo", "sdl" video_driver = "gl"
Which OpenGL context implementation to use. Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl. By default, tries to use first suitable driver. video_gl_context =
Windowed xscale and yscale (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale) video_xscale = 3.0
video_yscale = 3.0
Fullscreen resolution. Resolution of 0 uses the resolution of the desktop. video_fullscreen_x = 0
video_fullscreen_y = 0
Start in fullscreen. Can be changed at runtime. video_fullscreen = false
If fullscreen, prefer using a windowed fullscreen mode. video_windowed_fullscreen = true
Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor), suggests RetroArch to use that particular monitor. video_monitor_index = 0
Forcibly disable composition. Only works in Windows Vista/7 for now. video_disable_composition = false
Video vsync. video_vsync = true
Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance. video_hard_sync = false
Sets how many frames CPU can run ahead of GPU when using video_hard_sync. Maximum is 3. video_hard_sync_frames = 0
Inserts a black frame inbetween frames. Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting. video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2). video_black_frame_insertion = false
Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering. video_threaded = false
Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders. video_smooth = false
Path to shader. Shader can be either Cg, CGP (Cg preset) or XML/GLSL format if support is enabled. video_shader = "/path/to/shader.{cg,cgp,shader}"
Load video_shader on startup. Other shaders can still be loaded later in runtime. video_shader_enable = false
Defines a directory where shaders (Cg, CGP, XML) are kept for easy access. video_shader_dir =
CPU-based filter. Path to a bSNES CPU filter (*.filter) video_filter =
Path to a TTF font used for rendering messages. This path must be defined to enable fonts. Do note that the _full_ path of the font is necessary! video_font_path =
Size of the TTF font rendered. video_font_size = 48
Attempt to scale the font to fit better for multiple window sizes. video_font_scale = true
Enable usage of OSD messages. video_font_enable = true
Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values. [0.0, 0.0] maps to the lower left corner of the screen. video_message_pos_x = 0.05
video_message_pos_y = 0.05
Color for message. The value is treated as a hexadecimal value. It is a regular RGB hex number, i.e. red is "ff0000". video_message_color = ffffff
Video refresh rate of your monitor. Used to calculate a suitable audio input rate. video_refresh_rate = 59.95
Allows libretro cores to set rotation modes. Setting this to false will honor, but ignore this request. This is useful for vertically oriented games where one manually rotates the monitor. video_allow_rotate = true
Forces a certain rotation of the screen. The rotation is added to rotations which the libretro core sets (see video_allow_rotate). The angle is <value> * 90 degrees counter-clockwise. video_rotation = 0
Forces cropping of overscanned frames. Exact behavior of this option is implementation specific. video_crop_overscan = true
If this is true and video_aspect_ratio is not set, aspect ratio is decided by libretro implementation. If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set. video_aspect_ratio_auto = false
A floating point value for video aspect ratio (width / height). If this is not set, aspect ratio is assumed to be automatic. Behavior then is defined by video_aspect_ratio_auto. video_aspect_ratio = 1.33
Only scales video in integer steps. The base size depends on system-reported geometry and aspect ratio. If video_force_aspect is not set, X/Y will be integer scaled independently. video_scale_integer = false
Forces rendering area to stay equal to game aspect ratio or as defined in video_aspect_ratio. video_force_aspect = true

Audio

Descripción Comando
Enable audio. audio_enable = true
Audio output samplerate. audio_out_rate = 48000
Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio. audio_driver = alsathread
Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ... audio_device =
External DSP plugin that processes audio before it's sent to the driver. audio_dsp_plugin =
Will sync (block) on audio. Recommended. audio_sync = true
Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency. audio_latency = 64
Enable experimental audio rate control. audio_rate_control = true
Controls audio rate control delta. Defines how much input rate can be adjusted dynamically. Input rate = in_rate * (1.0 +/- audio_rate_control_delta) audio_rate_control_delta = 0.005
Audio volume. Volume is expressed in dB. 0 dB is normal volume. No gain will be applied. Gain can be controlled in runtime with input_volume_up/input_volume_down. audio_volume = 0.0

Input (En algunos apartados se ha omitido *_player2_*, *_player3_*, etc, para mayor claridad. Para teclado "nada", joykeys "_btn" y joyaxes "_axis").

Descripción Comando
Input driver. Depending on video driver, it might force a different input driver. input_driver = sdl
Joypad driver. (Valid: linuxraw, sdl, dinput) input_joypad_driver =
Defines axis threshold. Possible values are [0.0, 1.0] input_axis_threshold = 0.5
Path to input overlay input_overlay =
Overlay opacity input_overlay_opacity = 1.0
Overlay scale input_overlay_scale = 1.0
Enable input auto-detection. Will attempt to autoconfigure joypads, Plug-and-Play style. input_autodetect_enable = true
Directory for joypad autoconfigs (PC). If a joypad is plugged in, that joypad will be autoconfigured if a config file corresponding to that joypad is present in joypad_autoconfig_dir. Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs. Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend. Requires input_autodetect_enable to be enabled. joypad_autoconfig_dir =
Enable debug input key reporting on-screen. input_debug_enable = false
Sets which libretro device is used for a player. Devices are indentified with a number. This is normally saved by RGUI. Device IDs are found in libretro.h. These settings are overridden by explicit command-line arguments which refer to input devices.
None: 0
Joypad (RetroPad): 1
Mouse: 2
Keyboard: 3
Generic Lightgun: 4
Joypad w/ Analog (RetroPad + Analog sticks): 5
Multitap (SNES specific): 257
Super Scope (SNES specific): 260
Justifier (SNES specific): 516
Justifiers (SNES specific): 772
input_libretro_device_p1 =
input_libretro_device_p2 =
input_libretro_device_p3 =
input_libretro_device_p4 =
input_libretro_device_p5 =
input_libretro_device_p6 =
input_libretro_device_p7 =
input_libretro_device_p8 =
Keyboard input. Will recognize normal keypresses and special keys like "left", "right", and so on. Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, rather than relying on a default. input_player1_a = x
input_player1_b = z
input_player1_y = a
input_player1_x = s
input_player1_start = enter
input_player1_select = rshift
input_player1_l = q
input_player1_r = w
input_player1_left = left
input_player1_right = right
input_player1_up = up
input_player1_down = down
input_player1_l2 =
input_player1_r2 =
input_player1_l3 =
input_player1_r3 =
Two analog sticks (DualShock-esque). Bound as usual, however, if a real analog axis is bound, it can be read as a true analog. Positive X axis is right, Positive Y axis is down. input_player1_joypad_index = 0
input_player1_b_btn = 1
input_player1_y_btn = 0
input_player1_select_btn = 8
input_player1_start_btn = 9
input_player1_up_axis = -5
input_player1_down_axis = +5
input_player1_left_axis = -4
input_player1_right_axis = +4
input_player1_a_btn = 2
input_player1_x_btn = 3
input_player1_l_btn = 4
input_player1_r_btn = 5
input_player1_l2_btn = 6
input_player1_r2_btn = 7
input_player1_l3_btn = 10
input_player1_r3_btn = 11
input_player1_l_x_plus_axis = +0
input_player1_l_x_minus_axis = -0
input_player1_l_y_plus_axis = +1
input_player1_l_y_minus_axis = -1
input_player1_r_x_plus_axis = +2
input_player1_r_x_minus_axis = -2
input_player1_r_y_plus_axis = +3
input_player1_r_y_minus_axis = -2
input_enable_hotkey_btn = 8
input_exit_emulator_btn = 9
If desired, it is possible to override which joypads are being used for player 1 through 8. First joypad available is 0. input_player1_joypad_index = 0
input_player2_joypad_index = 1
input_player3_joypad_index = 2
input_player4_joypad_index = 3
input_player5_joypad_index = 4
input_player6_joypad_index = 5
input_player7_joypad_index = 6
input_player8_joypad_index = 7
Joypad buttons. Figure these out by using RetroArch-Phoenix or retroarch-joyconfig. You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction. E.g. "h0up" input_player1_a_btn = 0
input_player1_b_btn = 1
input_player1_y_btn = 3
input_player1_x_btn = 2
input_player1_start_btn = 7
input_player1_select_btn = 6
input_player1_l_btn = 4
input_player1_r_btn = 5
input_player1_left_btn =
input_player1_right_btn =
input_player1_up_btn =
input_player1_down_btn =
input_player1_l2_btn =
input_player1_r2_btn =
input_player1_l3_btn =
input_player1_r3_btn =
Axis for RetroArch D-Pad. Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity. input_player1_left_axis = -0
input_player1_right_axis = +0
input_player1_up_axis = -1
input_player1_down_axis = +1
Holding the turbo while pressing another button will let the button enter a turbo mode where the button state is modulated with a periodic signal. The modulation stops when the button itself (not turbo button) is released. input_player1_turbo =
Describes the period and how long of that period a turbo-enabled button should behave. Numbers are described in frames. input_turbo_period = 6
input_turbo_duty_cycle = 3
Toggles fullscreen. input_toggle_fullscreen = f
Saves state. input_save_state = f2
Loads state. input_load_state = f4
State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline). When slot is != 0, path will be $path%d, where %d is slot number. input_state_slot_increase = f7
input_state_slot_decrease = f6
Toggles between fast-forwarding and normal speed. input_toggle_fast_forward = space
Hold for fast-forward. Releasing button disables fast-forward. input_hold_fast_forward = l
Key to exit emulator cleanly. Killing it in any hard way (SIGTERM, SIGKILL, etc, will terminate emulator without saving RAM, etc.) input_exit_emulator = escape
Reset the game. input_reset = h
Configures DSP plugin input_dsp_config = c
Increases audio volume. input_volume_up = kp_plus
Decreases audio volume. input_volume_down = kp_minus
Toggles to next overlay. Wraps around. input_overlay_next =
Toggles eject for disks. Used for multiple-disk games. input_disk_eject_toggle =
Cycles through disk images. Use after ejecting. Complete by toggling eject again. input_disk_next =
Toggles RGUI menu. input_menu_toggle = f1
Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse, and keeps the mouse pointer inside the window to allow relative mouse games to work better. input_grab_mouse_toggle = f11
Enable other hotkeys. If this hotkey is bound to either keyboard, joybutton or joyaxis, all other hotkeys will be disabled unless this hotkey is also held at the same time. This is useful for RETRO_KEYBOARD centric implementations which query a large area of the keyboard, where it is not desirable that hotkeys get in the way. Alternatively, all hotkeys for keyboard could be disabled by the user. input_enable_hotkey =
Hold for slowmotion. input_slowmotion = e
Netplay flip players. input_netplay_flip_players = i
Take screenshot input_screenshot = f8
Mute/unmute audio input_audio_mute = f9
Cheats. input_cheat_index_plus = y
input_cheat_index_minus = t
input_cheat_toggle = u
Frame advance when game is paused input_frame_advance = k
Toggle between paused and non-paused state input_pause_toggle = p
Toggle between recording and not. input_movie_record_toggle = o
Hold button down to rewind. Rewinding must be enabled. input_rewind = r
Applies next and previous XML/Cg shader in directory. input_shader_next = m
input_shader_prev = n

Miscelaneo

Descripción Comando
Enable rewinding. This will take a performance hit when playing, so it is disabled by default. rewind_enable = true
Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer. The buffer should be approx. 20MB per minute of buffer time. rewind_buffer_size = 10
Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed. rewind_granularity = 2
Pause gameplay when window focus is lost. pause_nonactive = true
Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise. The interval is measured in seconds. A value of 0 disables autosave. autosave_interval =
When being client over netplay, use keybinds for player 1. netplay_client_swap_input = false
Path to XML cheat database (as used by bSNES). cheat_database_path =
Path to XML cheat config, a file which keeps track of which cheat settings are used for individual games. If the file does not exist, it will be created. cheat_settings_path =
Directory to dump screenshots to. screenshot_directory =
Records video after CPU video filter. video_post_filter_record = false
Records output of GPU shaded material if available. video_gpu_record = false
Screenshots output of GPU shaded material if available. video_gpu_screenshot = true
Block SRAM from being overwritten when loading save states. Might potentially lead to buggy games. block_sram_overwrite = false
When saving a savestate, save state index is automatically increased before it is saved. Also, when loading a ROM, the index will be set to the highest existing index. There is no upper bound on the index. savestate_auto_index = false
Slowmotion ratio. When slowmotion, game will slow down by factor. slowmotion_ratio = 3.0
The maximum rate at which games will be run when using fast forward. (E.g. 5.0 for 60 fps game => 300 fps cap). RetroArch will go to sleep to ensure that the maximum rate will not be exceeded. Do not rely on this cap to be perfectly accurate. A negative ratio equals no FPS cap. fastforward_ratio = -1.0
Enable stdin/network command interface. network_cmd_enable = false
network_cmd_port = 55355
stdin_cmd_enable = false

RGUI

  • RGUI es una GUI (interfaz gráfica de usuario) para retroArch (ver lista de emuladores para saber que sistema usa retroarch).
  • Algunas características:
  • Seleccionar el "libreto core".
  • Cargar un juego.
  • Salvar/cargar estados.
  • Configuración del input, video, sonido, etc.
  • Tomar fotos.
  • Salir.
  • Para acceder este menú deberemos poner la siguiente opción en el archivo "retroarch.cfg" (ver apartado anterior). Será la combinación de ambos botones (enable_hotkey y menu_toogle).
# con el teclado
input_enable_hotkey = escape
input_menu_toggle = f1

# con un gamepad (x e y son los botones que queramos usar)
input_enable_hotkey_btn = "y"
input_menu_toggle_btn = "x"
  • Si queremos salvar los cambios que hagamos en este menú cada vez que salgamos el emulador, tendremos que desplazarnos a la opción: Settings -> Config Save On Exit. Teniendo en cuenta que cambiará en todos los emuladores que usen retroarch.

El Adaptador GPIO

  • Es un pequeño hardware que soporta la conexión de mandos (por ejemplo dos de NES o SNES) y trae ademas un botón y un circuito de protección.
  • Guía paso a paso a paso para comenzar:
  • Conexión de los mandos:

EmulationStation

  • EmulationStation es un front-end (interfaz) gráfica y personalizable para emuladores. Podrás acceder a todos tus juegos favoritos incluso sin necesidad de teclado.
  • Características:
  • Flexible: poder personalizar cada ventana.
  • Código abierto (open source).
  • Posibilidad de configurar un gamepad para navegar por los menús.
  • Posibilidad de descargar el nombre, la descripción, la carátula, la puntuación, y todos los datos de los juegos desde bases de datos de internet.

Versiones instalables desde BerryBoot para Raspberry Pi 2:

Icono YouTube.png Trailer - EmulationStation v2.0 RC1 Trailer (5/7/2014) 01:07

Instalar temas

  • Descargar un tema y descomprimirlo en la ruta: ~/.emulationstation/themes o /etc/emulationstation/themes. El siguiente paso es elegir el nuevo tema en MENU -> UI SETTINGS -> THEME SET.
  • Listado de páginas para descargar temas:

es_systems.cfg

  • Este archivo se encuentra en la ruta ~/.emulationstation/es_systems.cfg o en /etc/emulationstation/es_systems.cfg.
  • Para editarlo usaremos el comando:
sudo nano es_systems.cfg
  • Ejemplo:
DESCNAME=Super Nintendo
NAME=snes
PATH=/home/pi/RetroPie/roms/snes
EXTENSION=.smc .sfc .fig .swc .SMC .SFC .FIG .SWC
COMMAND=/home/pi/RetroPie/supplementary/runcommand/runcommand.sh 1 "retroarch -L /home/pi/RetroPie/emulatorcores/pocketsnes-libretro/libretro.so
--config /home/pi/RetroPie/configs/all/retroarch.cfg
--appendconfig /home/pi/RetroPie/configs/snes/retroarch.cfg %ROM%"
# alternatively: COMMAND=/home/pi/RetroPie/emulators/snes9x-rpi/snes9x %ROM%
# alternatively: COMMAND=/home/pi/RetroPie/emulators/pisnes/snes9x %ROM%
PLATFORMID=6
  • En COMMAND podremos especificar cualquier comando que queramos que se ejecute con ese emulador. Por ejemplo es posible usar otro emulador (en el de la SNES tenemos 3, RetroArch, PiSNES y SNES-Rpi). También podremos cambiar el core del emulador:
  • Podremos también ver que extensiones soporta el emulador en el apartado EXTENSION.

Netplay

En construcción

Problemas frecuentes

Permisos

  • Si no se disponen de permisos necesarios para escribir en un determinado directorio o editar un determinado archivo o bien usamos el comando sudo o cambiamos los permisos añadiendo al usuario pi. Por ejemplo:
sudo chown -R pi:pi /opt/retropie/

Fondos blancos

  • Si en el EmulationStation nos aparecen algunos emuladores con el fondo en blanco es debido a que la Raspberry Pi se ha quedado sin VRAM. Una regla para saber la cantidad de memoria que necesita la GPU para una configuración de 1080p es: 8mb + 25mb + 10mb * [NUMERO_DE_SISTEMAS_CON_JUEGOS].
  • Para cambiar la cantidad disponible para la GPU usaremos el comando:
raspi-config
  • Iremos a la opción "Advanced Options" y luego a "Memory Split".

Probemas resueltos

  • Listado de problemas resueltos en el Hilo oficial de EOL. Se describe el problema y se enlaza al post.

Otras cosas

Cross Compiling

SDLJoystick

Overclocking

La Raspberry Pi usa microprocesadores ARMv6 (un solo core). Por defecto el procesador de la Raspberry Pi corre a 700MHz pero puede ser overclockeado. A mayor frecuencia de reloj mayor rendimiento. Overclockear significa incrementar la frecuencia al que el procesador trabaja por encima de sus límites de diseño.

El overclock en la Raspberry Pi puede hacerse (sin perder la garantía) mediante este comando o bien podemos irnos al menú "Retropie" en el EmulationStation y seleccionar la opción "Retropie-Setup"

raspi-config

Nos dirigiremos a la opción "Overclock" dentro del menú. Nos ofrecerá 6 opciones:

  • 700MHz (sin overclock),
  • 800MHz (modesto),
  • 900MHz (medio),
  • 950MHz (alto) y
  • 1000MHz (turbo)

Enlaces