[SCRIPT] Randomizer 2.0 Beta
-
This script allow you to launch randomly a game :
- from a specific system, a set of systems or from all systems
- from a specific genre, a set of genres or all genres (using the <genre> tag in your gamelist.xml
- with name containing one string or one of several strings
- from a combination of these three criterias
It can be found here, with the README : https://github.com/Voljega/scripts4recalbox/tree/master/Randomizer
Keep in mind this is a beta version, there are still some bugs, although 99% of functionalities seems to work fine.
If you find a bug, speak to me about it either here (prefered way) or on the github issues
Please try to include :/recalbox/share/randomlog.txt
/recalbox/share/system/logs/es_launch_stderr.log
if not empty
Look at this files just after finding a bug and returning to EmulationStation
Also don't hesitate to comment on the README if it s wrng or not clear, i rewrote it really quickly
French translation by DeepL :
Ce script vous permet de lancer un jeu au hasard.
- à partir d'un système spécifique, d'un ensemble de systèmes ou de tous les systèmes
- à partir d'un genre spécifique, d'un ensemble de genres ou de tous les genres (en utilisant la balise
<genre>' de votre fichier
gamelist.xml`. - avec un nom contenant une chaîne de caractères ou une parmi plusieurs chaînes de caractères
- à partir d'une combinaison de ces trois critères
Comment ça marche
Les scripts utilisent le fichier /recalbox/share_init/system/.emulationtation/es_systems.cfg pour obtenir la liste des systèmes et leur ligne de commande.
Il sélectionne ensuite au hasard l'un des systèmes non exclus.
Ensuite, il sélectionne un jeu non caché dans le fichier gamelist.xml du système en fonction du genre et du nom, vérifie que le fichier existe et le lance.Oui, cela signifie que seuls les jeux et systèmes scrappés seront utilisés, les balises <genre> doivent également être présentes.
La sélection se fait à partir du contenu des fichiers rdm, en fonction de trois critères : systems,genres,gamestrings.
Ceci est personnalisable, voir ci-dessous.Si un jeu n'a pas été lancé, vous pouvez consulter le log /recalbox/share/randomlog.csv pour voir ce qui s'est passé.
Installation
- Copiez d'abord le script dans le dossier /recalbox/share.
- Editez le fichier /recalbox/share_init/system/.emulationstation/es_systems.cfg pour ajouter le nouveau système aléatoire (n'oubliez pas de remonter avec
mount -o remount,rw /
)
<system> <fullname>Random</fullname> <name>random</name> <path>/recalbox/share/roms/random</path> <extension>.rdm</extension> <command>python /recalbox/share/randomizer.py %CONTROLLERSCONFIG% -rom %ROM% -ratio %RATIO%</command> <theme>random</theme> <platform>random</platform> <emulators/> </system>
- Si vous avez utilisé mon script SystemSorter ou dupliqué votre fichier es_systems, vous devez également modifier /recalbox/share/system/.emulationstation/es_systems.cfg.
- Kill EmulationStation avec
/etc/init.d/S31emulationstation stop
(attendre qu'il meure) - Copiez le dossier random dans le répertoire /recalbox/share/roms.
- Copier le répertoire theme/random dans /recalbox/share_init/system/.emulationtation/themes/recalbox-next
Initialisation
- Avant d'utiliser le script, vous devez initialiser le système en utilisant la commande
python randomizer.py' ou
python randomizer.py init`. - Le script analysera tous vos systèmes ayant une gamelist valide et construira tous les fichiers rdm nécessaires dans le système `random' et les scrapera.
- Rebooter et ça devrait marcher
- Vous pouvez réinitialiser le script aléatoire à tout moment dans le futur, vous devez tuer emulationstation avant et redémarrer après.
Format Rdm et personnalisation
Les fichiers Rdm contiennent maintenant trois balises pour permettre la randomisation des jeux sur la base de trois critères, les valeurs sont séparées par ';' :
systems:
liste des systèmes (nom court) qui peuvent être sélectionnés aléatoirement. tous les systèmes si cette balise n'est pas présente. insensible à la cassegenres:
liste des genres qui peuvent être sélectionnés aléatoirement. tous les genres si le tag n'est pas présent. insensible à la casse , peut contenir des espacesgamestrings:
chaînes de caractères contenues dans le nom des jeux sélectionnables. insensible à la casse
En voici quelques exemples :
- Jeux de genre Platform sur tous les systèmes
genres:platform
- Jeux de genre Puzzle sur tous les systèmes d'arcade
systems:mame;daphne;fba;fba_libretro;neogeo genres:puzzle
- Tous les jeux de gameboy
systems:gb
- Tous les jeux avec mario ou zelda dans leur nom complet sur les consoles Nintendo.
systems:gb;nes;nes;snes;n64;virtualboy;gbc;gba;gw gamestrings:mario;zelda
Méfiez-vous néanmoins de la balise " gamestrings " car elle peut entraîner des recherches longues sur un jeu à lancer, mieux vaut limiter la recherche en la combinant avec " systems " ou " genres ".
Traduit avec www.DeepL.com/Translator
Attention, ceci est une version beta, il y a encore des bugs, même si 99% des fonctionalités semblent fonctionner correctement
Si vous trouvze un bug, parlez moi en ici (de préférence) our sur les issues github du projet.
Essayez d'inclure :/recalbox/share/randomlog.txt
/recalbox/share/system/logs/es_launch_stderr.log
s'il n'est pas vide