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

questions about runcommand.sh

Scheduled Pinned Locked Moved Ideas and Development
runcommand
32 Posts 5 Posters 15.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.
  • S
    sselph
    last edited by 27 Jun 2016, 16:39

    I haven't installed a recent version but I think this is the code and I would guess the game starts here:
    https://github.com/RetroPie/RetroPie-Setup/blob/0951d9d3581588822a5b66e2d990f8c7b5a17341/scriptmodules/supplementary/runcommand/runcommand.sh#L804

    Auto-scraper: https://github.com/sselph/scraper
    Donate to Extra-Life 2018 and help save lives: https://goo.gl/diu5oU

    1 Reply Last reply Reply Quote 1
    • M
      meleu
      last edited by 27 Jun 2016, 19:31

      @sselph
      I would like to execute a command after runcommand and before the start of the game without the need to change the runcommand.sh file itself. I think it's not possible, since the runcommand calls the command that starts the game, right?

      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      S 1 Reply Last reply 27 Jun 2016, 20:01 Reply Quote 0
      • S
        sselph @meleu
        last edited by 27 Jun 2016, 20:01

        @meleu Doesn't sound like it. If you don't mind me asking what do you want to do?

        Auto-scraper: https://github.com/sselph/scraper
        Donate to Extra-Life 2018 and help save lives: https://goo.gl/diu5oU

        M 1 Reply Last reply 27 Jun 2016, 22:48 Reply Quote 0
        • M
          meleu @sselph
          last edited by meleu 27 Jun 2016, 22:48

          @sselph Well, I made a script to choose the controllers for RetroArch players 1-4 (as you can see here: https://github.com/meleu/RetroPie-joystick-selection). The configuration is made by the joystick names, but In the end it's just the joystick index number.

          The problem is that if the joystick list order changes (adding/removing devices), the indexes change and the user need to execute the script again.

          If I could execute a command right before the RetroArch begins, I could keep a configuration based on the joystick name and substitute the name by the correct index only when the game begins.

          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          1 Reply Last reply Reply Quote 0
          • C
            caver01
            last edited by caver01 27 Jun 2016, 23:01

            @meleu Couldn't you setup another "emulator" such that the runcommand calls your alternate, only the emulator it calls is a script you create that runs your command and then the emulator it replaces? If you want the command to run for one or two emulators this might work, but gets less practical if you want a command before EVERY emulator.

            For example, I want the same thing--I want to launch MESS such that it runs a command before opening a disk image. The command will copy configs around to make a custom keymap tailored for that specific disk image. Sounds very similar to what you want to do.

            My 4-player cocktail style cabinet built as a custom "roadcase"

            M 1 Reply Last reply 27 Jun 2016, 23:16 Reply Quote 1
            • M
              meleu @caver01
              last edited by 27 Jun 2016, 23:16

              @caver01
              Yep, I've already thought of this solution. But I wouldn't like to change so many files.

              OK, it can be satisfactory if it's just for me. But my intention is to implement it and release for everyone. And I think that messing with so many files will add an unwanted complexity to the joystick selection process.

              Thanks anyway! :-)

              • Useful topics
              • joystick-selection tool
              • rpie-art tool
              • achievements I made
              1 Reply Last reply Reply Quote 0
              • M
                meleu
                last edited by 29 Jun 2016, 12:06

                I've just realized one thing: There is no need to execute a command AFTER runcommand. It can be before.

                • Useful topics
                • joystick-selection tool
                • rpie-art tool
                • achievements I made
                1 Reply Last reply Reply Quote 0
                • M
                  meleu
                  last edited by 4 Aug 2016, 10:35

                  As reported here:
                  you can now place scripts at /opt/retropie/configs/all/runcommand-onstart.sh and /opt/retropie/configs/all/runcommand-onend.sh

                  Really useful for what I want to do!

                  • Useful topics
                  • joystick-selection tool
                  • rpie-art tool
                  • achievements I made
                  C 1 Reply Last reply 4 Aug 2016, 16:16 Reply Quote 0
                  • C
                    caver01 @meleu
                    last edited by 4 Aug 2016, 16:16

                    @meleu And can these include variables (like selected ROM name)? This is fantastic for what I want to do too!

                    My 4-player cocktail style cabinet built as a custom "roadcase"

                    M 1 Reply Last reply 4 Aug 2016, 17:10 Reply Quote 0
                    • M
                      meleu @caver01
                      last edited by meleu 8 Apr 2016, 18:16 4 Aug 2016, 17:10

                      @caver01 said in A question about runcommand.sh:

                      @meleu And can these include variables (like selected ROM name)?

                      oo oh... I don't think so...

                      Look how they are invoked:

                      runcommand-onstart.sh:
                      https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/supplementary/runcommand/runcommand.sh#L763

                      runcommand-onend.sh:
                      https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/supplementary/runcommand/runcommand.sh#L829

                      The ROM name usually is the 4th argument given to the runcommand.sh and the runcommand-on[start|end].sh do not have access to these arguments.

                      I think the function get_params on runcommand.sh creates a global variable rom, as we can see here (this variable isn't declared as local, so it's a global variable). Maybe you can give to @BuZz a good reason to export this variable and access it in runcommand-onend.sh.

                      OR BETTER YET: change the the commands that invoke these scripts adding $@ in the end so they both can get access to the runcommand.sh parameters.

                      • Useful topics
                      • joystick-selection tool
                      • rpie-art tool
                      • achievements I made
                      C 1 Reply Last reply 4 Aug 2016, 17:35 Reply Quote 0
                      • C
                        caver01 @meleu
                        last edited by caver01 8 Apr 2016, 18:38 4 Aug 2016, 17:35

                        @meleu Yeah, it makes sense to have access to these variables. Looking back a few years, I had a system running the Maximus Arcade front end. Many of us probably remember this one. Anyway, one of the settings you could configure per emulator is a RUN BEFORE and a RUN AFTER command (with variables passed). Not everyone used it, but you could do some really flexible things with it that are very similar to how our runcommand is used to set the display resolution, for example. I used it to do a pre-config by copying a configuration file matching the ROM NAME (or rather, a disk image for MESS using that forwarded parameter) into the working directory for MESS on the pre-execution, then on post, I would save that config back to it's holding folder. This allowed me to load my keyboard map for a given disk image, and more importantly, edit the mapping using the MESS GUI, and when I exited, it would be saved. Later, that saved file would be recalled and copied back into place when that ROM (disk image) was selected.

                        This required two (three) things. 1. A pre/post execution script. 2. Passing parameters so the script was aware of the ROM selected. (3. a parameter for the emulator chosen).

                        Looking back, I suppose I could have used the ROM parameter in the emulator launch command to point to the appropriate config. I don't remember if I tried that or not. Maybe I did and it failed when the config didn't exist and this was my workaround.

                        Anyway, I'd really like to be able to do custom keys on disk images (mostly games) for the Apple II emulator. As far as I know, I can't customize the keys in LinApple via configs, so I am looking at MESS.

                        My 4-player cocktail style cabinet built as a custom "roadcase"

                        M edmaul69E 2 Replies Last reply 4 Aug 2016, 17:42 Reply Quote 0
                        • M
                          meleu @caver01
                          last edited by 4 Aug 2016, 17:42

                          @caver01
                          I added it and made a Pull Request:
                          https://github.com/RetroPie/RetroPie-Setup/pull/1610

                          Let's wait if it'll be merged. Crossing fingers!

                          • Useful topics
                          • joystick-selection tool
                          • rpie-art tool
                          • achievements I made
                          1 Reply Last reply Reply Quote 1
                          • M
                            meleu
                            last edited by 4 Aug 2016, 17:46

                            Ooops! It didn't... :~(

                            • Useful topics
                            • joystick-selection tool
                            • rpie-art tool
                            • achievements I made
                            C 1 Reply Last reply 4 Aug 2016, 17:50 Reply Quote 0
                            • C
                              caver01 @meleu
                              last edited by 4 Aug 2016, 17:50

                              @meleu Bummer, but I don't fully understand the reason. Thanks for asking a clarifying question.

                              My 4-player cocktail style cabinet built as a custom "roadcase"

                              BuZzB 1 Reply Last reply 4 Aug 2016, 18:01 Reply Quote 0
                              • BuZzB
                                BuZz administrators @caver01
                                last edited by BuZz 8 Apr 2016, 19:02 4 Aug 2016, 18:01

                                @caver01 I put some more details on the PR.

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                C 1 Reply Last reply 4 Aug 2016, 18:13 Reply Quote 0
                                • edmaul69E
                                  edmaul69 @caver01
                                  last edited by edmaul69 8 Apr 2016, 19:06 4 Aug 2016, 18:03

                                  @caver01 the newest version of linapple does let you configure which controller, buttons and axis. If you download the newest one you need to copy the linapple.conf from the /opt/retropie/emulators/linapple/ to the /opt/retropie/configs/apple2 folder overwriting the old config

                                  C 1 Reply Last reply 4 Aug 2016, 18:14 Reply Quote 0
                                  • C
                                    caver01 @BuZz
                                    last edited by 4 Aug 2016, 18:13

                                    @BuZz Makes sense. There is a better way obtain the chosen ROM and Emulator then? I'd certainly rather work within the overall vision than branch off on my own, especially if it's something others might be able use.

                                    My 4-player cocktail style cabinet built as a custom "roadcase"

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      caver01 @edmaul69
                                      last edited by 4 Aug 2016, 18:14

                                      @edmaul69 said in A question about runcommand.sh:

                                      @caver01 the newest version of linapple does let you configure which controller, buttons and axis. If you download the newest one you need to copy the linapple.conf from the /opt/retropie/emulators/linapple/ to the /opt/retropie/configs/apple2 folder overwriting the old config

                                      I want to pick this up on another thread. This sounds promising!

                                      My 4-player cocktail style cabinet built as a custom "roadcase"

                                      1 Reply Last reply Reply Quote 0
                                      • BuZzB
                                        BuZz administrators
                                        last edited by BuZz 8 Apr 2016, 19:20 4 Aug 2016, 18:18

                                        There is - processing order needs to change - I will implement it.

                                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                        1 Reply Last reply Reply Quote 0
                                        • BuZzB
                                          BuZz administrators
                                          last edited by BuZz 8 Apr 2016, 19:25 4 Aug 2016, 18:23

                                          the PR didn't actually work btw - it would try and launch a script with the parameters as the name of the script. You would need to do bash "$configdir/all/runcommand-onstart.sh" "$@" not bash "$configdir/all/runcommand-onstart.sh $@"

                                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                          1 Reply Last reply Reply Quote 1
                                          • 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.

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