Skip to content

Recalbox - Scripts Python pour gérer les fichiers de EmulationStation

License

Notifications You must be signed in to change notification settings

nordicpower/gamelistpower

Repository files navigation

EMULATIONSTATION GAMELISTPOWER

Readme / lisez-moi

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)

Copies d'écran du résultat

Le dossier Outrun (Depuis la Recalbox 18.06.27) Alt text Alt text

Le dossier Street-Fighter (Recalbox 18.04.20) Alt text Alt text

Comment installer ?

  1. 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
  2. Une recherche sera lancée, la nouvelle plateforme sera prise en compte après un reboot de recalbox

Comment configurer ?

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

Configuration par défaut

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.

Configuration avancée

Exclusion de dossiers ou de roms

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>

Modifier le titre des roms

<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

Image des dossiers

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.

Comment rafraîchir la plateforme ?

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.

Scripts complémentaires python (appel via SSH uniquement)

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

About

Recalbox - Scripts Python pour gérer les fichiers de EmulationStation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published