Par Nordicpower amiga15@outlook.fr / https://twitter.com/nordicpower Septembre 2018
Gamelistpower est une série de scripts en python afin d'améliorer Recalbox sur Pi3.
La version 0.9 de Gamelistpower installe une nouvelle plateforme dénommée collections dans RecalBox (avec le thème favori). Celle-ci permet de lancer des jeux sur plusieurs plateformes différentes au sein d'une seule et de les regrouper par dossier, Tout-ceci sans recopier les roms, préservant ainsi l'espace disponible sur votre SD ou HDD!!
Ces dossiers de jeux multi-plateformes sont issus par des recherche des métadonnées des roms (fichiers gamelist.xml), chaque rom trouvé possède alors un script de lancement (sh) et ces métadonnées sont recopiées dans le gamelist de la plateforme collections
Un guide des 1er pas est fourni dans le Wiki !(https://github.com/nordicpower/gamelistpower/wiki)
Le dossier Outrun (Depuis la Recalbox 18.06.27)
Le dossier Street-Fighter (Recalbox 18.04.20)
- Ouvrir une session ssh
mount -o remount,rw /
cd /recalbox/share
wget https://github.com/nordicpower/gamelistpower/archive/master.tar.gz
tar xzvf master.tar.gz
cp -r /recalbox/share/gamelistpower-master /recalbox/scripts/gamelistpower
rm -r /recalbox/share/gamelistpower-master
cd /recalbox/scripts/gamelistpower
chmod 777 *.sh
./install.sh
- Une recherche sera lancée, la nouvelle plateforme sera prise en compte après un reboot de recalbox
Dans le fichier rules_gensh.xml (dans /recalbox/scripts/gamelistpower), le fichier contient des règles de recherche permettant d'alimenter la plateforme collections, un exemple :
<rule>
<name>mario</name>
<searchAttribute>name</searchAttribute>
<searchValue>mario</searchValue>
<destination>/recalbox/share/roms/collections/mario</destination>
<preserveFavorite>false</preserveFavorite>
</rule>
Cette règle permettra de rechercher tous les jeux dont le nom contient mario et de copier le résultat dans le dossier /recalbox/share/roms/collections/mario. L'attribut favori ne sera pas conservé.
La configuration par défaut permet de rechercher et de classer des roms sur les thématiques suivantes : Giana Sisters, Magic Drop, Mario, Metal Slug, Outrun, Pang, Pinball, Puyo Puto, Rick Dangerous, Street Fighter, Tetris. Les images des dossiers sont fournies à l'installation.
Il est possible d'exclure au sein d'une règle des roms ou des dossiers, il suffit d'indiquer le nom ou le chemin concerné
<exclusions>
<exclusion>Mario Lemieux Hockey.zip</exclusion>
<exclusion>/recalbox/share/roms/mario</exclusion>
</exclusions>
<options>
<titleformat>%%NAME%% (%%PLATEFORM%%)</titleformat>
<path>/recalbox/share/roms/collections</path>
</options>
La balise titleformat permet de personnaliser le titre de la rom dans la plateforme collection. La configuration par défaut utilise le nom de la rom et en parenthèse le nom de la plateforme source. Les variables disponibles sont %%NAME%% (la balise name), %%PLATEFORM%% (le nom de la plateforme) et %%REGION%% (la balise region). Il est possible d'avoir le résultat en majuscule ou minuscule par l'utilisation de la variable en majuscule ou minuscule (%%NAME ou %%name%%)
Voici un exemple d'un rom scrappé de la plateforme MAME:
<game>
<path>./outrun.zip</path>
<name>out run</name>
<releasedate>19860101T000000</releasedate>
<developer>SEGA</developer>
<publisher>SEGA</publisher>
<region>WORLD</region>
<genre>COURSE, CONDUITE</genre>
</game>
Les titres dans gamelist collections seront les suivants en fonction des formats:
%%NAME%% (%%PLATEFORM%%)=> OUT RUN (MAME)
%%mame%% [%%region%]
=> out run [REGION]
%%mame%% => out run
Les images de dossiers doivent être stockées dans le dossier /recalbox/share/roms/collections/images. Le script recherche une image du même nom que le dossier de destination de la règle (avec une extension png ou jpg) et créer l'entrée nécessaire.
Deux méthodes sont disponibles :
- Directement à travers emulationstation, une entrée "Z-Refresh" permet de lancer la mise à jour et de relancer Recalbox une fois terminée
- Via la commande SSH : cd /recalbox/share/scripts/gamelistpower python gamelistpower.py generate_sh info Il sera nécessaire de relancer RecalBox pour prendre en compte les nouvelles roms identifiées.
- gamelist_change_attr.py : permet de modifier automatiquement de valeurs d'attribut (extraire la region du nom du fichier)
- gamelist_check.py : permet de tester le chargement d'un fichier en python
- gamelist_diff.py : comparaison de deux fichiers xml afin d'identifier les jeux présents dans un fichier et pas un autre
- gamelist_favori.py: import/export multi-plateformes des favoris/hidden
- gamelist_merge.py : permet de fusionner deux fichiers XLM
- gamelist_sort.py : permet de trier les entrées XML selon un attribut
Mon éditeur MD en ligne : https://stackedit.io/app#