Mode demo automatique
-
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 partageJe 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/ -
@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 casIl 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. -
@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 commandesnes
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 : pa**e 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! -
This post is deleted!