Skip to content

Es: 02. Instalación de contenidos

Eduardo Moreno edited this page Dec 3, 2022 · 2 revisions

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.

ROMs

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.

SDcard paths

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.

Wolfenstein 3D

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 --

Doom

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.

Quake

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.

ScummVM

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.

MAME

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

Previews

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).

Previews path 1

Previews path 2

Si hemos respetado las rutas indicadas anteriormente, más tarde en SimpleMenu el juego se representará de la siguiente forma:

Previews path 3

BIOS

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
Nintendo Famicom Disk System BIOS/disksys.rom 8192 ca30b50f880eb660a320674ed365ef7a
SEGACD BIOS/bios_CD_E.bin 131072 e66fa1dc5820d254611fdcdba0662372
SEGACD BIOS/bios_CD_J.bin 131072 278a9397d192149e84e820ac621a8edd
SEGACD BIOS/bios_CD_U.bin 131072 854b9150240a198070150e4566ae1290
Atari 5200 BIOS/5200.rom 2048 281f20ea4320404ec820fb7ec0693b38
Atari 7800 BIOS/7800 BIOS (U).rom 0763f1ffb006ddbe32e52d497ee848ae No
Intellivision BIOS/exec.bin 8192 62e761035cb657903761800f4437b8af
Intellivision BIOS/grom.bin 2048 0cd5946c6473e42e8e4c2137785e427f
PC Engine CD BIOS/syscard3.pce 262144 38179df8f4ac870017db21ebcbf53114
PlayStation BIOS/SCPH1001.BIN 524288 924e392ed05558ffdb115408c263dccf
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
Pokemon Mini BIOS/bios.min 4096 1e4fb124a3a886865acb574f388c803d
MSX (BlueMSX) BIOS/Machines/
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

Ports

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.

Trucos

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:

  1. Buscaremos el fichero correspondiente en el repositorio. En concreto para este juego el fichero es éste.

  2. 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.

  3. Una vez arrancada la consola con la tarjeta microSD insertada, abriremos el juego con RetroArch.

  4. Accedemos al menú de RetroArch (Menu + X).

  5. Seguimos la ruta: Quick Menu > Cheats > Load Cheat File (Replace).

  6. 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.

    Cheats 1

  7. 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).

  8. Finalmente aplicamos con Apply Changes.

    Cheats 2

  9. 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.