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

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 🙂

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

  1. Oscar dit :

    TU seras que ton article c’est de la merde, non seulement tu saute des étapes et on ne comprends rien. Exemple dans ce passage :

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

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

    Tu passes de passer la partition en écriture à éditer le fichier. Quel fichier, de quoi tu parles ? Tu crois que les gens sont dans ta tête et ils vont tout comprendre comme toi.

    Le pire c’st que tu parles de télécharger ton fichier de configuration au début, mais il n’y a aucun lien pour le faire.

    Bref encore un incapable dans le milieu Informatique qui ne sait ni expliquer les choses correctement ni finaliser son propre travail.

    Tu seras petit gars que je suis Ingénieur en Informatique et que je sais de quoi je parle, pourtant ton article ça reste de la merde.

    • Eric78 dit :

      Bonjour Oscar,

      Tout critique est bonne à prendre mais la courtoisie est il me semble un minimum.
      Donc, effectivement il manque un lien vers un fichier exemple mais cela ne nuit absolument pas à la compréhension du tuto puisque juste après j’ai donné un exemple exactement le même contenu que le fichier…

      Ensuite, avant vous êtes peut ingénieur informatique mais visiblement vous ne savez pas lire.
      Editer quel fichier? Je ne sais pas pas au hasard celui qui est écrit juste en dessous de la phrase que m’indiqué ?

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

      Bref, je vous félicite vous êtes l’un de mes premiers visiteurs incapable de lire et comprendre un tuto… pourtant tous ne sont pas des as de l’informatique comme vous 😉

      A titre d’info, ce blog est rédigé bénévolement sur mon temps libre (entre ma vie de famille et professionnelle), je n’en tire aucun profit si ce n’est le plaisir d’aider les dizaines de milliers de lecteurs chaque mois qui généralement me laisse des messages positif.

      Maintenant comme aime le dire les internautes, Google est votre ami et vous trouverez des tonnes d’autres sites traitant du sujet qui devrait vous aider 😉
      Bon vent! 🙂

  2. Oscar dit :

    Quand on fait un article en informatique on le fait de façon à ce que tout le monde puisse le comprendre, étape par étape, ligne par ligne s’il le faut, pour que même un débutant puisse te suivre. ensuite on vérifie plusieurs fois son travail, est-ce qu’il manque des liens, des étapes, des noms etc…

    Voila comment travail un vrai informaticien. @+

    • Eric78 dit :

      Et bien ça tombe mal, je ne suis pas informaticien mais électricien de formation et ce site n’est pas un travail mais un loisir 😉
      Ce qui est génial avec le web, c’est qu’il existe des millions de site et si le mien ne vous convient pas, il vous suffit d’en consulter un autre, je me consolerais de la perte de vos visites grâce aux quelques milliers de commentaires positif postés sur mon site ces 20 dernières années 😉

    • Technicien Réseau dit :

      C’est marrant ça vu qu’informaticien n’existe pas comme métier vu que l’informatique regroupe plusieurs métier (Développeur, Support réseau et utilisateur, Technicien Télécom et ToIP…) donc dire un vrai informaticien c’est vraiment très drôle, tu fais un vrai faux métier en gros.

      • Eric78 dit :

        C est clair, c est vague comme terme: administrateur de base de données, analyste d exploitation, ingénieur de production, spécialiste J2E… Je crois qu il n y a que les gens qui ne sont pas du métier qui parlent d informaticien faite de savoir vraiment quel métier se cache derrière 😉

  3. Dakors dit :

    Bonjour et merci Eric78,
    Ton tutoriel m’ouvre les portes sur des possibilités immenses de présentation de mes Bartops!
    Je ne suis ni informaticien, ni électricien mais c’est simple à comprendre pour un novice!
    Je partage mes idées et apprécies les idées qui me montre qu’il y a encore un peu de bon sens chez certaines personnes.

    Comme toi, j’accepte les critiques, mais pas les gamins grossiers qui ne regardent que leurs doigt de pied.

    Merci de tes partages et bonne continuation.

    • Eric78 dit :

      Bonjour Dakors,

      Un grand merci, ton commentaire me fait vraiment plaisir et me motive à continuer de mettre à jour le blog avec de nouveaux tuto 😉

  4. JB dit :

    Salut, excellent tuto merci pour le partage !

    J’ai cependant un petit problème, le nouveau dossier apparaît bien dans le carousel, les roms à l’intèrieur également, les émulateurs sont bien présents dans la liste de ceux dispo, malheureusement les jeux ne se lancent pas, écran splashscreen puis retour à la liste des roms au bout de quelques secondes.

    Une idée d’où ça pourrait venir?
    Merci d’avance.

    • Chirs (c9601) dit :

      Bonjour JB et Eric78,
      Avant toute chose, je précise que je ne suis absolument pas informaticien, juste passionné de retrogaming, donc merci de ne pas me tenir rigueur si je n’utilise pas le bon vocabulaire.

      La ligne « command » de Emulationstation est effectivement la plus compliqué à renseigner.
      J’ai découvert ES pour PC (j’ai bien dit ES pour PC et pas Recalbox pour PC) il y a quelques mois (8 mois environ).
      J’ai passé un nombre d’heure incroyable a comprendre le fonctionnement de ES.
      Recalbox est juste une adaptation de ES pour Rpi. En clair Recalbox à mâché tout le travail de paramétrage pour l’utilisateur lambda. Cela se complique un peu si l’on veut sortir du cadre de la recalbox.

      Ce que tu appelles « écran splashscreen » arrive souvent, d’après mon expérience, pour une ligne « command » mal renseignée. Car cette ligne dépend, en tout cas sur PC, de l’émulateur utilisé.

      La ligne de « command » utilise, si je ne dis pas de bêtises, des « ligne de commande » cmd.
      Sur Windows cela s’appelle « Invite de commande ». Ni plus ni moins que l’ancien système Dos.
      J’ai remarqué, fort de ce constat, que l’on pouvait utiliser certaines lignes de commande pour faire fonctionner un émulateur.
      Par exemple, j’ai un émulateur arcade Sega Model 3 qui démmare normalement via un frontend de sélection du jeu. J’ai réussi, non sans galérer, à lancer les jeux sega model 3 directement via ES grâce aux commandes : « dir » « && » « pushd »…

      je met l’extrait de mon fichier :

      AM3
      Sega Model 3
      %HOMEPATH%\.emulationstation\systems\SegaAM3\roms
      .zip
      dir « %HOMEPATH%\.emulationstation\systems\SegaAM3\NVRAM\*.nv » && pushd « %HOMEPATH%\.emulationstation\systems\SegaAM3 » && Supermodel -input-system=xinput -res=1360,768 -fullscreen %ROM_RAW% && popd
      arcade
      am3

      Voici un autre exemple de mon fichier pour l’émulateur playstation 1 (ePSXe) :

      psx
      Playstation
      %HOMEPATH%\.emulationstation\\systems\SonyPlaystation1
      .cue .CUE .mds .iso .img
      %HOMEPATH%\.emulationstation\systems\SonyPlaystation1\ePSXe.exe -nogui -fl -loadbin « %ROM_RAW% »
      psx
      psx

      Même si tu trouves sur internet, des extractions de fichier cfg pour un système donné, il faudra toujours l’adapter à ton cas (émulateur).
      Donc il faut trouver la combinaison de commande pour chaque émulateur.

      J’ai une cinquantaine de systèmes différents et quasiment toutes les lignes sont différentes car j’ai souhaité choisir le meilleur émulateur dédié pour chaque machine.

      A ce jour seul un me résiste, la NéoGéo (nom de l’émulateur : NeoRAGEx-5.2a).
      J’ai deux contraintes pour celui-la. Une que j’ai réglé, l’autre pas solution actuellement.
      Cet émulateur utilise un frontend de sélection des jeux. Je n’arrive pas à le court-circuiter car pour lancer l’émulateur via ES il faut d’abord indiquer ou se trouve le Bios. Çà j’ai réussi mais après… l’émulateur se lance et j’arrive sur le frontend alors que j’aimerai que le jeux se lance directement.
      Le problème c’est que d’après mes recherche sur internet, cet émulateur n’accepte pas les lignes de commande…

      Au cas ou je pourrai t’aider donne moi le nom des systèmes et de l’émulateur que tu n’arrives pas a faire fonctionner.
      On ne sais jamais, dès fois que j’ai le même émulateur !
      A+

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *