brainstorm: a way to make the RGUI fans happy
-
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 alternativeretroarch-rgui.cfg
withconfig_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?
-
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
-
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 :)
-
@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 specificretroarch.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-orientedretroarch.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'semulators.cfg
repeating this command line option.This global
retroarch-rgui.cfg
file will have theconfig_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.
-
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/24and 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 -
@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."
-
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 specificretroarch.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.
-
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 globalretroarch.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 systemretroarch.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). -
@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.
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.