-
Notifications
You must be signed in to change notification settings - Fork 16
Es: 02. Instalación de contenidos
La tarjeta que hemos preparado durante el proceso de instalación está vacía de contenidos. Sólo contiene el frontend SimpleMenu, los cores RetroArch, unas pocas utilidades así como librerías para su correcta ejecución. La configuración de los emuladores se ha hecho para que la mayoría de lo que podríamos considerar contenidos de usuario se localicen en la raíz de la tarjeta microSD. Concretamente los siguientes directorios que serán descritos con más detalle en lo que sigue:
-
Roms
: ROMs y datafiles de juegos. -
BIOS
: BIOS necesarias para algunos sistemas. -
Saves
: Puntuaciones, savestates. -
Cheats
: Trucos.
Por este motivo, estos cuatro directorios serán los que convendrá respaldar de vez en cuando (sobre todo Saves
) así como conservar en caso de que procedamos a hacer una instalación desde cero.
Antes de continuar, hacer un breve comentario sobre las consideraciones legales de la instalación de contenidos. El asunto es complejo. Si se tiene interés en profundizar, un buen artículo es este post de Retro Game Corps (en inglés). Aunque existen pocos precedentes legales sobre el tema, el problema afecta fundamentalmente a las BIOS y las ROMs. De forma simplificada se suele considerar que podemos manejar las ROMs de los juegos y las BIOS de las máquinas que tengamos en propiedad. En realidad se trata más de una regla basada en el sentido común, ya que como decimos, existen pocas sentencias sobre el tema y desde luego la opinión de los distintos participantes en la industria no es consistente.
El frontend SimpleMenu ha sido configurado con una serie de rutas predefinidas donde tratará de localizar las ROMs y previsualizaciones de las mismas. Dichas rutas serán creadas cuando instalemos el sistema por primera vez. Si no queremos modificar la configuración de SimpleMenu, habrá que atenerse a estas rutas. En la tabla que hay más abajo, se indica en la segunda columna el nombre del directorio que tendrá que existir en la tarjeta microSD tal y como se verá cuando la montemos en el PC. Por ejemplo en el pantallazo siguiente está señalado el directorio de ROMs del sistema Game Boy, que como vemos se encuentra junto a todos los demás dentro de la carpeta Roms
en la raíz de la tarjeta.
La ruta anterior en el PC se corresponderá con /mnt/SDCARD/Roms
en el sistema de la consola, una vez que la tarjeta se encuentre en la consola y el sistema se haya iniciado. En caso de modificar la configuración de SimpleMenu, ésta será el tipo de ruta que usaremos (por ejemplo /mnt/SDCARD/Roms/GB
para Game Boy).
A continuación se muestra la tabla de los sistemas configurados en SimpleMenu con las rutas donde deberemos situar las ROMs, las extensiones que éstas deben tener y los emuladores o cores configurados en cada uno de ellos (que podremos seleccionar a nivel de ROM pulsando SELECT
en los listados de ROMs):
Sistema | Rutas | Extensiones soportadas | Emuladores soportados |
---|---|---|---|
MAME | Roms/ARCADE | zip | mame2003_plus_libretro, fbneo_libretro, fbalpha2012_libretro, km_mame2003_xtreme_libretro, mame2000_libretro, mame2010_libretro |
CPS1 | Roms/CPS1 | zip | fbalpha2012_cps1_libretro, fbneo_libretro |
CPS2 | Roms/CPS2 | zip | fbalpha2012_cps2_libretro, fbneo_libretro |
CPS3 | Roms/CPS3 | zip | fbalpha2012_cps3_libretro, fbneo_libretro |
SNK Neo Geo | Roms/NEOGEO | zip, 7z | fbalpha2012_neogeo_libretro |
Final Burn Alpha | Roms/FBA | zip | fbalpha2012_libretro, fbalpha_libretro |
Final Burn Neo | Roms/FBN | zip | fbneo_libretro |
Daphne | Roms/DAPHNE | zip | daphne_libretro |
Nintendo NES | Roms/FC | nes, zip, 7z | fceumm_libretro, nestopia_libretro |
Nintendo Famicom Disk System | Roms/FDS | fds, zip, 7z | fceumm_libretro, nestopia_libretro |
Nintendo SNES | Roms/SFC | smc, sfc, zip, 7z | mednafen_supafaust_libretro, snes9x2005_libretro, snes9x2005_plus_libretro, snes9x2002_libretro, snes9x2010_libretro, snes9x_libretro, snes9x_next_libretro, quicknes_libretro |
Nintendo SNES MSU-1 | Roms/MSU1 | smc, sfc, zip, 7z | snes9x_libretro |
Nintendo Super Game Boy | Roms/SGB | gb, gbc, zip, 7z | mgba_libretro |
Nintendo Virtual Boy | Roms/VB | vb, vboy, bin, zip, 7z | mednafen_vb_libretro |
SEGA SG-1000 | Roms/SEGASGONE | zip, sg, 7z | gearsystem_libretro, genesis_plus_gx_libretro |
SEGA Master System | Roms/MS | zip, sms, 7z | picodrive_libretro, genesis_plus_gx_libretro, gearsystem_libretro |
SEGA Megadrive | Roms/MD | zip, bin, smd, md, mdx, gen, 7z | picodrive_libretro, genesis_plus_gx_libretro |
SEGA CD | Roms/SEGACD | bin, chd, cue | picodrive_libretro, genesis_plus_gx_libretro |
SEGA 32X | Roms/THIRTYTWOX | zip, 32x, 7z | picodrive_libretro |
Atari 2600 | Roms/ATARI | bin, a26, zip, 7z | stella2014_libretro |
Atari 5200 | Roms/FIFTYTWOHUNDRED | bin, a52, zip, 7z | a5200_libretro, atari800_libretro |
Atari 7800 | Roms/SEVENTYEIGHTHUNDRED | bin, a78, zip, 7z | prosystem_libretro |
Intellivision | Roms/INTELLI | int, bin | freeintv_libretro |
SNK Neo Geo CD | Roms/NEOCD | zip, chd | neocd_libretro |
NEC PC Engine | Roms/PCE | pce, tg16, cue, zip, 7z | mednafen_pce_fast_libretro, mednafen_supergrafx_libretro |
NEC PC Engine CD | Roms/PCECD | pce, tg16, cue, chd, zip, 7z | mednafen_pce_fast_libretro, mednafen_supergrafx_libretro |
Sony PlayStation | Roms/PS | bin, pbp, chd, zip, cue, img, iso, m3u | pcsx_rearmed_libretro, pcsx_rearmed_libretro_old, pcsx_rearmed_libretro_shaun |
Nintendo Game Boy | Roms/GB | gb, gz, zip, 7z | gambatte_libretro, gearboy_libretro |
Nintendo Game Boy Color | Roms/GBC | gbc, zip, 7z | gambatte_libretro, gearboy_libretro |
Nintendo Game Boy Advance | Roms/GBA | gba, zip, 7z | gpsp_libretro, mgba_libretro, mednafen_gba_libretro, meteor_libretro, vbam_libretro, vba_next_libretro |
Nintendo Game&Watch | Roms/GW | mgw, zip, 7z | gw_libretro |
SEGA Game Gear | Roms/GG | zip, gg, 7z | picodrive_libretro, genesis_plus_gx_libretro, gearsystem_libretro |
Atari Lynx | Roms/LYNX | zip, lnx, 7z | handy_libretro, mednafen_lynx_libretro |
SNK Neo Geo Pocket | Roms/NGP | ngp, ngc, ngpc, npc, zip, 7z | mednafen_ngp_libretro |
WonderSwan | Roms/WS | ws, wsc, pc2, zip, 7z | mednafen_wswan_libretro |
Pokemon Mini | Roms/POKE | min, zip, 7z | pokemini_libretro |
Watara Supervision | Roms/SUPERVISION | sv, bin, 7z, zip | potator_libretro |
Sinclair ZX Spectrum | Roms/ZXS | tzx, tap, z80, rzx, scl, trd, dsk, zip, 7z | fuse_libretro |
Amstrad CPC | Roms/CPC | dsk, sna, tap, cdt, voc, cpr, m3u, zip, 7z | crocods_libretro |
Commodore 64 | Roms/C64 | crt, d64, t64, bin, g64, 7z, zip | vice_x64_libretro |
MSX | Roms/MSX | rom, ri, mx1, mx2, col, dsk, cas, sg, sc, m3u, zip, 7z | bluemsx_libretro, fmsx_libretro |
Atari ST | Roms/ATARIST | a78, rom | hatari_libretro |
Commodore Amiga | Roms/AMIGA | adf, adz, dms, fdi, ipf, hdf, hdz, lha, slave, info, cue, ccd, nrg, mds, iso, chd, uae, m3u, zip, 7z, rp9 | puae_libretro, uae4arm_libretro, puae2021_libretro |
Wolfenstein 3D | Roms/WOLF3D | ecwolf | ecwolf_libretro |
Doom | Roms/DOOM/DOOM, Roms/DOOM/DOOM2 | wad, zip, 7z | prboom_libretro |
Quake | Roms/QUAKE/id1, Roms/QUAKE/hipnotic, Roms/QUAKE/rogue, Roms/QUAKE/dopa | fbl | tyrquake_libretro |
MS-DOS | Roms/DOS | zip, dosz, exe, com, bat, iso, cue, vhd, m3u, 7z | dosbox_pure_libretro |
Nec PC98 | Roms/PC98 | hdi, fdi | nekop2_libretro, np2kai_libretro |
OpenBOR | Roms/OPENBOR | pak | openbor_standalone |
Pico8 | Roms/PICO | png, p8 | fake08_libretro, retro8_libretro |
TIC80 | Roms/TIC | tic, 7z | tic80_libretro |
ScummVM | Roms/SCUMMVM | scummvm | scummvm_libretro |
Sharp X68000 | Roms/X68000 | dim, zip, img, d88, 88d, hdm, dup, 2hd, xdf, hdf, cmd, m3u, 7z | px68k_libretro |
Casi todos los sistemas de la categoría Home Computers
relacionados con la arquitectura PC, tiene el problema de que los ficheros de datos de los juegos son múltiples, no un fichero único o ROM como ocurre en consolas o microordenadores de 8 bit. En estos sistemas conviene utilizar alguna técnica para que en los listados de SimpleMenu aparezca una única entrada por juego, y no un conjunto de ficheros de nombres extraños siendo sólo uno el que hay que seleccionar para arrancar el juego. A continuación se indican aclaraciones sobre algunos de estos casos.
Aunque el core que se utiliza para emular los juegos de este sistema (ecwolf_libretro
) soporta las extensiones wl6
, n3d
, sod
, sdm
, wl1
, pk3
y exe
, se ha configurado únicamente una extensión especial ecwolf
. Esta extensión ha demostrado funcionar bien para encapsular todos los ficheros de un juego de la manera que vamos a ver utilizando como ejemplo el juego Spear of Destiny
. Los ficheros de datos de este juego son los siguientes:
AUDIOHED.SOD
AUDIOT.SOD
GAMEMAPS.SOD
MAPHEAD.SOD
VGADICT.SOD
VGAGRAPH.SOD
VGAHEAD.SOD
VSWAP.SOD
Como vemos, si permitiéramos la extensión sod
en este sistema, aparecerían todos esos ficheros en el listado y sería difícil identificar el juego de que se trata y el fichero principal que hay que abrir. La solución es crear un fichero de texto en el mismo directorio con el siguiente contenido:
DATA=SOD
-- end --
El nombre del fichero será lo que queramos que aparezca en el listado, es decir el nombre del juego, y la extensión será la mencionada .ecwolf
. Por ejemplo en este caso podríamos llamarlo Spear of Destiny.ecwolf
.
Habrá que adaptar el valor del parámetro DATA
a la extensión de los ficheros del juego. Por ejemplo en el juego Wolfenstein 3D
original, los ficheros de datos tienen la extensión WL6
, por lo que el fichero que podremos llamar Wolfenstein 3D.ecwolf
en este caso contendrá lo siguiente:
DATA=WL6
-- end --
En este sistema se han configurado dos directorios, uno para instalar los mods basados en el motor del Doom original (vamos a llamarlo Doom 1 a partir de ahora) y otro para los del motor del Doom 2. Todos los ficheros, tanto los de los motores como de los mods, utilizan la extensión .wad
, pero al contrario de lo que ocurre en Quake, los ficheros se pueden renombrar. La única condición es que en el mismo directorio donde exista el mod, esté el wad del motor correspondiente. De esta forma, podrán convivir los wads de los mods de Doom 1 y 2 en sus correspondientes directorios con los wad del motor. Renombrando los wads de los mods, los podremos distinguir fácilmente del motor.
Los cuatro directorios configurados en este sistema respetan la estructura necesaria para los distintos Expansion Paks que se describen aquí. Los nombres de los ficheros (pak0.pak
, pak1.pak
, ...) dentro de los distintos directorios, no se puede cambiar, por lo que se confunden entre los distintos juegos y aparecen varios por juego cuando sólo hay que lanzar el pak0.pak
. Se ha utilizado un truco comentado por @neilswann80 en esta discussion de otro repositorio consistente en crear un link al fichero a lanzar que sí podremos renombrar. Los links tienen extensión fbl
y es por tanto la extensión configurada en SimpleMenu. Si los directorios de Quake contienen sus correspondientes ficheros pak
, los links para los 4 juegos soportados se generan automáticamente cuando la consola es arrancada con la tarjeta con Koriki instalada.
Los juegos ScummVM están compuestos de varios ficheros, por lo que habrá que mantenerlos en directorios. La extensión scummvm
indicada en la lista anterior corresponde a un fichero que contenga el ID del juego que extraeremos de esta lista y que colocaremos en el directorio donde tengamos el resto de los ficheros del juego. Por ejemplo para el juego "The Secret of Monkey Island" necesitaremos los ficheros que podemos consultar en el wiki de ScummVM. En concreto para este juego vemos que necesitaremos los ficheros MONKEY.000
y MONKEY.001
que colocaremos en un directorio de cualquier nombre dentro del directorio configurado en SimpleMenu (Roms/SCUMMVM
). Será en este mismo directorio donde tendremos que colocar el fichero anterior con la extensión scummvm
. Según la lista de compatibilidad de ScummVM, el ID de "The Secret of Monkey Island" es monkey
, por lo que el contenido del fichero que colocaremos dentro del directorio del juego será ese (monkey
). El nombre del fichero será el que aparecerá en los listados de SimpleMenu, por lo que podremos llamarlo por ejemplo The Secret of Monkey Island.scummvm
.
En este sistema hay 6 cores distintos, algunos de ellos soportando romsets distintos a su vez. Se indica a continuación la lista de los romsets soportados en cada combinación. Se enlaza al datafile utilizado en cada caso que puede servir para comprobar la compatibilidad de las ROMs:
Core | Nombre | Romset |
---|---|---|
mame2003_plus_libretro | Arcade (MAME 2003-Plus) | v0.78 |
fbneo_libretro | FinalBurn Neo | FBNeo dat |
fbalpha2012_libretro | FB Alpha 2012 | 0.2.97.44 |
km_mame2003_xtreme_libretro | MAME 2003 Xtreme (2K21) | v0.78 |
mame2000_libretro | MAME 2000 (0.37b5) | v0.37b5 |
mame2010_libretro | MAME 2010 (0.139) | v0.139 |
Las previews deberán colocarse en un directorio de nombre Imgs
dentro de cada uno de los directorios de ROMs del listado del apartado ROMs. Por ejemplo las previews de las ROMs de GB deberán situarse en Roms/GB/Imgs
siendo ésta la ruta desde la raíz de la tarjeta microSD cuando la montamos en el PC. Los ficheros de preview tienen que ser PNGs con el mismo nombre del juego (excepto la extensión).
Si hemos respetado las rutas indicadas anteriormente, más tarde en SimpleMenu el juego se representará de la siguiente forma:
Todos los emuladores instalados en la distribución tienen redirigidas las rutas donde deben estar las BIOS al directorio BIOS
en la raíz de la tarjeta microSD. De forma similar al caso de las ROMs, el directorio BIOS
en la raíz de la tarjeta, se corresponderá con la ruta /mnt/SDCARD/BIOS
en el sistema de la consola. Aunque no será frecuente, en caso de tener que localizar alguna BIOS explorando ficheros desde algún emulador o core, ésta será la ruta a seguir.
No todos los emuladores necesitan BIOS. Es el caso de las máquinas que no la tenían o cuya función se ha podido emular. A continuación se indica el fichero de BIOS que habrá que localizar así como el lugar donde lo deberemos colocar. Para ayudar a identificar los ficheros correctos, se indica en caso de conocerlo su tamaño en bytes y un hash MD5. Se marcan también los casos en que la BIOS es imprescindible para que funcione el emulador. En caso de indicarse que NO
, el emulador funcionará, pero se recomienda instalarla de cara a conseguir la mayor compatibilidad de los juegos. Para comprobar los hashes MD5 se recomienda la utilidad multiplataforma Quickhash.
Los tamaños y hashes indicados son de BIOS que se han comprobado funcionales, pero no necesariamente las únicas posibles. Es decir, en algunas máquinas existen varias versiones de BIOS posibles, normalmente por haber existido varios modelos de las máquinas (siendo el caso de la PlayStation uno de los más típicos), o por haber desarrollado alguien BIOS con capacidades mejoradas (aquí el caso típico es el de Neo Geo y su UNIBIOS).
Sistema | Ruta | Tamaño | Hash MD5 | ¿Necesaria? |
---|---|---|---|---|
SNK Neo Geo | Roms/NEOGEO/neogeo.zip | Sí | ||
Nintendo Famicom Disk System | BIOS/disksys.rom | 8192 | ca30b50f880eb660a320674ed365ef7a |
Sí |
SEGACD | BIOS/bios_CD_E.bin | 131072 | e66fa1dc5820d254611fdcdba0662372 |
Sí |
SEGACD | BIOS/bios_CD_J.bin | 131072 | 278a9397d192149e84e820ac621a8edd |
Sí |
SEGACD | BIOS/bios_CD_U.bin | 131072 | 854b9150240a198070150e4566ae1290 |
Sí |
Atari 5200 | BIOS/5200.rom | 2048 | 281f20ea4320404ec820fb7ec0693b38 |
Sí |
Atari 7800 | BIOS/7800 BIOS (U).rom | 0763f1ffb006ddbe32e52d497ee848ae |
No | |
Intellivision | BIOS/exec.bin | 8192 | 62e761035cb657903761800f4437b8af |
Sí |
Intellivision | BIOS/grom.bin | 2048 | 0cd5946c6473e42e8e4c2137785e427f |
Sí |
PC Engine CD | BIOS/syscard3.pce | 262144 | 38179df8f4ac870017db21ebcbf53114 |
Sí |
PlayStation | BIOS/SCPH1001.BIN | 524288 | 924e392ed05558ffdb115408c263dccf |
Sí |
Nintendo GB | BIOS/gb_bios.bin | 256 | 32fbbd84168d3482956eb3c5051637f5 |
No |
Nintendo GBC | BIOS/gbc_bios.bin | 2304 | dbfce9db9deaa2567f6a84fde55f9680 |
No |
Nintendo GBA | BIOS/gba_bios.bin | 16384 | a860e8c0b6d573d191e4ec7db1b1e4f6 |
No, aunque recomendable |
Atari Lynx | BIOS/lynxboot.img | 512 | fcd403db69f54290b51035d82f835e7b |
Sí |
Pokemon Mini | BIOS/bios.min | 4096 | 1e4fb124a3a886865acb574f388c803d |
Sí |
MSX (BlueMSX) | BIOS/Machines/ | Sí | ||
MSX (fMSX) | BIOS/MSX.ROM | 32768 | 364a1a579fe5cb8dba54519bcfcdac0d |
Sí para MSX |
MSX (fMSX) | BIOS/MSX2.ROM | ec3a01c91f24fbddcbcab0ad301bc9ef |
Sí para MSX2 | |
MSX (fMSX) | BIOS/MSX2EXT.ROM | 2183c2aff17cf4297bdb496de78c2e8a |
Sí para MSX2 | |
MSX (fMSX) | BIOS/MSX2P.ROM | 32768 | 847cc025ffae665487940ff2639540e5 |
Sí para MSX2+ |
MSX (fMSX) | BIOS/MSX2PEXT.ROM | 16384 | 7c8243c71d8f143b2531f01afa6a05dc |
Sí para MSX2+ |
Commodore Amiga | BIOS/kick34005.A500 | 262144 | 82a21c1890cae844b3df741f2762d48d |
Sí para Amiga 500 |
Commodore Amiga | BIOS/kick37175.A500 | 524288 | dc10d7bdd1b6f450773dfb558477c230 |
Sí para Amiga 500+ |
Commodore Amiga | BIOS/kick40063.A600 | 524288 | e40a5dfb3d017ba8779faba30cbd1c8e |
Sí para Amiga 600 |
Commodore Amiga | BIOS/kick40068.A1200 | 524288 | 646773759326fbac3b2311fd8c8793ee |
Sí para Amiga 1200 |
Commodore Amiga | BIOS/kick40060.CD32 | 524288 | 5f8924d013dd57a89cf349f4cdedc6b1 |
No |
Commodore Amiga | BIOS/kick40060.CD32.ext | 524288 | bb72565701b1b6faece07d68ea5da639 |
No |
Wolfenstein 3D | BIOS/ecwolf.pk3 | d68107770b3ba230d10aa27472a7617b |
Sí |
Los ports se pueden instalar en cualquier directorio. Por ejemplo podríamos hacerlo en el directorio Apps
o crear un directorio Ports
en la raíz de la tarjeta dedicado para ellos. Luego habrá que crear un lanzador para SimpleMenu al estilo de los que hay para las aplicaciones preinstaladas en Koriki. Los lanzadores de la sección Apps de SimpleMenu están en el directorio .simplemenu/apps
y los que deberemos crear para los ports deberán ir en .simplemenu/games
. Lo habitual será crear un script sh (nos podemos fijar por ejemplo en cómo está hecho el lanzador de Commander
). En caso de querer poner espacios en los nombres de los juegos/ports, habrá que crear un alias fgl
en lugar de un script sh
(en este caso nos fijaremos en el lanzador de la aplicación Bootscreen Selector
).
Las previews de los juegos/ports irán en el directorio .simplemenu/games/Imgs
. De forma parecida a lo visto con las previews de las ROMs, el nombre de los PNGs en ese directorio deberá coincidir con el nombre del script sh
en el directorio .simplemenu/games
. En caso de utilizar un alias fgl
, el nombre deberá ser el del ejecutable que se indica en el parámetro exec
en su interior.
RetroArch lleva integrado un sistema de trucos en base a una serie de ficheros que se pueden obtener de este repositorio. En Koriki, el directorio donde tenemos que colocar los ficheros, se ha redirigido a la raíz de la tarjeta microSD para facilitar su instalación, al igual que con las ROMs, BIOS y Saves. En concreto al directorio Cheats
.
Vamos a detallar el proceso de instalación de trucos utilizando como ejemplo el juego Adventure Island
de Game Boy:
-
Buscaremos el fichero correspondiente en el repositorio. En concreto para este juego el fichero es éste.
-
Lo copiaremos al directorio
Cheats
en la raíz de la tarjeta microSD de la consola. En realidad lo más lógico es copiar colecciones completas de sistemas manteniendo la estructura de directorios que vemos en el repositorio. -
Una vez arrancada la consola con la tarjeta microSD insertada, abriremos el juego con RetroArch.
-
Accedemos al menú de RetroArch (
Menu + X
). -
Seguimos la ruta:
Quick Menu > Cheats > Load Cheat File (Replace)
. -
Aparecerá un explorador de archivos que mostrará el contenido de la carpeta
Cheats
de la tarjeta. Localizamos el fichero correspondiente al juego y lo seleccionamos. -
Volveremos a la pantalla de Cheats donde veremos que la parte inferior se ha cargado con los trucos. Allí podremos ajustar los que deseemos (el ajuste rápido se hace con las teclas izquierda/derecha de la cruceta).
-
Finalmente aplicamos con
Apply Changes
. -
Si queremos que los ajustes de trucos que hemos hecho se apliquen entre distintas sesiones de juego, tendremos que hacer un override para el juego.
Instrucciones obtenidas de esta guía de Retro Game Corps.
Koriki's developers are not native English speakers. Feel free to create an issue if you spot a grammar or style error in the wiki.