Recalbox Forum

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

    [SCRIPT] Randomizer

    Community projects
    [script] randomizer
    13
    125
    30986
    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 any system or from a given system.
      It be found there : https://github.com/Voljega/scripts4recalbox

      How it works

      When choosing the 'all' options in the random system, the scripts uses the /recalbox/share_init/system/.emulationstation/es_systems.cfg to get the list of systems and their command line.
      It then selects one of the non-excluded system on random.
      After that it selects one non-hidden game from the system's gamelist.xml, verify the file exists and launch it.

      Yes this means that only scrapped games and systems will be used

      Alternatively you can select one option like snes from the random system and only games from that system will be selected.

      If some game didn't launch you can look at the log /recalbox/share/randomlog.csv to see what happened

      Installation

      See the whole procedure on https://github.com/Voljega/scripts4recalbox/tree/master/Randomizer

      Please contact me if you encounters any bug or have any suggestion

      French version :

      Ce script permet de lancer un jeu au hasard parmi tous les systèmes de recalbox ou d'un système donné
      Il est disponible ici : https://github.com/Voljega/scripts4recalbox

      Comment ça marche

      En choisissant l'entrée all dans le système random, le script va chercher la liste des systèmes et leur commande d'exécution dans /recalbox/share_init/system/.emulationstation/es_systems.cfg.
      Il en choisit un au hasard parmi les non-exclus.
      Après cela il choisit un jeu non caché (hidden) parmi les jeux du système disponibles dans son gamelist.xml, vérifie que le fichier du jeu existe et le lance

      Oui cela signifie bien que seuls les systèmes et jeux scrappés seront utilisés par le script

      Vous pouvez aussi choisir une option dans la liste du système random comme snes et la sélection aléatoire sera restreinte à des jeux de ce système.

      Si un jeu ne se lance pas vous pouvez regarder le dans /recalbox/share/randomlog.csv pour voir ce qu'il s'est passé.

      Installation

      Voire toute la procédure d'installation sur https://github.com/Voljega/scripts4recalbox/tree/master/Randomizer
      (En anglais uniquement mais si quelqu'un n'y arrive pas je pourrais la traduire ici)

      Merci de me contacter en cas de bug our pour toute suggestion

      1 Reply Last reply Reply Quote 1
      • poumtaq
        poumtaq last edited by poumtaq

        salut @voljega ,
        merci alleluia merci !
        Ce n'est pas faute de consulter les nouveaux posts quasiment chaque jour, et pourtant j'ai loupé le tien alors que c'est ce que je cherchais depuis longtemps, bravo pour l'avoir fait !
        🙂
        j'ai d'abord fait de mauvaises manips en récupérant tes fichiers sur git mais maintenant ça marche et c'est bien cool !

        • bonus : il n'y a pas d'info dans ton tuto sur comment intégrer avec le thème ... je n'arrive pas à faire apparaître ton fichier .png dans ES, je veux bien le .svg au passage.

        je me permets d'interpeller @rockaddicted où tout autre dev pour suggérer l'intégration de cette option que je trouve bien fun pour ma part et qui j'en suis sûr pourrait en intéresser d'autres (bon après je me doute bien que c'est pas prioritaire...)

        merci encore !

        Bartop
        -RPI3
        -RB stable sur SD SanDisk MicroSDHC32 Go
        -Dual-Controller Xin-Mo
        -Stockage externe Clé USB 3.0 Sandisk Ultra Fit 128 Go
        -écran VGA + adaptateur HDMI
        -OS pc : LinuxMint 17

        voljega poumtaq 2 Replies Last reply Reply Quote 0
        • voljega
          voljega Banned @poumtaq last edited by

          @poumtaq je n'ai pas le svg mais il suffit de remplacer le lien du svp par le png et ça marche normalement en tout cas ça marchait de mon côté

          je voulais améliorer ce script d'ailleurs en intégrant tous les systèmes et aussi en permettant de lancer par exemple au hasard un jeu de vsfighting sur tous les systèmes ou sur un système donné mais j'ai pas eu le temps de m'y remettre

          1 Reply Last reply Reply Quote 0
          • poumtaq
            poumtaq @poumtaq last edited by poumtaq

            Ha si en plus on pouvait effectivement sélectionner par genre ça serait le pied total !

            Aperçu avec l'intégration des logos consoles sur le thème "recalbox-multi"
            🙂

            0_1516551503135_screenshot-2018-01-21T16-13-07-367Z.png

            Bartop
            -RPI3
            -RB stable sur SD SanDisk MicroSDHC32 Go
            -Dual-Controller Xin-Mo
            -Stockage externe Clé USB 3.0 Sandisk Ultra Fit 128 Go
            -écran VGA + adaptateur HDMI
            -OS pc : LinuxMint 17

            voljega 1 Reply Last reply Reply Quote 1
            • rockaddicted
              rockaddicted last edited by

              humm ou alors gérer ça directement dans ES et ajouter un entrée random en début de la liste de jeux de chaque système, si option activée dans ES.
              à voir...

              Recalbox V4.1.0 - RPI3 OC - Xbox360 wireless
              Wiki ENG : https://github.com/recalbox/recalbox-os/wiki/Mini-How-To-(EN)
              Wiki FR : https://github.com/recalbox/recalbox-os/wiki/Mini-How-To-(FR)

              Don't forget to upvote messages if it has been useful ;)

              voljega 1 Reply Last reply Reply Quote 0
              • voljega
                voljega Banned @rockaddicted last edited by

                @rockaddicted c'est plus compliqué je pense qu'une entrée spéciale dans le menu (qui permet de gérer le random multi systems en plus) comme ke fait mon script

                1 Reply Last reply Reply Quote 0
                • voljega
                  voljega Banned @poumtaq last edited by voljega

                  @poumtaq said in [SCRIPT] Randomizer:

                  Ha si en plus on pouvait effectivement sélectionner par genre ça serait le pied total !

                  En fait j'ai pas encore progressé dans cette voie car il n'y a pas de manière officielle de gérer les genres dans Recalbox, personnellement j'utilise des sous-répertoires dans chaque répertoire de rom pour ça mais il serait mieux d'utiliser une balise <genre> dans les gamelist.xml

                  Après je crois que screenscraper le fait du coup, mais je trouve leur liste de genre vraiment trop longue et bordélique

                  Bref je me suis pas penché dessus

                  Gaetan 1 Reply Last reply Reply Quote 0
                  • Gaetan
                    Gaetan Theme moderator @voljega last edited by

                    @voljega J'espère que le sujet n'est pas trop ancien pour être ré-ouvert 🙂
                    Est-ce que tu saurais comment faire fonctionner ton script quand il y a un système "custom" ?
                    Par exemple j'utilise un dossier "arcade" dans les dossier "roms" avec mes roms fba et mame regroupées et je voudrais pouvoir faire un random dans ce dossier.
                    J'ai créé un fichier arcade.rdm, et ajouté ces lignes dans la gamelist du dossier "random" :

                    <game>
                    	<path>./arcade.rdm</path>
                    	<name>arcade</name>
                    	<playcount>15</playcount>
                    	<lastplayed>20170724T113407</lastplayed>
                    </game>
                    

                    Mais quand je choisi de faire un random avec, il me choisi des jeux des autres systèmes déjà présent.

                    Une idée ? En tous cas, c'est vraiment une TRES bonne idée d'avoir fais ça ! 🙂

                    Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                    Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                    voljega 1 Reply Last reply Reply Quote 0
                    • voljega
                      voljega Banned @Gaetan last edited by

                      @gaetan normalement ça devrait marcher tel que tu l'as fait.

                      Le truc possible c'est que tu ai rajouté ton système arcade dans un es_systems.cfg du répertoire share mais pas dans le share_init ?

                      Parce que le script se sert de celui du share_init pour la liste des systèmes

                      Gaetan 1 Reply Last reply Reply Quote 0
                      • Gaetan
                        Gaetan Theme moderator @voljega last edited by Gaetan

                        @voljega le fichier es_system modifié est bien celui du share_init, c'est d'ailleurs son seul emplacement.

                        Voilà les lignes du dossier arcade si ça peu aider :

                        <system>
                        <fullname>ARCADE</fullname>
                        <name>fba_libretro</name>
                        <path>/recalbox/share/roms/arcade</path>
                        <extension>.zip .ZIP .fba .FBA .7z .7Z</extension>
                        <command>python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%</command>
                        <platform>arcade</platform>
                        <theme>arcade</theme>
                        <emulators>
                        <emulator name="libretro">
                        <cores>
                        <core>fba</core>
                        <core>mame2010</core>
                        <core>mame078</core>
                        <core>imame4all</core>
                        </cores>
                        </emulator>
                        <emulator name="advancemame">
                        <cores>
                        <core>advancemame</core>
                        </cores>
                        </emulator>
                        </emulators>
                        </system>

                        Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                        Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                        voljega 1 Reply Last reply Reply Quote 0
                        • voljega
                          voljega Banned @Gaetan last edited by

                          @gaetan said in [SCRIPT] Randomizer:

                          <name>fba_libretro</name>

                          ça doit être arcade le name

                          Gaetan 1 Reply Last reply Reply Quote 0
                          • Gaetan
                            Gaetan Theme moderator @voljega last edited by Gaetan

                            @voljega le soucis est que si je change le name par arcade, plus aucun jeu de répertoire arcade ne ce lancent et donc avec le randon non plus.
                            C'est retour à la gamelist.

                            Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                            Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                            voljega 1 Reply Last reply Reply Quote 0
                            • voljega
                              voljega Banned @Gaetan last edited by voljega

                              @gaetan bah du coup j'y peux rien si la solution arcade est casse gueule et pas très propre, y'a même pas fba_libretro dans les cores ...

                              Gaetan 2 Replies Last reply Reply Quote 0
                              • Gaetan
                                Gaetan Theme moderator @voljega last edited by

                                @voljega ok, tant pis, c'est déjà très bien comme ça 🙂
                                Pour fba_libretro c'est l'emulateur libretro et le core fba

                                  <emulator name="libretro">
                                    <cores>
                                      <core>fba</core>
                                

                                Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                                Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                                1 Reply Last reply Reply Quote 0
                                • Gaetan
                                  Gaetan Theme moderator @voljega last edited by

                                  @voljega ça pourrait être une bonne idée d’intégrer ton script à Recalbox.

                                  J'ai modifié le dossier "random" en y incluant les fichiers .rdm de tous les systèmes que Recalbox utilise et aussi des systèmes à venir, même chose pour la gamelist que j'ai complété.

                                  Une idée serait de faire que ton script n'affiche que les systèmes ou il y a des roms dedans, comme ça il ne chercherait pas dans les dossiers vide, soit des consoles non compatibles, par exemple la wii avec un Pi.

                                  A noter aussi, qu' avec la manière donc tu l'as fais, il est très facilement intégrable dans n'importe quel thème.

                                  Ce serait vraiment sympa que ça y soit intégré !

                                  Liens du dossier "random" complété : https://mega.nz/#F!WUMixIyS!9Wy6T3mjBilMaArZIbpdPA

                                  Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                                  Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                                  voljega 1 Reply Last reply Reply Quote 0
                                  • voljega
                                    voljega Banned @Gaetan last edited by

                                    @gaetan said in [SCRIPT] Randomizer:

                                    Une idée serait de faire que ton script n'affiche que les systèmes ou il y a des roms dedans, comme ça il ne chercherait pas dans les dossiers vide, soit des consoles non compatibles, par exemple la wii avec un Pi.

                                    Ce n'est pas le script qui affiche les systèmes mais Recalbox lui même comme des roms de n'importe quel système donc c'est pas trop possible...

                                    Après c'est très facile de faire un script qui génère tout ça en fonction de ton répertoire roms et de ce qu'il y a dedans

                                    Gaetan 2 Replies Last reply Reply Quote 0
                                    • Gaetan
                                      Gaetan Theme moderator @voljega last edited by

                                      @voljega ok, donc ce sera faisable ?
                                      Quand tu dis que ce serait très facile, je pense pour toi, de mon coté, je ne m'y connais pas du tout en script, ce n'est pas mon domaine 🙂
                                      Est-ce que tu pourrais l'écrire ? Je pourrais le tester si tu veux.

                                      Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                                      Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                                      1 Reply Last reply Reply Quote 0
                                      • Gaetan
                                        Gaetan Theme moderator @voljega last edited by

                                        @voljega et si le script va chercher dans le dossier roms les dossiers contenant des roms, il est peut-être possible dans ce cas là qu'il trouve le dossier arcade ?

                                        Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                                        Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                                        voljega 1 Reply Last reply Reply Quote 0
                                        • voljega
                                          voljega Banned @Gaetan last edited by

                                          @gaetan et comment il va les lancer ? 🙂

                                          Gaetan 1 Reply Last reply Reply Quote 0
                                          • Gaetan
                                            Gaetan Theme moderator @voljega last edited by

                                            @voljega Arf, je ne sais pas 😄
                                            Du coup, le script simple dont tu parles, il pourrait faire quoi exactement ?

                                            Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
                                            Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

                                            voljega 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            92
                                            Online

                                            98.7k
                                            Users

                                            28.1k
                                            Topics

                                            187.0k
                                            Posts

                                            Copyright © 2021 recalbox.com