Este repositorio ofrece un script bash para construir un instalador a partir de los ficheros de la distribución oficial de RetroArch para las distintas variantes de las consolas Anbernic RG350 y RG280. El OPK generado instalará los ficheros del framework RetroArch en sus ubicaciones precisas, a los que añadirá una serie de lanzadores o wrappers OPK independientes para los distintos cores, de manera que se facilite la integración de RetroArch en distintos frontends como GMenu2X o SimpleMenu.
Además de los cores de la distribución oficial, el script dispone también de los cores compilados por el usuario Poligraf. Su repositorio se integra como submódulo git de éste.
A continuación se muestra la lista completa de cores que se incluyen en el instalador OPK final generado:
Fuente | Core | Sistemas | Necesita ficheros | Extensiones soportadas | Observaciones |
---|---|---|---|---|---|
Oficial | 2048_libretro.so | 2048 | false | ||
Oficial | 81_libretro.so | Sinclair ZX81 | true | p, tzx, t81 | |
Oficial | a5200_libretro.so | Atari 5200 | true | bin, a52 | Necesita BIOS: 5200.rom (md5: 281f20ea4320404ec820fb7ec0693b38 ) |
Oficial | arduous_libretro.so | Arduboy | true | hex | |
Oficial | bk_libretro.so | Elektronika - BK-0010/BK-0011 | true | bin | Necesita BIOS (model BK-0010 ): bk/BASIC10.ROM (md5: 3fa774326d75410a065659aea80252f0 ), bk/FOCAL10.ROM (md5: 5737f972e8638831ab71e9139abae052 ), bk/MONIT10.ROM (md5: 95f8c41c6abf7640e35a6a03cecebd01 ). Unsupported video mode en stock/ROGUE. |
Oficial | cannonball_libretro.so | SEGA Outrun | true | game, 88 | Necesita ficheros de juego y un fichero dummy con la extensión .game |
Oficial | chailove_libretro.so | ChaiLove | true | chai, chailove | Framework para creación de juegos 2D en Lua. Sólo ODbeta |
Oficial | dinothawr_libretro.so | Dinothawr | true | game | Necesita ficheros de juego |
Oficial | dosbox_pure_libretro.so | DOSBox | true | zip, dosz, exe, com, bat, iso, cue, ins, img, ima, vhd, m3u, m3u8 | |
Oficial | ecwolf_libretro.so | Wolfenstein 3D | true | wl6,n3d,sod,sdm,wl1,pk3,exe | Necesita "BIOS": ecwolf.pk3 (md5: d68107770b3ba230d10aa27472a7617b ). Sólo ODbeta |
Oficial | fbalpha2012_cps1_libretro.so | CPS1 | true | zip | |
Oficial | fbalpha2012_cps2_libretro.so | CPS2 | true | zip | |
Oficial | fbalpha2012_neogeo_libretro.so | Neo Geo | true | zip | |
Oficial | fceumm_libretro.so | Nintendo NES | true | fds, nes, unif, unf | Disk System necesita BIOS: disksys.rom (md5: ca30b50f880eb660a320674ed365ef7a ) |
Oficial | freechaf_libretro.so | Fairchild ChannelF | true | bin, chf | Necesita BIOS: sl31253.bin (md5: ac9804d4c0e9d07e33472e3726ed15c3 ), sl31254.bin (md5: da98f4bb3242ab80d76629021bb27585 ), sl90025.bin (md5: 95d339631d867c8f1d15a5f2ec26069d ) |
Oficial | fuse_libretro.so | Sinclair ZX Spectrum | true | tzx, tap, z80, rzx, scl, trd, dsk | |
Oficial | gambatte_libretro.so | GB/GBC | true | gb, gbc, dmg | BIOS opcional: gb_bios.bin (md5: 32fbbd84168d3482956eb3c5051637f5 ), gbc_bios.bin (md5: dbfce9db9deaa2567f6a84fde55f9680 ) |
Oficial | gearboy_libretro.so | GB/GBC | true | gb, dmg, gbc, cgb, sgb | |
Oficial | gearcoleco_libretro.so | ColecoVision | true | col,cv,bin,rom | Necesita BIOS: colecovision.rom (md5: 2c66f5911e5b42b8ebe113403548eee7 ) |
Oficial | gearsystem_libretro.so | SG-1000, GG, MD | true | sms, gg, sg, bin, rom | |
Oficial | genesis_plus_gx_libretro.so | SG-1000, MS, GG, MD, SEGA CD | true | mdx, md, smd, gen, bin, cue, iso, sms, bms, gg, sg, 68k, chd, m3u | SEGA CD necesita BIOS: bios_CD_E.bin , bios_CD_U.bin , bios_CD_J.bin |
Oficial | genesis_plus_gx_wide_libretro.so | SG-1000, MS, GG, MD, SEGA CD | true | mdx, md, smd, gen, bin, cue, iso, sms, bms, gg, sg, 68k, chd, m3u | SEGA CD necesita BIOS: bios_CD_E.bin , bios_CD_U.bin , bios_CD_J.bin |
Oficial | gme_libretro.so | Game Music Emu | true | ay, gbs, gym, hes, kss, nsf, nsfe, sap, spc, vgm, vgz, zip | |
Oficial | gong_libretro.so | Pong | false | ||
Oficial | gpsp_libretro.so | GBA | true | gba, bin | BIOS opcional: gba_bios.bin (md5: a860e8c0b6d573d191e4ec7db1b1e4f6 ) |
Oficial | gw_libretro.so | Nintendo Game&Watch | true | mgw | Unsupported video mode en algunos juegos sobre stock/ROGUE, pero pulsando algunas teclas a veces funcionan |
Oficial | handy_libretro.so | LYNX | true | lnx, o | Necesita BIOS: lynxboot.img (md5: fcd403db69f54290b51035d82f835e7b ) |
Oficial | jaxe_libretro.so | CHIP-8 | true | ch8, sc8, xo8 | |
Oficial | jumpnbump_libretro.so | Jump 'n Bump | true | dat | |
Oficial | mame2003_libretro.so | MAME2003 | true | zip | |
Oficial | mame2003_plus_libretro.so | MAME2003 | true | zip | |
Oficial | mednafen_pce_fast_libretro.so | PCE, PCE CD | true | pce, cue, ccd, chd, toc, m3u | PCE CD necesita BIOS: syscard3.pce (md5: 38179df8f4ac870017db21ebcbf53114 ) |
Oficial | mednafen_wswan_libretro.so | WS | true | ws, wsc, pc2 | |
Oficial | mgba_libretro.so | GBA | true | gb, gbc, gba | BIOS opcional: gba_bios.bin (md5: a860e8c0b6d573d191e4ec7db1b1e4f6 ) |
Oficial | minivmac_libretro.so | MAC | true | dsk,img,zip,hvf,cmd | Necesita BIOS: MacII.ROM (md5: 66223be1497460f1e60885eeb35e03cc ) |
Oficial | mrboom_libretro.so | MrBoom | false | Retirado en las últimas compilaciones. Se mantiene la parametrización por si vuelve. | |
Oficial | mu_libretro.so | Palm | true | prc,pqa,img | Necesita BIOS: palmos41-en-m515.rom (md5: 83cb1d1c76e568b916dc2e7c0bf669f6 ). Necesita un stick para manejar el stylus, por lo que no funciona sobre RG280V. Sólo stock/ROGUE |
Oficial | numero_libretro.so | Texas Instruments TI-83 | true | 8xp, 8xk, 8xg | Necesita BIOS: ti83se.rom (md5: c6ff8204c5c81b7be34614dbbd690c8b ) o ti83plus.rom (md5: 8011181f810b5ec4e9d6a03f0e14257a ) o ti83.rom (md5: d4448d09bbfde687c04f9e3310e023ab ) |
Oficial | nxengine_libretro.so | Cave Story | true | exe | Necesita ficheros de juego |
Oficial | o2em_libretro.so | Magnavox Odyssey2, Phillips Videopac+ | true | bin | Necesita BIOS: o2rom.bin (md5: 562d5ebf9e030a40d6fabfc2f33139fd ) |
Oficial | picodrive_libretro.so | MS, MD, SEGA CD, SEGA 32X | true | bin, gen, smd, md, 32x, chd, cue, iso, sms, 68k, m3u | SEGA CD necesita BIOS: bios_CD_U.bin (md5: 2efd74e3232ff260e371b99f84024f7f ), bios_CD_E.bin (md5: e66fa1dc5820d254611fdcdba0662372 ), bios_CD_J.bin (md5: 278a9397d192149e84e820ac621a8edd ) |
Oficial | pocketcdg_libretro.so | PocketCDG | true | cdg | |
Oficial | pokemini_libretro.so | POKEMINI | true | min | Necesita BIOS: bios.min (md5: 1e4fb124a3a886865acb574f388c803d ) |
Oficial | potator_libretro.so | Watara Supervision | true | bin, sv | |
Oficial | prboom_libretro.so | DOOM | true | wad, iwad, pwad | Necesita ficheros de juego |
Oficial | prosystem_libretro.so | Atari 7800 | true | a78, bin | BIOS opcional: 7800 BIOS (U).rom (md5: 0763f1ffb006ddbe32e52d497ee848ae ) |
Oficial | quasi88_libretro.so | NEC PC-88 | true | d88,u88,m3u | Necesita BIOS: quasi88/n88.rom , quasi88/n88_0.rom |
Oficial | quicknes_libretro.so | NES | true | nes | |
Oficial | race_libretro.so | NGP | true | ngp, ngc, ngpc, npc | |
Oficial | retro8_libretro.so | PICO-8 | true | png, p8 | |
Oficial | scummvm_libretro.so | ScummVM | true | <consultar larga lista en core_info/scummvm_libretro.info> | |
Oficial | snes9x2005_libretro.so | SNES | true | smc, fig, sfc, gd3, gd7, dx2, bsx, swc | |
Oficial | snes9x2005_plus_libretro.so | SNES | true | smc, fig, sfc, gd3, gd7, dx2, bsx, swc | |
Oficial | stella2014_libretro.so | Atari 2600 | true | a26, bin | |
Oficial | tic80_libretro.so | TIC-80 | true | tic | |
Oficial | tyrquake_libretro.so | QUAKE | true | pak | Necesita ficheros de juego |
Oficial | uw8_libretro.so | MicroW8 | true | uw8, wasm | |
Oficial | vaporspec_libretro.so | VaporSpec | true | vaporbin | |
Oficial | vice_x64_libretro.so | C64 | true | d64, d71, d80, d81, d82, g64, g41, x64, t64, tap, prg, p00, crt, bin, zip, gz, d6z, d7z, d8z, g6z, g4z, x6z, cmd, m3u, vfl, vsf, nib, nbz, d2m, d4m | |
Oficial | vitaquake2_libretro.so | QUAKE2 | true | pak | Necesita ficheros de juego |
Oficial | vitaquake2-rogue_libretro.so | QUAKE2 Ground Zero | true | pak | Necesita ficheros de juego |
Oficial | vitaquake2-xatrix_libretro.so | QUAKE2 The Reckoning | true | pak | Necesita ficheros de juego |
Oficial | vitaquake2-zaero_libretro.so | QUAKE2 Zaero | true | pak | Necesita ficheros de juego |
Oficial | wasm4_libretro.so | WASM-4 | true | wasm | |
Oficial | x1_libretro.so | Sharp X1 | true | dx1,zip,2d,2hd,tfd,d88,88d,hdm,xdf,dup,tap,cmd | Necesita BIOS: xmil/IPLROM.X1 (md5: eeeea1cd29c6e0e8b094790ae969bfa7 ), xmil/IPLROM.X1T (md5: 851e4a5936f17d13f8c39a980cf00d77 ) |
Oficial | xrick_libretro.so | Rick Dangerous | true | zip | |
Poligraf | atari800_libretro.so | Atari 5200 | true | xfd, atr, cdm, cas, bin, a52, zip, atx, car, com, xex | Necesita BIOS para emular Atari5200: 5200.rom (md5: 281f20ea4320404ec820fb7ec0693b38 ) |
Poligraf | bluemsx_libretro.so | MSX, MSX2 | true | rom,ri,mx1,mx2,col,dsk,cas,sg,sc,m3u | Necesita BIOS en directorio .retroarch/system/Machines |
Poligraf | cap32_libretro.so | Amstrad CPC | true | dsk, sna, zip, tap, cdt, voc, cpr, m3u | |
Poligraf | crocods_libretro.so | Amstrad CPC | true | dsk,sna,kcr | |
Poligraf | fmsx_libretro.so | MSX, MSX2 | true | rom,mx1,mx2,dsk,cas | Necesita BIOS: MSX.ROM (md5: 364a1a579fe5cb8dba54519bcfcdac0d ), MSX2.ROM (md5: ec3a01c91f24fbddcbcab0ad301bc9ef ), MSX2EXT.ROM (md5: 2183c2aff17cf4297bdb496de78c2e8a ), MSX2P.ROM (md5: 847cc025ffae665487940ff2639540e5 ), MSX2PEXT.ROM (md5: 7c8243c71d8f143b2531f01afa6a05dc ). Unsupported video mode en RG280/ODBeta. |
Poligraf | frodo_libretro.so | Commodore 64 | true | d64,t64,x64,p00,lnx,zip | |
Poligraf | hatari_libretro.so | Atari ST | true | st, msa, zip, stx, dim, ipf, m3u | Necesita BIOS: tos.img (md5: c1c57ce48e8ee4135885cee9e63a68a2 ). Configuración complicada a causa del unsupported video mode. Conseguido cierto éxito con ODBeta, pero no con stock/ROGUE. |
Poligraf | lowresnx_libretro.so | LowRes NX | true | nx | |
Poligraf | mednafen_vb_libretro.so | Nintendo Virtual Boy | true | vb, vboy, bin | Rendimiento pobre |
Poligraf | nekop2_libretro.so | NEC PC-98 | true | d98,zip,98d,fdi,fdd,2hd,tfd,d88,88d,hdm,xdf,dup,cmd,hdi,thd,nhd,hdd | No he conseguido hacerlo funcionar. Puede que necesite algunas BIOS. |
Poligraf | pcsx_rearmed_libretro.so | PlayStation | true | bin,cue,img,mdf,pbp,toc,cbn,m3u,ccd,chd | Rendimiento pobre |
Poligraf | puae_libretro.so | Commodore Amiga | true | adf, adz, dms, fdi, ipf, hdf, hdz, lha, slave, info, cue, ccd, nrg, mds, iso, chd, uae, m3u, zip, 7z, rp9 | Necesita BIOS: kick34005.A500 (md5: 82a21c1890cae844b3df741f2762d48d ) |
Poligraf | reminiscence_libretro.so | Flashback | true | map, aba, seq, lev | Necesita ficheros de juego. No he conseguido hacerlo funcionar. |
Poligraf | stonesoup_libretro.so | Dungeon Crawl Stone Soup | true | crawlrc | Necesita ficheros de juego y un fichero vacío game.crawlrc (instrucciones aquí). Unsupported video mode sobre RG280/stock/ROGUE, reinicios sobre ODBeta. |
Poligraf | theodore_libretro.so | Thomson - MO/TO | true | fd, sap, k7, m7, m5, rom | Configuración complicada debido a unsupported video mode. Conseguido cierto éxito con el modelo MO5 sobre ODBeta, pero no sobre stock/ROGUE. |
Poligraf | uzem_libretro.so | Uzebox | true | uze | Rendimiento pobre |
Poligraf | vecx_libretro.so | Vectrex | true | bin,vec |
Los OPKs para lanzar los distintos cores se generan automáticamente a partir de la configuración que se hace en un fichero CSV. En el repositorio se incluyen un par de ficheros CSV de ejemplo. Uno con la parametrización de los OPKs correspondientes a los cores oficiales (official.csv
) y otro para los cores compilados por Poligraf (poligraf.csv
).
IMPORTANTE: El fichero CSV utiliza una pipa (|) como separador de columnas, no una coma (,). La primera fila del fichero no se tiene en cuenta, por lo que se puede utilizar para identificar las columnas. El fichero debe contener 8 columnas en el siguiente orden y con el significado que se indica:
- Rótulo que mostrará GMenu2X del OPK. Por ejemplo
Nintendo GB
. - Nombre del fichero OPK sin la extensión OPK. Al nombre se le añadirá al principio la partícula
retroarch_rg350_
. Por ejemplo si en esta columna ponemosGB
, el nombre del fichero OPK resultante seráretroarch_rg350_GB.opk
. - Nombre del fichero PNG (sin extensión) que se usará como icono en el OPK. El icono correspondiente deberá existir en el subdirectorio
icons
del repositorio. Por ejemplo si en esta columna ponemosgb
, debemos asegurarnos de que existe el ficheroicons/gb.png
, que será copiado al interior del OPK durante el proceso de construcción del instalador. - En esta columna indicamos con
true
ofalse
si el OPK generado mostrará el explorador de ficheros para seleccionar la ROM o fichero de juego al ser lanzado desde GMenu2X. Corresponderá con la columnaNecesita ficheros
de la tabla del apartado anterior. Normalmente esta columna valetrue
excepto en cores que corresponden a ports de juegos comoMr.Boom
. - Nombre del fichero correspondiente al core a utilizar (con la extensión
.so
incluida en este caso). Por ejemplogambatte_libretro.so
. Lo tomaremos de la columnaCore
de la tabla del apartado anterior. - Descriptor del core. Se utiliza para diferenciar distintos lanzadores basados en el mismo sistema. Por ejemplo para distinguir los cores
GenesisPlus
yPicodrive
del sistemaSEGA MD
. - Extensiones soportadas por el core separadas por comas (,). Estas extensiones son las que serán filtradas por GMenu2X al mostrar el explorador de archivos (sólo funciona en ROGUE). Deberían coincidir o ser un subconjunto de las indicadas en la columna
Extensiones soportadas
de la tabla del apartado anterior. Por ejemplo para Game Boy normal (no color) pondremosgb,gz,zip,7z
. - Directorio donde se encuentran las ROMs del sistema. Será el que muestre por defecto GMenu2X al abrir el OPK. Por ejemplo
/media/sdcard/roms/GB/
.
El script se ha diseñado para ser utilizado en Linux sobre bash. El procedimiento para utilizarlo es el siguiente:
-
Instalar algunos requerimientos:
$ sudo apt install git wget p7zip-full tar sed squashfs-tools
-
Descargar el repositorio y los submódulos (IMPORTANTE no olvidar la opción
--recurse-submodules
):$ git clone --recurse-submodules https://github.com/eduardofilo/RG350_auto_ra_installer.git
-
Crear el fichero CSV con la parametrización que nos interese. Nos podemos basar en los dos ficheros incluidos como ejemplo en el repositorio (
official.csv
ypoligraf.csv
). Es importante tener en cuenta que el separador de columnas es una pila (|) y no una coma (,) como habitualmente en este tipo de ficheros. -
Ajustar el parámetro
CONF_CSV
al principio del script con el nombre del fichero CSV anterior (sin extensión). -
Poner la fecha de la distribución RetroArch desde la que se quiere construir el instalador en el fichero
v
. Naturalmente si se pone una fecha futura el script fallará. -
Ejecutar el script:
$ cd RG350_auto_ra_installer $ ./build.sh
Como resultado de la ejecución (y si no se producen errores durante la misma), aparecerán un par de ficheros en el directorio releases
, uno para ser utilizado en sistemas stock/ROGUE y otro para OD Beta (a no ser que hayamos desactivado la generación de alguno de ellos mediante los parámetros BUILD_STOCK
y/o BUILD_ODBETA
al principio del script).
Cuando se lanza, pregunta por dos opciones que están desactivadas por defecto:
Uninstall previous wrappers
: Borra los lanzadores OPK de los cores (wrappers) instalados con otro paquete de instalación de RetroArch.Install config
: Para instalar configuraciones básicas para la mayoría de los cores (básicamente las recopiladas por RetroGameCorps en su guía de RetroArch). Se recomienda instalar las configuraciones la primera vez y no instalarlas en reinstalaciones posteriores para evitar la pérdida de los ajustes personales hechos sobre la configuración básica.
Las opciones se marcan seleccionándolas con los controles Arriba/Abajo y pulsando X
. Para instalar hay que seleccionar el botón <OK>
con los controles Izquierda/Derecha y pulsar Start
. Por algún motivo, el programa arranca con la pantalla en negro sobre OD Beta. Pulsar alguno de los controles de la cruceta para que la pantalla se ilumine.
El OPK con el instalador puede obtenerse en las releases de este repositorio.
Si se utiliza la opción Install config
definida anteriormente, entre otras cosas como configuraciones de vídeo para la mayoría de los cores, se ajustarán los siguientes controles globalmente:
Función | Shortcut |
---|---|
Pausa | Select + A |
Reset | Select + B |
Menú RetroArch | Select + X |
Avance rápido | Select + Y |
Guardar savestate | Select + R1 |
Cargar savestate | Select + L1 |
Cambiar disco | Select + R2 |
Abrir bandeja CD | Select + L2 |
Cerrar juego | Select + Start |
Cambiar slot savestate | Select + ←→ |
Cambiar volumen | Select + ↑↓ |
Se ha creado este canal de Telegram para comunicar más fácilmente las actualizaciones de este instalador: https://t.me/RG350_ra_installer