Retropie
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.
Contenido |
Sistemas
Emuladores
Listado de emuladores soportados en la última versión:
Sistema | Emulador/es | Extensiones soportadas | Retroarch | BIOS |
3DO Interactive Multiplayer |
4do-libretro (experimental) |
.iso /home/pi/RetroPie/roms/3do |
panafz10.bin /home/pi/RetroPie/BIOS | |
Amstrad CPC |
CPC4Rpi | .dsk .cpc /home/pi/RetroPie/roms/amstradcpc |
||
libretro-caprice32 | ||||
Apple II |
Linapple | .dsk /home/pi/RetroPie/roms/apple2/ |
||
Apple Macintosh |
BasiliskII | .img .rom (.dsk?, .sit?) /home/pi/RetroPie/roms/macintosh |
mac.rom disk.img /home/pi/RetroPie/roms/macintosh | |
Atari 2600 |
Stella | .bin .a26 .rom /home/pi/RetroPie/roms/atari2600/ |
||
stella-libretro | ||||
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 |
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 | |
Atari 7800 |
Prosystem-libretro | .a78 .bin /home/pi/RetroPie/roms/atari7800 |
7800 BIOS (U).rom (opcional) /home/pi/RetroPie/BIOS | |
Atari Jaguar |
virtualjaguar-libretro (experimental) |
.j64 .jag /home/pi/RetroPie/roms/atarijaguar |
||
Atari Lynx |
libretro-handy | .lnx /home/pi/RetroPie/roms/atarilynx/ |
||
Atari ST STE TT Falcon |
Hatari | .st, .stx, .img, .rom /home/pi/RetroPie/roms/atariststefalcon |
||
Commodore 64 |
VICE | .crt .d64 .g64 .t64 .tap .x64 /home/pi/RetroPie/roms/c64 |
||
Commodore Amiga |
UAE4ALL2 | .adf /home/pi/RetroPie/roms/amiga/ |
kick13.rom kick20.rom kick31.rom /home/pi/RetroPie/BIOS/ | |
UAE4ARM | ||||
Dragon 32/64 TRS-80 Color Computer |
XRoar | ¿? /home/pi/RetroPie/roms/xroar |
d32.rom (Dragon 32) bas13.rom (CoCo) /home/pi/RetroPie/BIOS/ | |
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 |
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 |
|||
Game & Watch |
lr-gw (experimental) |
.mgw /home/pi/RetroPie/roms/gameandwatch |
||
Intellivision |
jzintv | .int .bin /home/pi/RetroPie/roms/intellivision |
exec.bin (executive) grom.bin (graphics) ECS.BIN (entertainment computer system ECS) IVOICE.BIN (intellivoice) /home/pi/RetroPie/BIOS/ | |
MAME |
AdvanceMAME | .zip (0.106 romset) /home/pi/RetroPie/roms/mame-advmame |
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 |
|||
imame4all-libretro | .zip (0.37b5 romset) /home/pi/RetroPie/roms/mame-mame4all |
|||
MSX |
fmsx-libretro | .rom .mx1 .mx2 .col .dsk /home/pi/RetroPie/roms/msx |
||
lr-bluemsx | ||||
Neo Geo |
GnGeo-Pi | .zip (0.106 romset) /home/pi/RetroPie/roms/mame-advmame |
neogeo.zip /home/pi/RetroPie/roms/neogeo | |
PiFBA | .zip (0.2.96.71 romset) /home/pi/RetroPie/roms/neogeo |
|||
fba-libretro | .zip (0.2.97.30 romset) /home/pi/RetroPie/roms/neogeo |
|||
Neo Geo Pocket |
lr-mednafen-ngp | .ngp .ngc /home/pi/RetroPie/roms/ngp |
||
Nintendo 64 |
Mupen64plus | .z64 .n64 .v64 /home/pi/RetroPie/roms/n64 |
||
Mupen64plus-libretro | ||||
Nintendo DS |
libretro-desmume (experimental) |
.nds .bin /home/pi/RetroPie/roms/nds |
||
Nintendo Entertainment System (NES) |
lr-nestopia | .zip .nes .smc .sfc .fig .swc .mgd /home/pi/RetroPie/roms/nes |
disksys.rom (Famicom Disk System) /home/pi/RetroPie/BIOS | |
lr-fceumm | ||||
Game Boy |
gambatte-libretro | .gb /home/pi/RetroPie/roms/gb |
||
lr-tgbdual | ||||
Game Boy Color |
gambatte-libretro | .gbc /home/pi/RetroPie/roms/gbc |
||
lr-tgbdual | ||||
Game Boy Advance |
gpSP | .gba /home/pi/RetroPie/roms/gba |
gba_bios.bin /home/pi/RetroPie/BIOS | |
libretro-gpSP | ||||
lr-vba-next | ||||
lr-mgba | ||||
Virtual Boy |
beetle-vb-libretro (experimental) |
.vb /home/pi/RetroPie/roms/virtualboy |
||
PC (DOSBox) |
DOSBox | .com .sh .bat .exe /home/pi/RetroPie/roms/pc |
||
PC Engine |
lr-mednafen-pce-fast | .pce /home/pi/RetroPie/roms/pcengine |
syscard3.pce /home/pi/RetroPie/BIOS | |
PlayStation 1 |
libretro-pcsx-rearmed | .bin .cue .img .mdf /home/pi/RetroPie/roms/psx |
SCPH1001.BIN /home/pi/RetroPie/BIOS | |
pcsx-rearmed | ||||
ScummVM |
ScummVM | .sh .svm /home/pi/RetroPie/roms/scummvm |
||
Sega 32X |
libretro-picodrive | .32x .smd .bin .md /home/pi/RetroPie/roms/sega32x |
||
Sega CD |
libretro-Genesis-Plus-GX | .smd .bin .md .iso /home/pi/RetroPie/roms/segacd |
us_scd1_9210.bin (libretro-Genesis-Plus-GX) bios_CD_U.bin(libretro-picodrive) /home/pi/RetroPie/BIOS | |
libretro-picodrive | ||||
Dreamcast |
Reicast (experimental) |
.cdi .gdi /home/pi/RetroPie/roms/dreamcast |
dc_boot.bin dc_flash.bin /home/pi/RetroPie/BIOS | |
Game Gear |
Osmose | .gg /home/pi/RetroPie/roms/gamegear |
||
libretro-Genesis-Plus-GX | ||||
Megadrive/Genesis |
DGen | .smd .bin .md .iso /home/pi/RetroPie/roms/megadrive /home/pi/RetroPie/roms/genesis |
||
libretro-picodrive | ||||
libretro-Genesis-Plus-GX | ||||
Master System |
Osmose | .sms /home/pi/RetroPie/roms/mastersystem |
||
libretro-picodrive | ||||
libretro-Genesis-Plus-GX | ||||
Sega Saturn |
lr-Yabause (experimental) |
.bin .iso .mdf /home/pi/RetroPie/roms/saturn |
dc_boot.bin saturn_bios.bin /home/pi/RetroPie/BIOS | |
Sega SG-1000 |
Libretro-Genesis-Plus-GX | .sg .zip /home/pi/RetroPie/roms/sg-1000 |
||
Super Nintendo Entertainment System |
libretro-snes9x-next | .zip .smc .sfc .fig .swc /home/pi/RetroPie/roms/snes |
||
PiSNES | ||||
snes9x-rpi | ||||
libretro-armsnes | ||||
libretro-catsfc | ||||
libretro-pocketsnes | ||||
Vectrex |
libretro-vecx | .vec .gam .bin /home/pi/RetroPie/roms/vectrex |
||
Videopac/Odyssey2 |
Libretro-o2em | .bin /home/pi/RetroPie/roms/videopac |
o2rom.bin /home/pi/RetroPie/BIOS | |
WonderSwan (Color) |
lr-mednafen-wswan | .ws .wsc /home/pi/RetroPie/roms/wonderswan |
||
Zmachine |
Frotz | .z3 .DAT /home/pi/RetroPie/roms/zmachine |
||
ZX Spectrum |
libretro-fuse | sna .szx .z80 .tap .tzx .gz .udi .mgt .img .trd .scl .dsk /home/pi/RetroPie/roms/zxspectrum |
||
FBZX | ||||
Fuse |
Ports
Listado de ports de juegos soportados en la última versión:
Sistema | Emulador/es | Retroarch | Descripción | Otros |
KODI |
KODI (experimental) |
Kodi es un Home Media Server antiguamente conocido como XBMC. | ||
Minecraft Pi Edition |
Minecraft Pi Edition (experimental) |
Versión de Minecraft para la Raspberry Pi. | Necesario teclado y ratón. | |
Cave Story |
nxengine-libretro | Videojuego freeware de acción / plataforma. | Añadir los archivos del juego a: /home/pi/RetroPie/roms/ports/CaveStory | |
DOOM (DOOM I, DOOM II) |
libretro-prboom | 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/ | |
Duke Nukem 3D |
Eduke32 | Videojuego de disparo en primera persona desarrollado por 3D Realms en 1996. | ||
Quake Series (Quake I, DarkPlaces Quake, Quake III) |
Libretro-tyrquake | Quake: videojuego de disparo en primera persona desarrollado por id Software en 1999. | ||
DarkPlaces Quake Engine (experimental) |
DarkPlaces Quake: rebuild del engine de queake con mejores gráficos y rendimiento. | |||
ioQuake3 | Quake III Arena: tercer juego de la serie. Multijugador. | |||
Descent (Descent, Descent 2) |
D1X-Rebirth (experimental) |
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) |
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 | ||
Super Mario War |
Super Mario War | 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 |
Dinothawr |
Dinothawr | 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 |
- Copiar el core del juego (dinothawr_libretro.so) en:
/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):
- Windows: haciendo uso del programa Win32DiskImager.
- Mac: usando el programa RPI-sd card builder.
- Linux: mediante el comando dd o usando algún front-end.
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
- Anunciado Retroarch v1.1 (ETA Septiembre 2014):
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:
- RetroPie GPIO Adapter (en ingles).
- Conexión de los mandos:
- Modulo para GPIO (en ingles).
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:
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:
- Enlace al tutorial en ingles: http://raspberrypihq.com/how-to-change-libretro-emulator-cores-in-retropie-emulationstation/
- 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
- Herramienta para testo del joystick.
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)