dragoonDorise / EmuDeck

Emulator configurator for Steam Deck
GNU General Public License v3.0
2.74k stars 200 forks source link

[Bug Report] install directory unquoted #1191

Closed papaj-na-wrotkach closed 1 month ago

papaj-na-wrotkach commented 2 months ago

Prerequisite Steps

What distro are you running?

Manjaro

Which SteamOS Branch are you using?

Stable

What happened?

I am trying to use EmuDeck with RetroArch on my Manjaro PC. After running EmuDeck setup, I started RetroArch to see how EmuDeck had configured it. I opened Settings -> Directory. The paths using my "rom directory" (the one I picked during EmuDeck setup) are invalid.

My "rom directory" path contains spaces, so they have been truncated by RetroArch to the first space. The RetroArch config file contains full, untrimmed paths, but they are not quoted.

I think EmuDeck should quote the path when necessary - we usually need this path quoted, but there may be situations where quoting is unnecessary or invalid.

Relevant log output

No response

dragoonDorise commented 2 months ago

@papaj-na-wrotkach can you get these lines in your Terminal, see if they fix your issue?

source $HOME/.config/EmuDeck/backend/functions/all.sh

RetroArch_setConfigOverride 'rgui_browser_directory' "\"${romsPath}\"" "$RetroArch_configFile"

papaj-na-wrotkach commented 2 months ago

@papaj-na-wrotkach can you get these lines in your Terminal, see if they fix your issue?

source $HOME/.config/EmuDeck/backend/functions/all.sh

RetroArch_setConfigOverride 'rgui_browser_directory' "\"${romsPath}\"" "$RetroArch_configFile"

Your solution does change the rgui_browser_directory in RetroArch config file correctly, I believe.

Old config

rgui_browser_directory = /run/media/<redacted>/NTFS Data/Games/Emulation/roms

New config

rgui_browser_directory = "/run/media/<redacted>/NTFS Data/Games/Emulation/roms"

In RetroArch not everything seems to be fine. image As you can see the System/BIOS directory is not correct. There's also the Cheat Files directory which has the same problem (not included on the screenshot).

Sorry for not specifying which variables are not correct earlier.

edit: I noticed that in your PR you also changed the other variables. I have tried running:

RetroArch_setConfigOverride 'system_directory' "\"${biosPath}\"" "$RetroArch_configFile"
RetroArch_setConfigOverride 'rgui_browser_directory' "\"${romsPath}\"" "$RetroArch_configFile"
RetroArch_setConfigOverride 'cheat_database_path' "\"${storagePath}/retroarch/cheats\"" "$RetroArch_configFile"
RetroArch_setConfigOverride 'savestate_directory'  "\"$savesPath/retroarch/states\"" "$RetroArch_configFile"
RetroArch_setConfigOverride 'savefile_directory'  "\"$savesPath/retroarch/saves\"" "$RetroArch_configFile"

Now everything seems to be fine, including System/BIOS, Cheat Files, Save Files and Save States directories.