Mode demo automatique



  • Mode DEMO avec lancement automatique des jeux



  • Bonjour ,
    Si vous êtes intéressés par le déclenchement d'un mode démonstration avec lancement automatique des jeux . Je vous propose ce script custom.sh à positionner dans le partage \recalbox\share\system
    custom.sh

    #!/bin/sh
    #  Ce script verifie qu'aucun jeu n'est lancé puis lance un jeu parmis une liste
    # au bout de 90 sec , il stoppe le jeu lancé et en demarre un autre, sauf si celui-ci à été stoppé par un retour au menu ES (Hotkey...)
    # Le retour au menu ES attend 90 sec pour permettre de choisir un jeu.
    cp -f /usr/bin/python /recalbox/share/python2
    while true
    do
     
    [ ! "$TOT" == "90" ] && sleep 90
    ENCOURS=`ps aux |grep -e "python /usr/lib/python2.7"|grep -v grep `
    if [ "$ENCOURS" == "" ]; 
    then
    #  Etablissement de la liste des jeux disponibles sur certains emulateurs
    #  Lancement d'un jeu parmis la liste
    ls /recalbox/share/roms/mame/*.zip | awk '{print "mame:"$0;}'>/recalbox/share/liste.txt
    ls /recalbox/share/roms/snes/*.smc | awk '{print "snes:"$0;}'>>/recalbox/share/liste.txt
    ls /recalbox/share/roms/fba_libretro/*.zip | awk '{print "fba_libretro:"$0;}'>>/recalbox/share/liste.txt
    ls /recalbox/share/roms/psx/*.cue |awk '{print "psx:"$0;}' >>/recalbox/share/liste.txt
    ls /recalbox/share/roms/neogeo/*.zip |awk '{print "neogeo:"$0;}' >>/recalbox/share/liste.txt
    N=`wc -l /recalbox/share/liste.txt|cut -d' ' -f1`
    aan=$RANDOM
    NUM=$((RANDOM%$N+1))
    LIGF=$(head -$NUM /recalbox/share/liste.txt|tail -1)
    ROM=$(echo $LIGF|cut -d: -f2)
    SYSTEME=$(echo $LIGF|cut -d: -f1)
    echo $N $NUM $ROM $SYSTEME
    /recalbox/share/python2 /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc -p1index 0 -p1guid 03000000790000000600000010010000 -p1name "Microntek              USB Joystick          " -p1nbaxes 4 -p2index 1 -p2guid 03000000790000000600000010010000 -p2name "Microntek              USB Joystick          " -p2nbaxes 4  -system "$SYSTEME" -rom "$ROM" -emulator default -core default -ratio auto  2> /recalbox/share/system/logs/es_launch_stderr.log | head -300 > /recalbox/share/system/logs/es_launch_stdout.log &
    A=$!
    TOT=0
    while [ ! "`pidof python2`" == "" ]   
    do
    sleep 1
    TOT=`expr $TOT \+ 1`
    echo $TOT
    [ "$TOT" == "90" ] && break
    done
    echo arret
    killall python2
    killall retroarch 
    /etc/init.d/S31emulationstation restart
    else
    echo jeu en cours...
    fi
    done
    


  • @lolodebordo , salut je serait intéressé a tester ton script, c'est un des projet de long date de RecalBox :) , mais pas encore vraiment mis en place.

    Mais c'est une bonne idée, et pas mal de gens aimerais bien avoir ça



  • Le système recalbox permet d’inserer Un script avec le nom custom.sh dans le répertoire partagé //recalbox/share/system.
    Ce script est lancé automatiquement au démarrage de la recalbox.
    N’hesites pas à le tester ,
    Dans sa version actuelle , il lance les jeux Psx,mame,neogeo mais il est facilement modifiable.



  • @lolodebordo , merci je vais tester ça sous peu (en fait des que j'ai un moment)



  • miam miam sympa ca



  • Super ça, merci



  • Salut
    J'ai testé aussitot ton fichier mais ca ne fonctionne pas !?

    Quand tu dis : "à positionner dans le partage \recalbox\share\system"
    c'est dans ce dossier system ou c'est l'un dossier situé dedans, vu que tu precises dans le partage

    Je pense ne pas avoir compris quelquechose....
    Merci à toi



  • @gdehon tu dois copier ce script dans le partage réseau \\recabox\share\system sous le nom custom.sh
    Tu accèdes bien à ta recalbox via un partage réseau comme pour ajouter des roms dans \\recalbox\share\roms?
    Sinon en te connectant en ssh à ta recalbox avec le compte root, tu peux positionner le script dans /recalbox/share/system/


  • Themer

    @lolodebordo il faut aussi surement donner les droits d'exécution avec chmod 777 custom.sh



  • @voljega oui mais je crois qu'en copiant le script par le partage réseau, il est de fait exécutable.



  • J'ai placé custom.sh comme ceci
    \recabox\share\system\custom.sh
    via winscp
    Peut être que c'est cela qui ne fonctionne pas !?
    J'ai essayé en exécutant "mount-o remount, rw /boot dans la console de winscp, dans résultat...

    Comment se connecte en ssh à la recalbox avec le compte root ?

    Comment donner les droits d'exécution avec chmod 777 ?
    Je connais pas ça...

    Edit : besoin de redémarrer recalbox ou pas ?



  • @GDEHON ssh : compte root et mot de passe recalboxroot

    Il faudra aussi redémarrer la recalbox

    Autrement tu copie simplement le script dans \\recalbox\share\system et tu redémarres la recalbox

    Il suffira d’attendre 90 sec et la démo démarre



  • ssh c'est via putty ?

    Ok pour le redémarrage de recalbox

    En copiant simplement le script dans \recalbox\share\system et redémarrant la recalbox
    via winscp, ça ne marche pas chez moi...

    Je retenterais demain à tête reposée
    Merci en tout cas

    Il suffira d’attendre 90 sec et la démo démarre



  • Hello

    J'aime bcp l'idée.

    J'ai testé le script. Il se passe bien qqchose toutes les 90s.
    Ma recalbox lance qqchose passe par 2 écrans de chargement puis revient au menu sans apparemment lancer de jeu.

    Si j'essaie d'éteindre ou de redémarrer recalbox via son interface. Je me retrouve dans le jeu qui a été lancé en fond vraissemblablement.

    @lolodebordo tu vois ce que je veux dire ?

    Truc qui me préoccupe également c'est les "Microntek USB Joystick" dans ton script. Ça peut pas poser problème ça ?



  • @nayok effectivement, je vais retravailler le parametrage ce soir et vérifier le script.
    Des infos propres à ma config sont dans le script et ne fonctionnent pas avec dautres recalbox.


  • Themer

    @lolodebordo said in Mode demo automatique:

    @nayok effectivement, je vais retravailler le parametrage ce soir et vérifier le script.
    Des infos propres à ma config sont dans le script et ne fonctionnent pas avec dautres recalbox.

    Hmmm pas pour être rabas joie mais tu ne pourras surement récupérer certaines infos que par un lancement de ton script depuis EmulationStation, genre la string complète de configuration d'un contrôleur.



  • @lolodebordo Alors là j'applaudis, super audacieux ta façon de procéder ! Ce qui me fait sortir un peu de mon hibernation parce que tu mérites un vrai coup de main.

    Alors, plein de petites remarques, mais une seule sera vraiment importante : je ne sais pas si tu as déjà fait joujou avec le web manager de recalbox, mais il est capable de lancer des roms. Pourquoi ? Parce que @sevenX et moi avions implanté un mini serveur web dans ES qui permet de lancer des roms justement !

    Si tu as un linux sous la main, essaie echo -n "START|nes|BladeBuster (High Level Challenge).nes" | netcat -u recalbox.local 1337. Je détaille :

    • START c'est la commande attendue, et la seule implantée actuellement
    • | est le séparateur de commandes
    • nes est le système tel que défini dans le répertoire des roms
    • et enfin, le nom de la rom telle que visible depuis l'OS (ca prend en charge les chemins)

    Comme c'est ES qui lance, ca résout 90% de tes problèmes dont celui expliqué par @voljega mais ca en introduit un autre : ca lance le python de base, pas ta copie. Donc il te faudra gérer la présence de emulatorlauncher un peu différemment, rien d'insurmontable.

    Maintenant plein de petites remarques si tu me le permets :

    • liste des roms : parse le es_systems.cfg pour obtenir les extensions supportées pour chaque système
    • pas netcat/nc sur Recalbox, donc tu devras t'en remettre à python pour ca (tu peux le faire inline en une seule ligne)
    • utilise recallog pour envoyer tes infos dans la log de recalbox, c'est plus sympa qu'un echo
    • custom.sh est traité comme un script d'init, donc il reçoit le paramètre start ou stop à minima, ca serait bien de le gérer
    • feature pour ta v2 : laisse tourner la démo genre 2 minutes, tu quittes l'émulateur (il y a déjà un peu de python capable de çà qui traine dans recalbox, avec les scripts de gestion des boutons GPIO genre https://gitlab.com/recalbox/recalbox/blob/master/board/recalbox/fsoverlay/recalbox/scripts/rpi-pin356-power.py#L124), et hop, on relance un nouvelle rom

    Bon courage !



  • @Substring @voljega
    Depuis que j’ai rebooté manuellement,(en coupant l’alimentation) ma recalbox ne lance plus aucun rom.
    Quand je démarre : l’interface apparaît et tout mais les jeux ne se lancent plus.
    Aussi, si j’essaie d’eteindre via l’interface recalbox, je reste bloqué sur l’ecran noir avec logo en bas et date à gauche.
    J’ai cassé un truc ?
    Merci pour votre aide



  • This post is deleted!

Log in to reply
 

Want to support us ?

Join us on :

217
Online

40372
Users

16928
Topics

127459
Posts

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