libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.25k stars 1.83k forks source link

New "Save Core Override" command ignoring save path changes #3536

Open thedaryen opened 8 years ago

thedaryen commented 8 years ago

Before the implementation, I had core overrides for most cores which consisted basically of directory changes for savefiles. When testing this new GUI option, I realized the new cfg override it creates doesn't seem to check for delta on the cfg related to directories, so it just deletes any custom path I made manually. Changing paths from the GUI also doesn't get registered when saving the core override from the GUI.

To reproduce the issue:

  1. Enable auto-load core overrides on your retroarch.cfg.
  2. Manually create a core override that changes a directory. For example, create SNES9x.cfg under \config/SNES9x with the following line: savefile_directory = ":\saves/SNES"
  3. Load any content with SNES9x. The savefile directory will change (you can check under "Directory" on the GUI.
  4. Select "Save Core Override" on the GUI.
  5. Check your SNES9x.cfg under the \config/SNES9x. It will be empty.

Another way of reproducing is, after content load, just manually changing any directory from within the GUI and trying to "Save Core Override". It will save an empty core override, not recognizing any changes made to directories, and directories will reset on content close.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/37650675-new-save-core-override-command-ignoring-save-path-changes?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github).
andres-asm commented 8 years ago

You're right. Out of the 26, 23 dirs are overridable

libretro_directory = "D:\" libretro_info_path = "D:\" content_database_path = "D:\" cheat_database_path = "D:\" cursor_directory = "D:\" screenshot_directory = "D:\" system_directory = "D:\" cache_directory = "D:\" input_remapping_directory = "D:\" video_shader_dir = "D:\" video_filter_dir = "D:\" core_assets_directory = "D:\" assets_directory = "D:\" dynamic_wallpapers_directory = "D:\" thumbnails_directory = "D:\" playlist_directory = "D:\" joypad_autoconfig_dir = "D:\" audio_filter_dir = "D:\" rgui_browser_directory = "D:\" rgui_config_directory = "D:\" overlay_directory = "D:\" screenshot_directory = "D:\"

andres-asm commented 8 years ago

Well savefile and savestate dirs are treated differently because they are needed for some API stuff so they always have been treated differently, I'll try find out why but this is why I made the savestate/savefile sorting function in the first place (because it's a really complicated part of RA)

thedaryen commented 8 years ago

But savefile_directory IS overridable. I've been using an override to change it for quite a while. It works.

What doesn't work (especifically for changing this directory) is the "Save Core Override" function from the GUI. If you manually create the override .cfg, it works.

It's useful because you can group saves from cores that emulate the same system on the same folder. (i.e.: bsnes and Snes9x both saving to and loading from saves\SNES directory).

andres-asm commented 8 years ago

You're right Maybe saving these paths is broken altogether even in the base config? can you give that a try?

I have an idea to make this better.

thedaryen commented 8 years ago

Just tested, changing the save path from within the GUI and choosing "save current config" works just fine. It's just "Save Core Override" that doesn't pick up the changes.

andres-asm commented 8 years ago

Ok. Well save dir and state dir are not part of the settings_t struct for legacy reasons, I may try to address this later this week

askotx commented 7 years ago

any new change or option to not delete save paths on override configs?

robsdedude commented 5 years ago

This is a really annoying bug that essentially renders the "save core override" function unusable if you have per core save paths. All adjustments have to made with the editor to not loose the save path settings.
This is a long time known bug (but only considered to be minor—I disagree). I know that this software is probably driven by volunteers in their spare time, so please don't get me wrong, but I can't imagine that this issue really is so hard to fix.