[SOLVED] what retroarch.cfg should be writable?
-
[EDIT: This problem has nothing to do with RetroPie. It's a RetroArch feature. See the end of this post.]
I've just installed RetroPie 3.7 and noticed that I can't save the changes I do using the RetroArch rgui.
On the RetroPie section of emulationstation it says that I need to make the retroarch.cfg writable.
So, let's check it:
pi@retropie:~ $ ls -lah /opt/retropie/configs/all/retroarch.cfg
-rw-r--r-- 1 pi pi 26K Apr 14 17:05 /opt/retropie/configs/all/retroarch.cfgThe global retroarch.cfg is writable for the pi user! Is there another retroarch.cfg to make writable for the pi user?
[EDIT]
I saw that the only retroarch.cfg not writable for the pi user on /opt tree is the /opt/retropie/emulators/retroarch/retroarch.cfg. I made it writable and it still doesn't work.[EDIT 20/05/2016]
I've just read it on RGUI wiki:While you are changing settings in runtime, they are not saved to disk afterwards on PC by default. If you want RetroArch to automatically write back the config, either set config_save_on_exit = true in config, or enable this under Settings -> Config Save On Exit from within RGUI.
By design, the config file is considered immutable as it is likely maintained by the user, and should not be overwritten behind the users back. This is not the case on consoles however, where looking at the config manually isn't really an option for most users.
[EDIT 31/05/2016. A little bit more detailed explanation]
(firstly, sorry if I make a grammar mistake. English is not my mother language.)
I was very confused about these RGUI configs. And then I realized that RetroPie wasn't made to work very "integrated" with RetroArch GUI by default (but RetroPie is very very flexible, and you can revert this with some knowledge).
Maybe I can help you guys to understand some things... A bit of linux command line knowledge helps. Let's go:
Take a look at the file
/opt/retropie/configs/SYSTEMNAME/emulators.cfg
(replace SYSTEMNAME with the obvious). You'll notice there are various commands to invoke an emulator, and thedefault
is the default (oh really?) command used.You'll also notice that the commands invokes a specific config file. If you are using a libretro core, this config file is
/opt/retropie/configs/SYSTEMNAME/retroarch.cfg
. Go and take a look at some of these files.It exists to configure a specific core and also invokes the default configurations using the
#include /opt/retropie/configs/all/retroarch.cfg
. Keep in mind that the config uses the "first match if finds" approach, so for you override a global config, keep the#include
line at the end of file.This approach can be a good thing for those who usually edit the retroarch.cfg "by hand". But for those who like to use RGUI, it can be annoying.
Example of how annoying this can be:
You invoke RGUI trhough RetroPie menu and enable "save config on exit" and then you can edit and save RetroArch configs via RGUI. The changes you make will be saved in
/opt/retropie/configs/all/retroarch.cfg
.Later you invoke RGUI during a NES game playing. You change some configs and then "Save config file". It'll save
/opt/retropie/configs/nes/retroarch.cfg
. This is the annoying thing! You think you saved the "default and only one retroarch.cfg", but you saved the specific retroarch.cfg for NES.Let's say you changed the On Screen Display text size to a bigger size using RGUI during this NES session, and saved. Then you quit and play Sonic (MegaDrive) and see that little yellow text again! You'll think "WHAT THE F#$@%CK?! I've just changed this text size!!!". But when you started the MegaDrive emulator the config file loaded was
/opt/retropie/configs/megadrive/retroarch.cfg
and you changed the text size only in the NES retroarch.cfg file.After a lot of confusion I finally learned to deal with config files by hand, but for those who aren't familiar with command line it can be hard...
As a further reading, I suggest https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration#hardcoded-configurations
-
Where did you read that ?
-
Here:
-
I used vim to edit the /opt/retropie/configs/all/retroarch.cfg to fit my needs (enable RetroAchievements) and it worked. But make changes via rgui is more elegant (an euphemism to "user friendly" :D )
-
@meleu did you tell it to save changes on exit?
-
@herb_fargus yep! and I also tried to save manually using the "Save Current Config" on rgui, and nothing happens. Not even a "fail to save" message.
-
@meleu The same with me, but after manually configure [config_save_on_exit = "true"] in the retroarch.cfg it normalized.
-
I too am having issues. I can't save any settings. Also it seems nothing looks good. Looks like everything at the lowest resolution possible. Very pixelated and choppy graphics wise. Especially psx. I can't make any graphics updates because nothing is saving.
-
-
@herb_fargus The RetroArch was configurable via rgui on RetroPie 3.6. The rgui is very handy for those guys used to use RetroArch on various platforms.
-
@cabrunco I edited manually the .../configs/all/retroarch.cfg and put "true" on the config_save_on_exit. Now the Save Current Config works, but curiously it saves on .../configs/nes/retroarch.cfg.
I'll keep trying. -
@meleu it's because nes core is loaded. Try close the core and try again.
-
@cabrunco yeah, it worked. thanks!
-
@meleu Just to remember, if you use configuration per core ON, then the configuration file in each system folder will be used.
-
We don't use the "configuration per core" setting - but when launching retropie for snes, it will pass the config/snes/retroarch.cfg to retroarch, so that would be used if saving on exit. That file contains a few overrides, and includes the main retroarch.cfg
It is easier to manage by not saving from retroarch and using the configuration editor imho - this keeps config files simple and manageable (rather than containing everything dumped in there). It also keeps the override functionality working, so you can have global settings, and override them on a per system basis.
-
@BuZz said in what retroarch.cfg should be writable? [RetroPie 3.7]:
We don't use the "configuration per core" setting - but when launching retropie for snes, it will pass the config/snes/retroarch.cfg to retroarch, so that would be used if saving on exit. That file contains a few overrides, and includes the main retroarch.cfg
But what I want is to change exactly the main retroarch.cfg via rgui. I can do it now, everything is OK. But I think it should not be necessary all this work to make it possible.
By the way, I didn't have this problem on RetroPie 3.6.
-
We haven't changed anything regarding this since RetroPie 3.6 btw - I don't think any behaviour has changed, but it's nothing our end. If you want to manage the configuration via RGUI, you can launch it from the retroarch menu, and tell it to save setting on exit. You can also use "Save New Config" to save a config under a new name to manually import settings to your main retroarch.cfg
Perhaps you can explain what you think has changed?
We did improve our own configuration editor to manage more configuration options though so people don't have to use the RGUI, as one settings are saved from that it is much harder to manage the config files manually.
-
@BuZz sorry! I was wrong! I've just installed 3.6 now and had the same problem. I tried to change some settings and then Save Current Config, nothing happens... :(
And your solution works perfectly:
If you want to manage the configuration via RGUI, you can launch it from the retroarch menu, and tell it to save setting on exit.
It solve the "configuring RetroArch via RGUI" problem. I'm happy with it. But the "nothing-happens" behavior when I click on Save Current Config is a little annoying.
-
You could report that to RetroArch - https://github.com/libretro/RetroArch
-
Fwiw i like it the way it is, to save anything you've changed from within rgui you have to enable save on exit and quit. And that it reverts to disabled is a godsend, i can't imagine the mess i'd have made if it saves my changes without me being absolutely sure that i want the changes.
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.