[SCRIPT] Randomizer


  • Themer

    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



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


  • Themer

    @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



  • 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


  • Moderator
    Team

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


  • Themer

    @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


  • Themer

    @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



  • @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 ! :)


  • Themer

    @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



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


  • Themer

    @gaetan said in [SCRIPT] Randomizer:

    <name>fba_libretro</name>

    ça doit être arcade le name



  • @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.


  • Themer

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



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


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


  • Themer

    @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



  • @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.



  • @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 ?


  • Themer

    @gaetan et comment il va les lancer ? :)



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


Log in to reply
 

Want to support us ?

Join us on :

173
Online

28869
Users

14654
Topics

110762
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.