Recalbox Forum

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

    Power Script PIN356ONOFFRESET avec switches SNES d'origine

    Recalbox Général
    pin356onoffrese on off button snes originale
    8
    80
    15014
    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.
    • supernature2k
      supernature2k @FF-Sounds last edited by

      @ff-sounds Pas bête cette idée de script, si tu y arrives fait une MR pour l'ajouter 🙂

      Pi powered NES | Gameboy HD | RecalStation | RecalDrive
      Upvote messages if it has been useful ;)

      FF-Sounds 1 Reply Last reply Reply Quote 0
      • FF-Sounds
        FF-Sounds @supernature2k last edited by FF-Sounds

        @supernature2k

        Est ce que tu pourrais me dire comment identifier si Retroarch est en cours d'execution ?
        Le reset court et long en jeu c'est facile (et ça marche !), mais pour poser les conditions pour ES il faut que je sache si on est en jeu ou pas...
        Je ne sais pas comment faire du coup.
        Ma pratique du code (même pas Python en plus) remonte à 2002.. lol !

        Please help 🙂

        supernature2k 1 Reply Last reply Reply Quote 0
        • supernature2k
          supernature2k @FF-Sounds last edited by

          @ff-sounds Pour retroarch tu peux chercher si le pid existe (comme je le fais pour ES pour le clean shutdown).
          Par contre il y a les autres emulateurs standalone, là ça se complique

          Pi powered NES | Gameboy HD | RecalStation | RecalDrive
          Upvote messages if it has been useful ;)

          FF-Sounds 1 Reply Last reply Reply Quote 0
          • FF-Sounds
            FF-Sounds @supernature2k last edited by

            @supernature2k

            Salut !

            Bon alors après plein d'essais, ça ne fonctionne pas, y'a un truc que je pige pas, tant pis, je vais laisser le reset court/long en jeu, ça me va bien comme ça 🙂

            Comme tu dis, ça se complique pour les autres emus standalone, je me demande si il n'y a pas un moyen de savoir qui à la main en affichage, ce serait vite réglé !
            si pas ES on est en jeu, simplement 🙂

            A réfléchir !

            Merci pour le coup de main !

            voljega 1 Reply Last reply Reply Quote 0
            • voljega
              voljega Banned @FF-Sounds last edited by

              @ff-sounds suffit de vérifier qu'il y a un processus avec 'emulatorlauncher.py' dans le titre de lancé par ps -ef | grep emulatorlauncher si oui tu es en cours d'exécution d'un emulateur, sinon dans ES

              FF-Sounds 1 Reply Last reply Reply Quote 0
              • FF-Sounds
                FF-Sounds @voljega last edited by

                @voljega

                Oui c'est pas bête, mais je suis loin d'assurer à max en code !
                J'ai la logique mais pas tous les "mots" pour mettre en oeuvre, alors c'est plutôt embêtant 🙂

                Mais je vais y regarder, ça m’intéresse, ça prendra le temps que ça prendra, je demanderai peut être un coup de main 😉

                Merci pour ton aide !

                1 Reply Last reply Reply Quote 0
                • FF-Sounds
                  FF-Sounds last edited by FF-Sounds

                  @voljega @supernature2k

                  Bonjour,

                  J'ai besoin de vos lumières, j'ai testé tout un tas de chose, il me manque juste un truc, je n'arrive pas un récupéré une variable (present) pour la tester...

                  Please help 🙂

                  		elif (timer >1):
                  			search_launcher(channel)
                  				if present == True:
                  					nwcommand="RESET"
                  					retroarch(nwcommand)
                  					print "retroarch"
                  					killthats**t(channel)
                  				else:	
                  					speed=0.05
                  					shutdownstring="shutdown -r now"
                  					offreset(speed, shutdownstring)
                  					print "reboot"
                  		timer = 0
                  		flag = False
                  	time.sleep(0.1)
                  	
                  def search_launcher(channel):
                  	if channel == RESETPLUS:
                  		pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
                  		for pid in pids:
                  			try:
                  				print pid
                  				commandpath = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read()
                  				if "emulatorlauncher" in commandpath:
                  					present = True
                  			except IOError:
                  				continue
                  
                  1 Reply Last reply Reply Quote 0
                  • NeeeeB
                    NeeeeB last edited by NeeeeB

                    def search_launcher(channel):
                         if channel == RESETPLUS:
                             proc = subprocess.Popen('ps -ef | grep emulatorlauncher', stdout=subprocess.PIPE)
                             tmp = proc.stdout.read()
                             if tmp:
                                 present = true
                             else:
                                 present = false
                    

                    Pas sur du tout de mon coup, le python n'est pas un langage que je maitrise ^^
                    Y'a même moyen de se passer de ta variable present et de tester le result renvoyé par search_launcher (à la place de present = true tu mets result = true, pareil pour false, et dans la première partie de ton code tu fais if search_launcher(channel) == true : etc...

                    Vieux geek ^^
                    GameList Editor : https://github.com/NeeeeB/GameList_Editor

                    1 Reply Last reply Reply Quote 0
                    • NeeeeB
                      NeeeeB last edited by NeeeeB

                      	elif (timer >1):
                      			if search_launcher(channel) == True:
                      				nwcommand="RESET"
                      				retroarch(nwcommand)
                      				print "retroarch"
                      				killthats**t(channel)
                      			else:	
                      				speed=0.05
                      				shutdownstring="shutdown -r now"
                      				offreset(speed, shutdownstring)
                      				print "reboot"
                      	timer = 0
                      	flag = False
                      time.sleep(0.1)
                      
                      def search_launcher(channel):
                          if channel == RESETPLUS:
                      	proc=subprocess.Popen('ps -ef | grep emulatorlauncher', stdout=subprocess.PIPE)
                              tmp=proc.stdout.read()
                              if tmp:
                                  return True
                              else:
                                  return False
                      

                      Un truc dans le genre, les cadors du .py seront plus à même de valider ma grouille ^^

                      Vieux geek ^^
                      GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                        @neeeeb @FF-Sounds ouip ce que t'as dit neeeeb est plus simple et moins source d'erreur, je ne me souviens plus de la portée exacte des variables en python.

                        autre possiblité, déclare juste ta varaible en haut de ton code en dehors de toute fonction, juste par present = False (après les imports tout de même)

                        1 Reply Last reply Reply Quote 0
                        • NeeeeB
                          NeeeeB last edited by

                          Les variables globales c'est le mal ^^ j'essaye toujours de les éviter au maximum.

                          Vieux geek ^^
                          GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                            @NeeeeB mouais c'est un peu idéologique en python (si tu fais pas de l'objet) ça me semble pas très dommageable perso, je le ferai pas en javascript ou en C++ ça c'est sûr 😛

                            NeeeeB 1 Reply Last reply Reply Quote 1
                            • NeeeeB
                              NeeeeB @voljega last edited by

                              @voljega disons que quand t'as une unité de 6000 lignes t'as du mal à t'y retrouver après...mais sinon oui c'est pas spécialement dommageable, ça rend juste les choses moins lisibles selon moi.

                              Vieux geek ^^
                              GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                                @neeeeb le problème dans ce cas c'est plutôt d'avoir une unité de 6000 lignes 😉

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

                                  @voljega ça dépend du soft que tu développes tu sais...dans mon taf c'est pas rare, genre l'algo de prescription de médicaments y'a tellement de cas à gérer que rien qu'à lui tout seul il pèse pas loin des 4000 lignes, sur une fonction avec une dizaine d'inner procedures.

                                  Vieux geek ^^
                                  GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                                    @neeeeb dans ce cas il devrait être découpé en plusieurs sous fonctions 🙂

                                    NeeeeB 1 Reply Last reply Reply Quote 0
                                    • FF-Sounds
                                      FF-Sounds last edited by

                                      @NeeeeB @voljega

                                      Salut !
                                      Je vois que ma demande a suscité des réponses , ça fait plaisir 🙂 merci !
                                      Je ne vais pas rentrer dans votre "bataille" idéologique ^^ je ne suis pas assez calé pour en discuter 😛

                                      Je teste le code ce soir et vous tiens au courant, j'ai hâte 😉

                                      Encore merci !

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

                                        @FF-Sounds de rien 😉

                                        @voljega c'est déjà le cas, relis ce que j'ai écrit ^^ et au final ça ne change rien, les sous fonctions (inner procedures dans mon langage) sont dans la même unité, donc le nombre de ligne de l'unité sera toujours le même...enfin bref ^^

                                        Vieux geek ^^
                                        GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                                          @neeeeb qu'est ce que t'appelle une unité ? Un package / fichier ?

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

                                            @voljega un fichier, qui peut contenir 1 à xxxx fonctions, comme un package en java, ou un fichier .c en C++

                                            Vieux geek ^^
                                            GameList Editor : https://github.com/NeeeeB/GameList_Editor

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

                                            Want to support us ?

                                            97
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com