libretro / RetroArch

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

Vita: Will not save <Content dir> in directory for safefiles #4026

Open arromdee opened 7 years ago

arromdee commented 7 years ago

Use the most recent nightly. (I ran Nestopia core.) Go into settings, directories. Set the screenshot directory and savefile directory to some arbitrary directory. Quit Retroarch. Restart again and check the settings. Both directories are set to the directory you chose. Now change both of them to <Content dir>using the start button. Quit Retroarch. Restart again and check the settings. Screenshot is still <Content dir>, but Savefile has forgotten the setting.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/39410015-vita-will-not-save-content-dir-in-directory-for-safefiles?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).
lasers commented 7 years ago

I tested it two times with latest RetroArch on linux. Under Settings --> Directory, the Screenshot & Savefile directories displayed <Content dir> for me. Maybe I need to get a Vita for this...

lasers commented 7 years ago

My findings.

Fire up RetroArch (Default)

screenshot_directory = "default"    <Content dir>
savefile_directory = "ux0:/data/retroarch/savefiles"    ux0:/data/retroarch/savefiles

Change Directories (Arbitrary)

screenshot_directory = "ux0://whatever"    ux0://whatever
savefile_directory = "ux0://whatever"    ux0://whatever

Quit RetroArch. Fire up RetroArch

screenshot_directory = "ux0://whatever"    ux0://whatever
savefile_directory = "ux0://whatever"    ux0://whatever

Change Directories (Default) Quit RetroArch. Fire up RetroArch

screenshot_directory = "default"  <Content dir>
savefile_directory = "ux0:/data/retroarch/savefiles"    ux0:/data/retroarch/savefiles

I don't know if it's a bug. Confusing, maybe.

I found few things out of this report. Cheers!

# Duplicate?
screenshot_directory = "default"
screenshot_directory = "default"

and...

Right now: Settings -> Directory -> (Pick A Directory) -> Set Path --> Settings Should be: Settings -> Directory -> (Pick A Directory) -> Set Path --> Directory

arromdee commented 7 years ago

"Change Directories (Default)"

I didn't change them to the defaiult, I changed them both to <Content dir>. When I quit and restarted, only one of them still said "<Content dir>".

lasers commented 7 years ago

Well... From what I understand, pressing Start button resets an option everywhere. If you said <Content Dir>, then you defaulted both directories without knowing... It might populate your settings from somewhere either from launching or exiting RetroArch.

screenshot_directory = "default"    <Content dir>
savefile_directory = "ux0:/data/retroarch/savefiles"    ux0:/data/retroarch/savefiles

That's just my guess though. Wait for somebody else, maybe.

arromdee commented 7 years ago

If I set the savefile directory, using Start, to '<Content dir>', exit, and restart, the savefile directory is now ux0:/data/retroarch/savefiles. These two are not the same; '<Content Dir>' means that the savefile is located in the directory containing the ROM, while ux0:/data/retroarch/savefiles is a separate directory. Retroarch will actually find a save, then fail to find the save after I restart because it has reset the savefile directory.

If Start is supposed to reset the option, to the default then it still isn't working, because it got reset to one thing and after I restarted, spontaneously changed to another. They can't both be the default, since they are different.

lasers commented 7 years ago

This is what I get when I reset everything (and restarted). Some directories will change. Some directories will remain same. Somebody might need to look into this.

retroarch.cfg (Default)

assets_directory = "app0:/assets"
cache_directory = "ux0:/data/retroarch/temp"
cheat_database_path = "ux0:/data/retroarch/cheats"
content_database_path = "app0:/database/rdb"
core_assets_directory = "ux0:/data/retroarch/downloads"
cursor_directory = "app0:/database/cursors"
dynamic_wallpapers_directory = "default"
input_remapping_directory = "ux0:/data/retroarch/remaps"
libretro_directory = "app0:/"
libretro_info_path = "app0:/info"
osk_overlay_directory = "ux0:/data/retroarch/overlays"
overlay_directory = "ux0:/data/retroarch/overlays"
playlist_directory = "ux0:/data/retroarch/playlists"
rgui_browser_directory = "default"
rgui_config_directory = "ux0:/data/retroarch/config"
savefile_directory = "ux0:/data/retroarch/savefiles"
savestate_directory = "ux0:/data/retroarch/savestates"
screenshot_directory = "default"
screenshot_directory = "default"
system_directory = "ux0:/data/retroarch/system"
thumbnails_directory = "ux0:/data/retroarch/thumbnails"
-------------------------
bundle_assets_dst_path = ""
bundle_assets_dst_path_subdir = ""
bundle_assets_src_path = ""
content_history_path = ""
content_image_history_path = ""
content_music_history_path = ""
content_video_history_path = ""
core_options_path = ""
libretro_path = ""
recording_config_directory = ""
recording_output_directory = ""
resampler_directory = ""
video_font_path = ""

Changing Directories (Default) Quit RetroArch. Fire up RetroArch

Assets <Default>
Audio Filter <Default>
Cache ux0:/data/retroarch/temp
Cheat File ux0:/data/retroarch/cheats
Config <Default>
Content Database app0:/database/rdb
Core Info app0:/info
Core app0:/
Cursor app0:/database/cursors
Downloads <Default>
Dynamic Wallpapers <Default>
File Browser <Default>
Input Device Autoconfig <Default>
Input Remapping ux0:/data/retroarch/remaps
OSK Overlay <Default>
Overlay  <Default>
Playlist <Default>
Savefile ux0:/data/retroarch/savefiles
Savestate ux0:/data/retroarch/states
Screenshot <Content>
System/BIOS <Content>
Thumbnails <Default>
Video Filter <Default>
Video Shader <Default>

Automatically Configured Directories. (Why?) This might be fine.

Cache ux0:/data/retroarch/temp
Cheat File ux0:/data/retroarch/cheats
Content Database app0:/database/rdb
Core Info app0:/info
Core app0:/
Cursor app0:/database/cursors
Input Remapping ux0:/data/retroarch/remaps
Savefile ux0:/data/retroarch/savefiles
Savestate ux0:/data/retroarch/states

Default Directories. (Why?) This might not be fine. Wrong places?

Assets <Default>
Audio Filter <Default>
Config <Default>
Downloads <Default>
Dynamic Wallpapers <Default>
File Browser <Default>
Input Device Autoconfig <Default>
OSK Overlay <Default>
Overlay  <Default>
Playlist <Default>
Screenshot <Content>
System/BIOS <Content>
Thumbnails <Default>
Video Filter <Default>
Video Shader <Default>

I wonder if this could be bad for Vita owners because while automatically configured directories works okay, some directories being defaulted does not always work and can point to wrong places. Avoid using Default on directories on Vita, I guess?

lasers commented 7 years ago

This behavior is almost same on the linux.

#Automatically Configured Directories. Core, Core Info, Content Database, Cursor, Cheat File, Input Autoconfig, Input Remapping.

# Default Directories. System/BIOS, Downloads, Assets, Dynamic Wallpapers, Thumbnails, File Browser, Config, Video Filter, Audio Filter, Video Shader, Recording Output, Recording Config, Overlay, OSK Overlay, Screenshot, Playlist, Savefile, Savestate, Cache.

Defaulting directories does not always default directories. Nuking config easily defaults directories and everything else.

arromdee commented 7 years ago

Again, the problem isn't that the directory is pointing to the wrong place. It's that it doesn't stay at what you changed it to. Start makes it default to one directory (<Content>). Exit and restart and it has changed to a different directory. Whether that is the wrong place or the right place, it shouldn't be different.

lasers commented 7 years ago

I see that. Covering all bases. It's not only savefile. Savestate does that too. @frangarcj @twinaphex.

andres-asm commented 7 years ago

These two lines need to be commented https://github.com/libretro/RetroArch/blob/master/frontend/drivers/platform_psp.c#L131 https://github.com/libretro/RetroArch/blob/master/frontend/drivers/platform_psp.c#L133

For it to be --reseteable-- the same applies to "system". But I'm not the mantainer for VITA, it's up to @twinaphex or @frangarcj. Maybe they want this behavior.

The problem with not having a default is that users get confused and it ends up in a lot of drama. I agree this is counterintuitive. The only way to have this feature work as it is now is to just not ship a default dir for system, saves, states and screenshots.

Maybe we could only enforce a default if a cfg doesn't exist.