Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    [SCRIPT] Randomizer 2.0 Beta

    Community projects
    [script] randomizer 2.0 beta
    1
    1
    833
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • voljega
      voljega Banned last edited by voljega

      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 casse
      • genres: 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 espaces
      • gamestrings: 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
      1 Reply Last reply Reply Quote 2
      • First post
        Last post

      Want to support us ?

      61
      Online

      99.6k
      Users

      28.1k
      Topics

      187.1k
      Posts

      Copyright © 2021 recalbox.com