• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

{SOLVED} How to make a momentary push button that exit games and take me back to game menu ?

Scheduled Pinned Locked Moved Help and Support
push buttonretropiepsxscriptnewbie
56 Posts 3 Posters 6.9k Views
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.
  • O
    O.M.A.A
    last edited by 11 Apr 2019, 13:48

    @mitu
    is it possible to just send me a file were it is already mapped and rdy to exit game on gpio 7, so I just need to drop it ?

    M 1 Reply Last reply 11 Apr 2019, 16:12 Reply Quote 0
    • M
      mitu Global Moderator @O.M.A.A
      last edited by mitu 4 Nov 2019, 17:13 11 Apr 2019, 16:12

      @O-M-A-A You'll need to add another test for GPIO7 in the while loop, check if GPIO7 is pressed and then call the multi_switch.sh script to reset the current emulator. You'll need to copy the script to /home/pi/scripts first.

      #!/usr/bin/python
      import RPi.GPIO as GPIO
      import time
      import subprocess
      
      GPIO.setmode(GPIO.BOARD)
      
      # we will use the pin numbering to match the pins on the Pi, instead of the
      # GPIO pin outs (makes it easier to keep track of things)
      # use the same pin that is used for the reset button (one button to rule them all!)
      GPIO.setup(5, GPIO.IN)
      GPIO.setup(7, GPIO.IN)
      
      oldButtonState1 = True
      oldButtonState2 = True
      
      while True:
          #grab the current button state
          buttonState1 = GPIO.input(5)
          buttonState2 = GPIO.input(7)
      
          # check to see if button has been pushed
          if buttonState1 != oldButtonState1 and buttonState1 == False:
              # shutdown
              subprocess.call("shutdown -h now", shell=True,
                stdout=subprocess.PIPE, stderr=subprocess.PIPE)
              oldButtonState1 = buttonState1
          
          if buttonState2 != oldButtonState2 and buttonState2 == False:
              # Reset emulator
              subprocess.call("/home/pi/scripts/multi_switch.sh --es-closeemu", shell=True,
                stdout=subprocess.PIPE, stderr=subprocess.PIPE)
              oldButtonState2 = buttonState2
        
          time.sleep(.5)
      
      C 1 Reply Last reply 11 Apr 2019, 16:32 Reply Quote 2
      • C
        cyperghost @mitu
        last edited by cyperghost 4 Nov 2019, 17:33 11 Apr 2019, 16:32

        @mitu Yes that's right ... but you can further utilize the script. If you use the parameters --es-pid and --rc-pid you can determine in which state the Raspberry currently is. So is ES ready booted? Is there an emulator currently running.... and then set actions for each state.

        @O-M-A-A
        You should get in touch with some coding

        O 1 Reply Last reply 11 Apr 2019, 17:26 Reply Quote 1
        • O
          O.M.A.A @cyperghost
          last edited by O.M.A.A 4 Nov 2019, 18:27 11 Apr 2019, 17:26

          @cyperghost I'm too bad with coding xD but I hope one day I get used to some of it.
          @mitu I copied the script u posted to /home/pi/scripts,
          so, now I have this script in this destination: /home/pi/scripts, which contains the script u posted, and another script is in this destination: /home/pi/RetroPie/scripts which is called multi_switch.sh and it contains a very long script.

          the power on/off button still working, but I didn't understand this part (You'll need to add another test for GPIO7 in the while loop, check if GPIO7 is pressed and then call the multi_switch.sh script to reset the current emulator), which is why still exit emulator button not working yet.

          C 1 Reply Last reply 11 Apr 2019, 17:28 Reply Quote 0
          • C
            cyperghost @O.M.A.A
            last edited by 11 Apr 2019, 17:28

            @O-M-A-A Please perform following command
            chmod +x /home/pi/scripts/multi_switch.sh to make it executable

            1 Reply Last reply Reply Quote 1
            • M
              mitu Global Moderator
              last edited by 11 Apr 2019, 17:31

              In addition to what @cyperghost said, copy the multi_switch.sh script also in /home/pi/scripts - that's the script I meant to copy there, not the one you posted (and I modified).

              O 1 Reply Last reply 11 Apr 2019, 17:33 Reply Quote 0
              • O
                O.M.A.A @mitu
                last edited by 11 Apr 2019, 17:33

                @mitu @cyperghost
                ok I will try it now

                1 Reply Last reply Reply Quote 0
                • O
                  O.M.A.A
                  last edited by 11 Apr 2019, 17:45

                  @mitu @cyperghost

                  I renamed the file in /home/pi/scripts, to multi_switch.sh as in this picture

                  1.png

                  and it contains only the script u posted:

                  2.png

                  then I executed this command : chmod +x /home/pi/scripts/multi_switch.sh

                  but still didn't work, even the power button doesn't work now.
                  not sure what's the mistake I'm doing here.

                  M C 2 Replies Last reply 11 Apr 2019, 17:52 Reply Quote 0
                  • M
                    mitu Global Moderator @O.M.A.A
                    last edited by mitu 4 Nov 2019, 18:53 11 Apr 2019, 17:52

                    @O-M-A-A You misunderstood the instructions - maybe I wasn't so clear.
                    You already have a script - the one your posted. Modify it and add the code I posted. In addition to the new script you have, download and put the multi_switch.sh script, which you can get from https://raw.githubusercontent.com/crcerror/ES-generic-shutdown/master/multi_switch.sh, into the /home/pi/scripts folder, then make it executable (chmod +x /home/pi/scripts/multi_switch.sh).
                    Run your original script (now modified) and see if you get the desired behavior.

                    1 Reply Last reply Reply Quote 0
                    • C
                      cyperghost @O.M.A.A
                      last edited by cyperghost 4 Nov 2019, 18:56 11 Apr 2019, 17:55

                      @O-M-A-A This does not make sense

                      Please use command wget https://raw.githubusercontent.com/crcerror/ES-generic-shutdown/master/multi_switch.sh -O /home/pi/scripts/multi_switch.sh

                      and then again chmod +x /home/pi/scripts/multi_switch.sh

                      1 Reply Last reply Reply Quote 0
                      • O
                        O.M.A.A
                        last edited by 11 Apr 2019, 17:55

                        @mitu thank you very much for your response,
                        I will try it now, and I hope I get it now

                        1 Reply Last reply Reply Quote 0
                        • O
                          O.M.A.A
                          last edited by 11 Apr 2019, 18:18

                          @cyperghost @mitu

                          Is this what u guys meant ?

                          1.png

                          shutdown.py contains the modified script, while I downloaded the multi_switch.sh and drop it this destination, then I executed this command (chmod +x /home/pi/scripts/multi_switch.sh)., the power button is working but not the exit emu button.
                          I hope this is what u guys meant !!

                          M 1 Reply Last reply 11 Apr 2019, 18:20 Reply Quote 0
                          • M
                            mitu Global Moderator @O.M.A.A
                            last edited by mitu 4 Nov 2019, 19:21 11 Apr 2019, 18:20

                            @O-M-A-A said in How to make a momentary push button that exit games and take me back to game menu ?:

                            I hope this is what u guys meant !!

                            Not really:

                            Run your original script (now modified) and see if you get the desired behavior.

                            You need to run shutdown.py, not the other way around.

                            1 Reply Last reply Reply Quote 0
                            • O
                              O.M.A.A
                              last edited by 11 Apr 2019, 18:25

                              @mitu
                              the original script's name is shutdown.py, I did modified it, or what did u mean ?

                              C 1 Reply Last reply 11 Apr 2019, 18:28 Reply Quote 0
                              • C
                                cyperghost @O.M.A.A
                                last edited by cyperghost 4 Nov 2019, 19:29 11 Apr 2019, 18:28

                                @O-M-A-A How do you startup this python script? (It should be the one @mitu presented you in this posting)

                                O 1 Reply Last reply 11 Apr 2019, 18:29 Reply Quote 0
                                • O
                                  O.M.A.A @cyperghost
                                  last edited by O.M.A.A 4 Nov 2019, 19:30 11 Apr 2019, 18:29

                                  @cyperghost just copied it and paste it ;D

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mitu Global Moderator
                                    last edited by 11 Apr 2019, 18:30

                                    Can you take a picture of how the buttons are wired ?

                                    C 1 Reply Last reply 11 Apr 2019, 18:32 Reply Quote 0
                                    • C
                                      cyperghost @mitu
                                      last edited by 11 Apr 2019, 18:32

                                      @O-M-A-A How do you start the script? How do you start the shutdown.py script?

                                      1 Reply Last reply Reply Quote 0
                                      • O
                                        O.M.A.A
                                        last edited by 11 Apr 2019, 18:42

                                        This post is deleted!
                                        1 Reply Last reply Reply Quote 0
                                        • O
                                          O.M.A.A
                                          last edited by 11 Apr 2019, 18:46

                                          @cyperghost @mitu
                                          sry for the delay, I was having some error when replaying to u guys.

                                          I actually found a command, when I just executed it, it made the shutdown.py script and power button works immediately.

                                          this is the command:
                                          3333.png

                                          1 Reply Last reply Reply Quote 0
                                          25 out of 56
                                          • First post
                                            25/56
                                            Last post

                                          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.

                                            This community forum collects and processes your personal information.
                                            consent.not_received