Recalbox: personnaliser Emulationstation et afficher des collection de jeux (Mario, Zelda, KOF…)

Publié le 31 octobre 2017 par Eric78

EmulationStation (ES) est l’un des frontend les plus populaires dans le milieu du retrogaming. Et pour cause, cette interface est légère et tourne de manière fluide sur de petites machines comme le Raspberry Pi tout en étant capable de prendre en charge énormément d’émulateur (ex: dans sa version PC, il est possible de lancer CEMU pour profiter des jeux Wii U). Outre son interface sobre et agréable, ES à l’avantage d’être plus simple à configurer que d’autres frontend. Ainsi, il est simple de personnaliser l’affichage sur l’écran d’accueil selon votre gout. Par défaut, ES affiche un carrousel qui sert à faire défiler différents systèmes (consoles de jeux vidéo de salon/portable, bornes d’arcade). Le tuto ci-dessous va vous expliquer comment modifier l’écran d’accueil pour afficher des collection de jeux. Par exemple, créer un menu qui va regrouper tous les jeux Zelda ayant existés indépendamment de la plateforme d’origine (ex: toutes les versions depuis la GameBoy jusqu’à la Wii). Vous pourrez bien sur faire la même chose avec les séries de votre choix. Pour un Bartop, vous pourrez choisir de garder uniquement les jeux orientés arcades comme les King of Fighters.

Avant de se lancer dans la modification, il faut comprendre le rôle des principaux fichiers de conf de Recalbox

es_settings.cfg
Contient les paramètres de base: ex le thème utilisé au démarrage
<string name= »ThemeSet » value= »recalbox » />

es_systems.cfg
Contient la liste des machines à faire apparaître dans le carrousel
Ce fichier stock tout les paramètres qui vont permettre d’indiquer à ES quel émulateur lancé en fonction du menu choisi.
C’est ce fichier qu’il faut éditer pour rajouter vos collections.

Dossier thèmes
Contient les images / XML qui détermine la façon dont s’affiche les différents éléments de l’interface d’ES.
Si l’on rajoute une entrée dans le carrousel sur l’écran d’accueil en éditant le fichier es_systems.cfg, on doit ensuite créer un sous dossier dans thème devant porter le même nom que celui déclaré dans le fichier es_systems.cfg

roms
contient les fichiers de jeux (ROM / ISO)
Le dossier doit porter le nom normalisé tel qu’il apparaît dans le fichier de conf es_systems.cfg
Les fichiers correspondant aux différents jeux doivent être présent et porter l’extension attendu par l’émulateur. (ex: .smc pour les jeux super NES)
Si les roms ne sont pas déposés, le menu ne va pas apparaître même si le reste est bien configuré.
Le dossier roms comporte un fichier gamelist.xml. Ce dernier est facultatif, c’est lui qui contient toutes les données d’informations relatives à vos jeux (Nom, description, développeur/éditeur, genre, nombre de joueurs, visuel à afficher dans ES…) Si le fichier gamelist est abscent, les jeux apparaîtrons simplement sans info.

Le plus compliqué pour rajouter une collection est donc d’éditer le fichier es_systems.cfg et de savoir quoi associer comme émulateur en fonction des jeux qu’on souhaite lancer.
Pour plus de simplicité, je vous propose de télécharger mon fichier de configuration et de s’appuyer dessus comme modèle.

En l’ouvrant, vous verrez que le bloc ci-dessous se répète autant de fois qu’il y a de systèmes/consoles affichés dans l’interface d’EmulationStation.

  <system>
    <fullname>Game Boy Color</fullname>
    <name>gbc</name>
    <path>/recalbox/share/roms/gbc</path>
    <extension>.gb .GB .gbc .GBC .zip .ZIP</extension>
    <command>python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%</comman$
    <platform>gbc</platform>
    <theme>gbc</theme>
    <emulators>
      <emulator name="libretro">
        <cores>
          <core>gambatte</core>
          <core>tgbdual</core>
        </cores>
      </emulator>
    </emulators>
  </system>

Le nomenclature des balises est simple à comprendre. L’exemple ci-dessus correspond à la GameBoy Color mais le principe est le même pour les collections que vous allez rajouter.
<system> </system> marque le début et la fin d’une configuration pour une machine. Il est conseillé de copier puis modifier tout ce qui est contenu entre ces blocs pour vos ajots / retraits de l’interface.
<name>gbc</name> c’est le nom « normalisé » vos dossiers dans roms et thèmes doivent porter ce nom pour qu’ES les identifient
<fullname>Game Boy Color</fullname> : C’est le nom complet tel qu’il est affiché par l’émulateur
<path>/recalbox/share/roms/gbc</path> : Correspond au chemin ou sont stockés les roms de la Game Color
<extension>.gb .GB .gbc .GBC .zip .ZIP</extension> : Cela indique à l’émulateur les extensions de fichiers qu’il doit prendre en compte (ici les fichiers archivés/compressé sont gérés)
<command>python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc …</command> : il s’agit de la commande qu’ES va envoyer pour lancer l’émulateur avec les paramètres correspondant à la machine. Il s’agit de la variable la plus complexe à renseigner.
<platform>gbc</platform> : cette balise est facultative. C’est ce qui indique au scrapper les info de quelle système il doit chercher. Pour les collections, le scrap échoue car ce n’est pas un nom standardisé. Il faudra renseigner votre fichier gamelist à la main.
<theme>gbc</theme> : indique quelle présentation choisir en se basant sur les paramètres du thème en cours d’utilisation. Ce tag est aussi optionel. Si vous ne le mettez pas, il va utiliser par défaut la valeur de la balaise <name>. Dans le cas, d’une collection particulière. Pensez à créer un sous dossier dans thème correspondant à votre sélection de jeux)

Voilà, il ne vous reste plus qu’à vous connecter à la console de Recalbox pour modifier le fichier selon votre préférence.

Connectez vous avez votre terminal préféré (ex: Putty)

Rentre les identifiants de la Recalbox
login: root
password: recalboxroot

Passer la partition en écriture via la commande:
mount -o remount,rw /

Puis éditez le fichier avec l’outil de votre choix (vi, nano)

nano /recalbox/share_init/system/.emulationstation/es_systems.cfg

Par exemple, pour ajouter sur le carrousel une entrée Zelda qui proposera tous les jeux de la série. On va rajouter dans la balise extension toutes celles correspond à l’ensemble des consoles qui devront être utilisées: game boy, NES, super Nes, Nintendo 64… ainsi que les paramètres de l’émulateur. Ce qui donne ça:

<system>
        <fullname>ZC</fullname>
        <name>snes</name>
        <path>/recalbox/share/roms/zc/</path>
        <extension>.smc .sfc .SMC .SFC .zip .ZIP .mgd .MGD .n64 .N64 .z64 .Z64 .v64 .V64 .gb .GB .gbc .GBC .gba .GBA</extension>
        <command>python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE%</command>
        <platform>snes</platform>
        <theme>zc</theme>
	<emulators>
	    <emulator name="libretro">
	        <cores>
		    <core>catsfc</core>
		    <core>pocketsnes</core>
		    <core>snes9x_next</core>
			<core>gpsp</core>
		    <core>mgba</core>
		    <core>meteor</core>
			<core>gambatte</core>
		    <core>tgbdual</core>
            <core>fceumm</core>
		    <core>fceunext</core>
		    <core>nestopia</core>
		    <core>quicknes</core>
                  <core>fceumm</core>
		    <core>fceunext</core>
		    <core>nestopia</core>
		    <core>quicknes</core>			
		</cores>
	    </emulator>
		<emulator name="mupen64plus">
	        <cores>
		    <core>gliden64</core>
		    <core>n64</core>
		    <core>rice</core>
    		    <core>glide64mk2</core>
		</cores>
	    </emulator>
		
	</emulators>
    </system>

Copier / coller l’ensemble du bloc system dans es_systems.cfg et faire enregistrer. (sous nano CTRL+X > yes)

Maintenant pour que l’affichage soit beau, rendez vous sur cyclairyourmamecab.wixsite.com pour télécharger un beau thème Zelda + les roms correspondantes. Une fois l’archive Legend of Zelda téléchargée, il faut extraire les deux dossiers:

-Rom
-Thème

Copier le dossier « zc » présent dans le dossier « rom » et aller l’extraire dans le partage réseau de recalbox:
\\RECALBOX\share\roms

Copier le dossier « Legend of Zelda » qui se trouve dans le dossier « thème » du partage réseau correspondant
\\RECALBOX\share\system\.emulationstation\themes

Voilà, vous n’avez plus qu’à redémarrer Recalbox et le tour est joué! Vous avez un beau menu