RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Getting the rom name and emulator

    Scheduled Pinned Locked Moved General Discussion and Gaming
    pi model v3pythonscriptretropiesetup
    82 Posts 5 Posters 19.1k 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.
    • D
      daveyman123 @meleu
      last edited by

      @meleu
      oh gosh

      I may have it figured out by then ;)

      meleuM 2 Replies Last reply Reply Quote 0
      • cyperghostC
        cyperghost @daveyman123
        last edited by cyperghost

        @meleu @daveyman123 It's late here - going to sleep.
        Good night mates

        @daveyman123
        That's the wrong intention. The script should do the loop not a bash file. The bash file should only tell changes. Because you always load the python interpreter again and again and this will waste resources and even the python language gives you much much controll over strings. So I would rather use python intead of bash.

        @meleu will certainly find an easy and working solution ;)

        1 Reply Last reply Reply Quote 0
        • meleuM
          meleu @daveyman123
          last edited by

          @daveyman123 said in Getting the rom name and emulator:

          I may have it figured out by then ;)

          better yet!

          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          1 Reply Last reply Reply Quote 0
          • cyperghostC
            cyperghost @daveyman123
            last edited by

            @daveyman123 said in Getting the rom name and emulator:

            I will look into cyperghost's loop.sh example again and see if that works to put the python script in there

            The loop example is useless. You should look the runcommand-onstart.shand how scripts are called and running in background. If you were able to readout files you can simply write the romname via echo $3 to a file or you can directly call the python script with $3 command.

            I think @meleu will do a nice job but meanwhile you can also try to find a solution. I'm 100% sure you find one!
            Good night

            1 Reply Last reply Reply Quote 0
            • meleuM
              meleu @daveyman123
              last edited by meleu

              @daveyman123 Here are some ideas to let you find the solution yourself...

              Use this code as inspiration for your runcommand-onstart.sh:

              # getting the rom name with no full path and no extension
              rom_name="$(basename "${3%.*}")"
              
              # running the python script in background
              sudo /path/to/python/code.py "$rom_name" &
              

              This one as inspiration for your runcommand-onend.sh:

              # killing the python script
              sudo pkill -f "/path/to/python/code.py"
              

              And this one as inspiration for your python script:

              #!/usr/bin/python
              
              # I don't know if it's right, just used @daveyman123 code as example
              from UHScroll import *
              import unicornhat as unicorn
              
              import time sys
              
              while True:
                  # I have no idea if this command is right, I just used @daveyman123 code as example
                  unicorn_scroll(sys.argv[1], 'white', 255, 0.2)
              
                  # I have no idea if 5 seconds is OK, adapt it to your needs
                  time.sleep(5)
              
              
              • Useful topics
              • joystick-selection tool
              • rpie-art tool
              • achievements I made
              D 1 Reply Last reply Reply Quote 0
              • D
                daveyman123 @meleu
                last edited by

                @meleu
                there is still the problem of (i dont know if i mentioned it) the unicorn only scrolls through ONCE (even if i include a loop in python) then it will play a random sequence of lights. I.E. it reads "JIM" or "GOLDEN" in "GOLDENEYE". But as soon as the game launches it freezes or plays random lights.

                My fear is it has something to do with the pins being messed with by retropie. I have not tried to replicate the problem on raspbian.. but I may have to try that.

                What I have tried:
                making sure audio isnt interfering with the unicorn hat pins (i.e. setting the audio output to hdmi)
                and obviously have tried making the python script run in the background

                1 Reply Last reply Reply Quote 0
                • SanoS
                  Sano
                  last edited by Sano

                  @meleu said in Getting the rom name and emulator:

                  sudo /path/to/python/code.py "$rom_name" &

                  Try to modify this line like this :

                  sudo nohup /path/to/python/code.py "$rom_name" &
                  
                  1 Reply Last reply Reply Quote 0
                  • D
                    daveyman123
                    last edited by

                    @Sano
                    nohup was nohelp... lol

                    something is happening at the level of the pins i believe

                    1 Reply Last reply Reply Quote 0
                    • SanoS
                      Sano
                      last edited by Sano

                      Ok sorry, could you try

                      nohup sudo /path/to/python/code.py "$rom_name" &
                      

                      (possibly with quotes)
                      I'm pretty sure it's because the parent process (runcommand-onstart) terminates before game launch, so the child are killed, including your script.
                      This could be solved with the use of nohup, if I ever remember the correct syntax with sudo...

                      D meleuM 3 Replies Last reply Reply Quote 0
                      • D
                        daveyman123 @Sano
                        last edited by

                        @sano

                        does nothing when i do that

                        my hunch is it has to do with the support for GPIO controllers in retropie. I could be wrong

                        1 Reply Last reply Reply Quote 0
                        • D
                          daveyman123
                          last edited by

                          nah thats not it. The driver packages for GPIO controllers isnt installed

                          1 Reply Last reply Reply Quote 0
                          • D
                            daveyman123
                            last edited by

                            I got it to work with a different game "super mario for snes" so... the problem must be in the emulator settings

                            1 Reply Last reply Reply Quote 0
                            • D
                              daveyman123
                              last edited by

                              I think ive pretty much figured it out boys thanks to your help

                              first one to link their paypal gets 20 dollars when freelancer clears

                              meleuM 1 Reply Last reply Reply Quote 0
                              • meleuM
                                meleu @Sano
                                last edited by

                                @sano said in Getting the rom name and emulator:

                                I'm pretty sure it's because the parent process (runcommand-onstart) terminates before game launch, so the child are killed

                                I'm afraid this isn't true. Once a process is forked it doesn't depends on his parent life (oh these childrens of today...).

                                I didn't test with the actual -onstart script, but tested a similar scenario in command line before posting.

                                • Useful topics
                                • joystick-selection tool
                                • rpie-art tool
                                • achievements I made
                                1 Reply Last reply Reply Quote 1
                                • meleuM
                                  meleu @daveyman123
                                  last edited by

                                  @daveyman123 said in Getting the rom name and emulator:

                                  first one to link their paypal gets 20 dollars when freelancer clears

                                  If you click on my name at right of my avatar you can see it on my profile page. ;-)

                                  • Useful topics
                                  • joystick-selection tool
                                  • rpie-art tool
                                  • achievements I made
                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    daveyman123
                                    last edited by

                                    will do!

                                    1 Reply Last reply Reply Quote 1
                                    • meleuM
                                      meleu @Sano
                                      last edited by

                                      @sano Here is a way to prove what I said:

                                      [PROMPT]$ cat father.sh
                                      #!/bin/bash
                                      echo "FATHER: Hello, I am the father."
                                      echo "FATHER: Hey son, say hello to the world!"
                                      bash son.sh &
                                      sleep 10
                                      echo "FATHER: Oh no! I am going to die! NOOOOOoooooo..."
                                      sleep 1
                                      echo "FATHER: bye!"
                                      exit
                                      
                                      [PROMPT]$ cat son.sh
                                      #!/bin/bash
                                      while true; do
                                          echo "SON: Hello World!"
                                          sleep 2
                                      done
                                      
                                      [PROMPT]$ bash father.sh
                                      FATHER: Hello, I am the father.
                                      FATHER: Hey son, say hello to the world!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      FATHER: Oh no! I am going to die! NOOOOOoooooo...
                                      SON: Hello World!
                                      FATHER: bye!
                                      
                                      [PROMPT]$ SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      SON: Hello World!
                                      ...
                                      
                                      • Useful topics
                                      • joystick-selection tool
                                      • rpie-art tool
                                      • achievements I made
                                      cyperghostC 1 Reply Last reply Reply Quote 2
                                      • cyperghostC
                                        cyperghost @meleu
                                        last edited by

                                        @meleu I made same intention here
                                        Every 5 seconds one entry is written in log file for 10 times. After a minute or of intensive gaming (Joust Arcade!) you can check tmp/counter.log voila... entry of used Arcade system is there 10 times :)

                                        1 Reply Last reply Reply Quote 1
                                        • SanoS
                                          Sano
                                          last edited by Sano

                                          @meleu @cyperghost
                                          My bad then, you're right of course ;)

                                          Edit : my guess would only be valid (I think) if the user launching the script disconnects afterward, which is not the case here.
                                          I was probably misled by the statement that the scrolling stops when the game launch.
                                          It was late here anyway, I was drunk, and my cat was distracting me.
                                          Well, enough justifications I think. I'm just obviously no good at this :)

                                          cyperghostC 1 Reply Last reply Reply Quote 1
                                          • cyperghostC
                                            cyperghost @Sano
                                            last edited by

                                            @sano The father & son example of @meleu is very reasonable.
                                            High laughter for this :)

                                            Where is grandma-bash? Will son-bash be father soon?

                                            meleuM 1 Reply Last reply Reply Quote 0
                                            • First post
                                              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.