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

    brainstorm: a way to make the RGUI fans happy

    Scheduled Pinned Locked Moved Ideas and Development
    rguiretroarchbrainstorm
    9 Posts 4 Posters 3.4k 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.
    • meleuM
      meleu
      last edited by meleu

      I have some near friends that are used to use RetroArch and RGUI on Android, and frequently they get confused with RetroPie's way of dealing with retroarch.cfg files. And we see here several threads with people facing the same kind of problem.

      I was thinking in a way to make the RGUI fans happy: Maybe an entry in every .../SYSTEM/emulators.cfg with an option loading the same alternative retroarch-rgui.cfg with config_save_on_exit = true. This way the user can choose this "emulator" with runcommand.

      Pros:

      • the obvious: make the RGUI fans happy (those people that use RetroArch on other platforms).
      • easy to revert to the default RetroPie way of manage retroarch.cfg files.
      • doesn't mess the specific system's retroarch.cfg.

      Cons:

      • the alternative retroarch.cfg file will be dificult to manage manually. But hey! this file is not intended to be edited manually!

      Can you, experienced guys, see other cons (or pros) in this approach, that I'm not seeing?

      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      1 Reply Last reply Reply Quote 0
      • gizmo98G
        gizmo98 Global Moderator
        last edited by

        There is a open ticket. First attempt was to slow. Second attempt needs a fix for rom names with whitespace. https://github.com/RetroPie/RetroPie-Setup/issues/1233

        1 Reply Last reply Reply Quote 1
        • C
          Concat
          last edited by Concat

          I use RGUi exclusively. I encountered a lot of confusion with respect to Retropie's documentation on configuration, but I finally have finally figured out a method that makes sense to me.

          I have turned on Per-Core Configuration, Load Remap Files automatically and Save Config upon exit.

          This will overwrite the emulator specific config files and will make most of Retropie's documentation on config irrelevant. This is what was so confusing to me. That said however, it still works flawlessly.

          I had a temporary issue that was resolved when I set the config directory for configs back to default in RetroArch. I forgot I changed it when muddling my way through this, but as of right now it's all gravy. The only other thing to keep in mind with this setup is that the global config file does not get called at all, so it's pointless to make changes there. Everything has to be changed in the emulator config files.

          What I did was make my global changes first, then when I'm happy with it, turn on per core config. All config moving forward happens in game by bringing up the menu. Changes will then only apply to that emulator, which is what I want.

          So in short... I don't think a change is needed per se. But I do think documentation could be improved so people understand what happens when you change the RetroArch settings. It's a confusing beast made worse by the way Retropie expects people to make config changes. Your idea makes sense to me and increases flexibility, the only caveat is that it actually adds a layer of complexity that would likely be confusing to explain to people :)

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

            @Concat said in brainstorm: a way to make the RGUI fans happy:

            I have turned on Per-Core Configuration (...)
            (...)
            The only other thing to keep in mind with this setup is that the global config file does not get called at all, so it's pointless to make changes there. Everything has to be changed in the emulator config files.

            Man, turning on the per-core configuration is pointless on RetroPie. I'll show you why:

            Take a look at your /opt/retropie/configs/nes/emulators.cfg. Let's use a really simple example of this file:

            lr-fceumm="/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg %ROM%"
            default="lr-fceumm"
            

            We can see that the default emulator is lr-fceumm and the command line for it is that strings between double quotes in the lr-fceumm= line. Look at the --config command line option, it's loading /opt/retropie/configs/nes/retroarch.cfg.

            Now look at your /opt/retropie/configs/megadrive and follow similar steps above to find the command line that calls RetroArch for megadrive playing. You'll see a --config /opt/retropie/configs/megadrive/retroarch.cfg.

            If you repeat this process to every single system you'll see that all the emulators that use a libretro core load their own retroarch.cfg. So, when you start a SNES game, you start RetroArch with the SNES specific retroarch.cfg. That is why I can say that turning on the per-core configuration is useless on RetroPie.

            What I did was make my global changes first, then when I'm happy with it, turn on per core config. All config moving forward happens in game by bringing up the menu. Changes will then only apply to that emulator, which is what I want.

            I did this way too. But before realize that we have to do this way, there were a lot of confusion. By the way, your post shows that you are still a bit confused. :-)

            Moreover, if you want to make a global change later (a simple example: change the font size of that yellow text), it will involve file manipulation again. And this is what the RGUI fans want to avoid.

            What I am suggesting is to create another entry (maybe entries) in every emulators.cfg file adding an option for a global RGUI-oriented retroarch.cfg. [EDIT: I'm suggesting it for the RetroPie developers, to put this entry by default. I'm not suggesting that the users have to do it!] That's the way the RetroArch on Android (other platform) users are used to configure RetroArch things: just one retroarch.cfg.

            An example of this entry for NES' emulators.cfg:

            lr-fceumm-rgui="/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/all/retroarch-rgui.cfg %ROM%"
            

            Observe: --config /opt/retropie/configs/all/retroarch-rgui.cfg. My suggestion is create new entries for every system's emulators.cfg repeating this command line option.

            This global retroarch-rgui.cfg file will have the config_save_on_exit = true.

            So in short... I don't think a change is needed per se.

            Please, note that I'm not proposing any change on the current way of dealing with RetroArch config files. I'm just proposing to add an option.

            Your idea makes sense to me and increases flexibility, the only caveat is that it actually adds a layer of complexity that would likely be confusing to explain to people :)

            Yeah. I observed with this point of view too. But looking at how many threads were created here in the forum with confused users that just wanna configure RetroArch via RGUI, and looking how they get more confused with the answers (sometimes made by another confused user)...

            Instead of big answers explaining this "confusing beast", I would like to answer:

            "When starting a game, press a button to access the runcommand menu. Now change the default emulator to the RGUI-oriented one. Repeat this process when starting a game of another system."

            I think the RGUI fans will be happy with it.

            • Useful topics
            • joystick-selection tool
            • rpie-art tool
            • achievements I made
            FloobF C 2 Replies Last reply Reply Quote 1
            • FloobF
              Floob @meleu
              last edited by Floob

              In each system specific retroarch.cfg, there is an include to pull in the global retroarch.cfg, this file contains
              core_options_path = /opt/retropie/configs/all/retroarch-core-options.cfg

              So it will always load core options that are saved.

              This chart may help:
              https://retropie.org.uk/forum/topic/2199/specific-retroarch-emulator-settings-are-being-over-written-after-i-quit-the-game/24

              and maybe this video

              dont forget the Wiki to see how to make amends without breaking the configs:
              https://github.com/retropie/retropie-setup/wiki/Configuration-Editor

              Please read the Docs before asking a new question.
              RetroPie Help Guides: https://goo.gl/3gcNsT

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

                @Floob I saw this chart and it's very enlightening, indeed.
                I'm on that thread too. It is an example of the several threads with RGUI users confused when coming to RetroPie. I think that @hakan1708 would be happy if he got this answer:

                "When starting a megadrive game, press a button to access the runcommand menu. Now change the default emulator to the RGUI-oriented one. Repeat this process when starting a game of another system."

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

                  @meleu

                  you'll see that all the emulators that use a libretro core load their own retroarch.cfg. So, when you start a SNES game, you start RetroArch with the SNES specific retroarch.cfg. That is why I can say that turning on the per-core configuration is useless on RetroPie.

                  Ok correct me if I'm wrong, but by default the emulator specific configs in retropie only have a section for user additions/edits, and then a call to include the global config.

                  When you open the in-game menu and save changes to the settings, it writes the entire config file to the emulator config, overwriting it. It now looks just like the global config file (sans the changes JUST made) and it no longer has a call to include the global config.

                  So, does Per Core Config actually need to be turned on for this behavior to be observed? Sigh... see I thought I had it figured out. lol. Oh well. It's at least functioning the way I expect it to. I guess Per Core Config does nothing at all in RetroPie because emulators.cfg does it by default?

                  As for your runcommand option, I do think it's a good idea! I was more or less just saying that it's still possible... it just ignores the global config file altogether after the first time you overwrite the emulator config.

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

                    @Concat

                    Ok correct me if I'm wrong, but by default the emulator specific configs in retropie only have a section for user additions/edits, and then a call to include the global config.

                    When you open the in-game menu and save changes to the settings, it writes the entire config file to the emulator config, overwriting it. (...)

                    Up to this point you are completely correct.

                    (...) It now looks just like the global config file (sans the changes JUST made) and it no longer has a call to include the global config.

                    Not necessarily. The specific system retroarch.cfg will be filled with all the currently active configs, and you'll see that it means a lot of lines. And if the global retroarch.cfg is that skeleton config file, you'll see that it has just a few uncommented lines. So, most of all those lines dumped in specific system retroarch.cfg is the default RetroArch configs. With "default configs" I mean "what RetroArch does when this config is not present on retroarch.cfg".

                    So, does Per Core Config actually need to be turned on for this behavior to be observed? (...)

                    No.

                    I guess Per Core Config does nothing at all in RetroPie because emulators.cfg does it by default?

                    Yeah! You've got it! :-)

                    As for your runcommand option, I do think it's a good idea! I was more or less just saying that it's still possible... it just ignores the global config file altogether after the first time you overwrite the emulator config.

                    It just load one, and only one, retroarch.cfg, for all the libretro cores, that is intended to be managed via RGUI. I think this is the way the RetroArch users on other platforms are used to manage configs (at least me and my friends do this way).

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

                      @meleu
                      You rock. Thanks for the clarity.

                      Now say someone wants to use RetroArch's functionality for override config files... Haha, only joking. I don't really want to go down that road, but if anyone is curious there is yet another way to manage configs in RetroArch called override files. I won't even pretend to understand the behavior when trying to use those in RetroPie, but I know some people use them on other platforms.

                      For override files, I believe you just put whatever changes to settings you want in there, and it will override those specific settings in the global config settings on a per emulator basis. This sound remarkably a lot like the way RetroPie manages configs!

                      I need a drink.

                      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.