L’arcade à (tout) petit prix, deuxième partie : « Pimp My Picade » avec Attract-Mode

Après avoir construit un beau tabletop arcade (le tuto complet est à découvrir ici), on peut se retrouver frustré par le manque de variété et de dynamisme que propose l’interface par défaut de RetroPie, à savoir EmulationStation. Fort heureusement, une solution existe, et elle s’appelle Attract-Mode. Voyons ensemble comment l’installer et l’utiliser…

Attract Mode (Logo)

Installation d’Attract-Mode

Attract-Mode est, comme son nom l’indique, une interface se basant sur ce que les professionnels appellent l’attract-mode des bornes, dans la langue de Molière tout simplement le « mode de démonstration ». L’objectif est de donner envie au badaud de glisser sa pièce en lui présentant rapidement en quoi consiste le jeu, en lui montrant des images chatoyantes et des scènes spectaculaires. Le frontend Attract-Mode est basé sur cette philosophie. Pour vous donner une idée, l’objectif est d’arriver à ceci :

Ça fait envie non ? Pour installer cette nouvelle interface dans RetroPie, un détour par l’outil de setup et le tour est joué. Si vous voulez l’installer ailleurs que dans RetroPie, vous pouvez télécharger une version compatible avec votre OS sur le site officiel.
Attract-Mode est situé dans les packages Expérimentaux.
On l’installe depuis le code source, on patiente, et il n’y a plus qu’à le lancer.
Pour ce faire, quittez EmulationStation, branchez un clavier sur votre Pi et à la ligne de commande tapez attract.

Configuration d’Attract-Mode

Le premier contact est rebutant : une belle fenêtre vide. Appuyez sur TAB afin de faire apparaître le premier menu. Là encore, c’est austère, pour ne pas dire sinistre.
Déplacez le curseur tout en haut jusqu’à Emulators et faites Enter, puis choisissez d’ajouter un nouvel émulateur.
Ici, entrez le nom de l’émulateur que vous êtes en train de configurer. Si on est toujours dans l’arcade, ce sera certainement Final Burn Alpha ou une déclinaison de MAME. On créera un menu par émulateur, il sera par la suite possible de fusionner les listes de jeux si désiré.
L’écran suivant est l’étape la plus importante. Faites bien attention en entrant les différentes valeurs de ne pas faire d’erreurs de syntaxe. Évidemment tout est corrigeable ensuite en tapant directement sur le fichier de config, mais autant faire en sorte que tout soit bien paramétré dès le départ. La configuration qui suit est assez spécifique à RetroPie, mais si vous installez Attract-Mode sur un autre système vous devrez adapter au mieux. Pour modifier un paramètre, déplacez le curseur dessus et faites Enter. Une fois votre paramètre entré, refaites Enter pour le valider.
Sur la ligne Executable, quel que soit l’émulateur que vous utilisez (Final Burn Alpha ou MAME) vous lancerez retroarch (si vous préférez utiliser pifba ou autre, remplacez évidemment retroarch par le soft de votre choix). Entrez donc le chemin complet suivant :
/opt/retropie/emulators/retroarch/bin/retroarch

La ligne suivante est celle des arguments à utiliser. Avec retroarch, il est important de spécifier quel core (quel émulateur) on va lancer. Si vous voulez lancer Final Burn Alpha, entrez :
-L /opt/retropie/libretrocores/lr-fbalpha/fbalpha_libretro.so "[romfilename]"
Si vous voulez lancer MAME 2003, entrez :
-L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so "[romfilename]"
Si vous voulez lancer MAME 2010, entrez :
-L /opt/retropie/libretrocores/lr-mame2010/mame2010_libretro.so "[romfilename]"
Sur la ligne Working directory, entrez tout simplement $HOME ou laissez le champ vide. Avec RetroPie, je n’ai pas l’impression que cela change grand-chose.

Sur la ligne Rom Path(s) vous pouvez spécifier un ou plusieurs chemins pour vos roms. Je recommande d’utiliser un seul path par émulateur, étant donné les incompatibilités entre romsets, mais c’est vous qui voyez. Par exemple, pour Final Burn Alpha sur RetroPie le path sera :
$HOME/RetroPie/roms/fba/
Sur la ligne suivante entrez l’extension de vos roms. La plupart du temps ce sera .zip, mais certains romsets sont en .7z.

Sur la ligne System identifier, entrez Arcade ou, le cas échéant, le système émulé.

La ligne suivante Info Source/Scraper est un menu, appuyez sur haut/bas pour faire défiler les options. Dans notre cas le meilleur choix est listsoftware+thegamesdb.net, mais ce choix nécessite des fichiers supplémentaires.

Parmi ceux-ci, les fichiers catver.ini et genre.ini trouvables chez Progetto Snaps. Je recommande également de générer ou de télécharger un fichier XML de la version de MAME adaptée à votre émulateur. Si vous avez MAME installé sur une machine quelconque, c’est le fichier que l’on obtient en tapant l’option -listxml. Si vous n’avez pas MAME sous la main, j’ai mis ces fichiers à dispo pour MAME 0.78 (MAME 2003) et MAME 0.175 (FBA 0.2.97.39).

La ligne suivante est celle où l’on va préciser où se trouvent les fichiers gamelist.xml, catver.ini et genre.ini. Vous pouvez les mettre un peu où vous voulez, personnellement j’ai créé un répertoire metadata dans /home/pi/.attract, du coup le chemin désiré est :
$HOME/.attract/metadata/gamelist.xml;$HOME/.attract/metadata/catver.ini;$HOME/.attract/metadata/genre.ini

Toutefois, rien ne vous empêche de les mettre directement dans .attract et de vous passer des fichiers ini pour n’utiliser que le xml.
Une fois que tout ceci est configuré, il est temps de générer une liste de roms ! Amenez le curseur sur Generate Collection/Rom List et faites Enter. Un peu de patience, le temps que la liste soit générée… Ne faites pas Scrape Artwork, c’est une perte de temps et ça risque de vous coller un artwork générique au lieu de ce qu’on recherche, à savoir un spécifique par jeu. Allez ensuite sur Back plusieurs fois, et vérifiez que tous les jeux sont présents dans la nouvelle liste. Si vous avez de la chance, il y a déjà des thèmes installés, si vous n’en avez pas ça ressemblera à ça.
Oui, pour l’instant ça n’est toujours pas très joli, mais on y arrive ! Nous allons maintenant devoir récupérer des images et vidéos pour agrémenter notre interface. Tout d’abord, une nouvelle visite chez Progetto Snaps pour récupérer flyers et marquees.
Les Flyers, ce sont les images et dessins promotionnels distribués lors de la sortie des jeux. Les Marquees, ce sont les illustrations figurant tout en haut des bornes, généralement avec le titre du jeu. Les flyers vont dans /home/pi/.attract/menu-art/flyer/ et les marquees dans /home/pi/.attract/menu-art/marquee/

Évidemment si vous êtes limité en place contentez-vous de prendre les illustrations adaptées aux jeux que vous pensez émuler. Sinon, autant ne pas se prendre la tête et prendre les packs entiers.

Ensuite, allons récupérer des logos. Ceux-ci sont trouvables sur le site de Hyperspin, un autre frontend populaire mais trop gourmand pour le Raspberry Pi. Par exemple, pour une borne dédiée à la Neo-Geo, on peut se tourner vers un pack de ce genre.

Il peut parfois être fastidieux de se rendre compte quel flyer, marquee, ou wheel manque à l’appel. Histoire de ne pas me prendre la tête, j’ai codé un script shell qui fait cette vérification pour moi. Copiez-le sur votre Pi, modifiez la configuration de l’emplacement des fichiers d’Attract-Mode si nécessaire, et lancez-le en indiquant le chemin de vos roms en argument. Exemple :
./list_missing.sh /home/pi/RetroPie/roms/fba/

Ne pas oublier pas de rendre ce script exécutable :
chmod +x ./list_missing.sh

C’est lui qui va aller regarder s’il trouve les illustrations associées aux roms au format ZIP contenues dans le répertoire indiqué, et s’il ne les trouve pas, en faire la liste dans des fichiers texte. Il est aussi supposé ignorer quelques BIOS, mais ne connaissant pas par cœur tous les systèmes d’arcade de la Terre, il est possible que j’en aie oublié. À vous de modifier la ligne suivante dans le script en ajoutant les noms de BIOS à ignorer avec -e devant :
if echo $GAMENAME | grep -q -e neogeo -e stvbios -e pgm

Dernier point : le script va aussi aller tout seul comme un grand télécharger pour vous les aperçus vidéo manquants de vos roms sur Progetto Snaps. S’il y a 4500 roms dans votre répertoire, ça va prendre un moment et de l’espace, vous voilà prévenus. En même temps, ça ne sert vraiment à rien d’avoir autant de roms, hein.

On a bien bossé avec nos téléchargements et nos scripts, il est temps de retourner configurer Attract-Mode. Avant toute chose, il est essentiel d’expliquer une notion importante, celle du Display. Attract-Mode est, de base, une succession d’interfaces appelées Displays. On va de l’un à l’autre en appuyant sur gauche/droite. Chaque Display est associé à un, ou plusieurs émulateurs. Le Display est configurable et personnalisable. Par défaut, l’Attract-Mode de RetroPie utilise d’ailleurs normalement un thème Pacman (jouable, utilisez les touches R D F G pour déplacer Pacman). Il est possible d’avoir un seul Display qui regroupe tous vos émulateurs et toutes vos collections !

Maintenant que c’est dit, téléchargez le thème Nevato et décompressez l’archive dans /home/pi/.attract/layouts/

Relancez Attract-Mode (en tapant attract à la ligne de commande), et allez dans le menu Display. La génération de la liste de roms précédemment effectuée a créé un Display du nom de votre émulateur (ici Final Burn Alpha), ouvrez-le.
Allez sur la ligne Layout et faites Enter pour naviguer entre les différents thèmes avec les touches haut/bas. Choisissez Nevato. Si Nevato n’y est pas, vérifiez qu’il est bien présent dans votre répertoire /home/pi/.attract/layouts/
Validez et appuyez sur Back pour revenir au menu principal. On va retourner dans Emulators et indiquer à Attract-Mode où retrouver ses petits. Ouvrez de nouveau la configuration de votre émulateur, et scrollez jusqu’à Add Artwork.
Vous allez devoir créer les Artworks suivants:

Label: flyer
Path: $HOME/.attract/menu-art/flyer/

Label: marquee
Path: $HOME/.attract/menu-art/marquee/

Label: snap
Path: $HOME/.attract/menu-art/snap/

Label: wheel
Path: $HOME/.attract/menu-art/wheel/

Ils apparaissent ensuite dans la configuration de votre émulateur.
Faites Back, revenez à votre liste de jeux. Ça commence à avoir de la gueule, non ? Mais il reste une dernière petite touche à appliquer.

Retournez dans Displays et choisissez de nouveau votre émulateur, puis allez sur Layout Options. Là, vous pourrez choisir de mettre plus ou moins de scanlines sur la vidéo de la vignette, choisir ce qu’affiche le LCD sous l’écran (par exemple le nom de l’émulateur), modifier la vitesse de la roue des titres, mais surtout choisir le Background Art. Allez dessus, choisissez « flyer », validez. Vous pouvez décider que le fond soit plus ou moins sombre, plus ou moins visible, avec les options en dessous. Puis allez à nouveau sur Back, et…
… roulez jeunesse !

Faire d’Attract-Mode l’interface par défaut

Comment configurer Attract-Mode afin qu’il devienne l’interface par défaut, vous demandez-vous ? Il faudra relancer le setup de RetroPie, et vous rendre dans Configuration / tools.
Ensuite, allez dans Autostart puis Manually edit.
Là, commentez emulationstation et ajoutez attract

Si vous voulez que le Pi s’éteigne quand vous quittez Attract-Mode, vous pouvez ajouter sudo halt sur une troisième ligne.

Votre fichier contiendra alors:

# emulationstation
attract
sudo halt

Validez, et faites bien attention à faire Cancel et à ne pas valider Start Emulationstation at boot quand vous reviendrez à l’écran suivant sinon vous devrez re-modifier le fichier. Au prochain reboot, Attract-Mode se lancera directement, et le Pi s’éteindra quand vous le quitterez.

Il y a encore pas mal de choses configurables dans Attract-Mode. Certains thèmes assez fous permettent par exemple de préciser quelle configuration de boutons fonctionne avec quel jeu, les possibilités sont assez vastes et il y a de quoi y passer des heures… à moins de préférer jouer aux jeux ! Et pour ça, vous avez désormais tout ce qu’il vous faut pour passer de longues et nostalgiques soirées de gaming. Bon amusement !

« Kwyxz est joueur depuis 1985. Multiplateformes, multigenres, souvent exigeant, parfois tatillon, mais jamais blasé. » C’est la description de l’auteur de ce dossier, que vous trouverez sur son propre site, Gaming Since 198x. Il est reproduit ici avec son autorisation et quelques corrections. Et pour les curieux, c’est aussi lui qui va nous aider à déménager et gérer le nouveau serveur très bientôt et s’il indique tous les prix est en dollars, c’est qu’il vit à Los Angeles depuis des années !

Vous devriez également aimer…