libretro / libretro/RetroArch

Inconsistent use of trailing slashes in directory paths in retroarch.cfg

Open
#18,918 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Is there an existing issue for this?
  • This is a bug in RetroArch frontend
  • I have searched the existing issues
Description

Appimage 1.22.2

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -vE 'true|false|""|"default"|.lpl"$'

Directory paths with trailing slash (/")

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -E '".*/"$'

assets_directory = "/usr/share/libretro/assets/"
audio_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/audio/"
libretro_directory = "/usr/lib/x86_64-linux-gnu/libretro/"
libretro_info_path = "/usr/share/libretro/info/"
rgui_browser_directory = "~/"
rgui_config_directory = "~/.config/retroarch/config/"
video_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/video/"

Directory paths without trailing slash

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -vE 'true|false|""|"default"|/"|.lpl"$'

cache_directory = "/tmp"
cheat_database_path = "~/.config/retroarch/cheats"
content_database_path = "~/.config/retroarch/database/rdb"
core_assets_directory = "~/.config/retroarch/downloads"
input_remapping_directory = "~/.config/retroarch/config/remaps"
joypad_autoconfig_dir = "~/.config/retroarch/autoconfig"
log_dir = "~/.config/retroarch/logs"
osk_overlay_directory = "~/.config/retroarch/overlays/keyboards"
overlay_directory = "~/.config/retroarch/overlays"
playlist_directory = "~/.config/retroarch/playlists"
recording_config_directory = "~/.config/retroarch/records_config"
recording_output_directory = "~/.config/retroarch/records"
savefile_directory = "~/.config/retroarch/saves"
savestate_directory = "~/.config/retroarch/states"
screenshot_directory = "~/.config/retroarch/screenshots"
system_directory = "~/.config/retroarch/system"
thumbnails_directory = "~/.config/retroarch/thumbnails"
video_shader_dir = "~/.config/retroarch/shaders"

Flatpak 1.22.2

Directory paths with trailing slash (/")

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -E '".*/"$'

assets_directory = "/app/share/libretro/assets/"

Directory paths without trailing slash

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -vE 'true|false|""|"default"|/"|.lpl"$'

audio_filter_dir = "/app/lib/retroarch/filters/audio"
cheat_database_path = "/app/share/libretro/database/cht"
content_database_path = "/app/share/libretro/database/rdb"
core_assets_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/downloads"
cursor_directory = "/app/share/libretro/database/cursors"
input_remapping_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/config/remaps"
joypad_autoconfig_dir = "/app/share/libretro/autoconfig"
libretro_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/cores"
libretro_info_path = "/app/share/libretro/info"
log_dir = "~/.var/app/org.libretro.RetroArch/config/retroarch/logs"
osk_overlay_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/keyboards"
overlay_directory = "/app/share/libretro/overlays"
playlist_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/playlists"
recording_config_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/records_config"
recording_output_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/records"
rgui_config_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/config"
savefile_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/saves"
savestate_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/states"
screenshot_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/screenshots"
system_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/system"
thumbnails_directory = "~/.var/app/org.libretro.RetroArch/config/retroarch/thumbnails"
video_filter_dir = "/app/lib/retroarch/filters/video"
video_shader_dir = "/app/share/libretro/shaders"

Android, AARch64 1.22.2

Directory paths with trailing slash (/")

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -E '".*/"$'

libretro_directory = "/data/user/0/com.retroarch.aarch64/cores/"

Directory paths without trailing slash

grep -E '_dir =|_directory =|_path =' "retroarch.cfg" | sort | grep -vE 'true|false|""|"default"|.lpl|.apk"$'

assets_directory = "/data/user/0/com.retroarch.aarch64/assets"
audio_filter_dir = "/data/user/0/com.retroarch.aarch64/filters/audio"
bundle_assets_dst_path = "/data/user/0/com.retroarch.aarch64"
cache_directory = "/storage/emulated/0/RetroArch/temp"
cheat_database_path = "/storage/emulated/0/RetroArch/cheats"
content_database_path = "/data/user/0/com.retroarch.aarch64/database/rdb"
core_assets_directory = "/storage/emulated/0/RetroArch/downloads"
dynamic_wallpapers_directory = "/data/user/0/com.retroarch.aarch64/assets/wallpapers"
input_remapping_directory = "/storage/emulated/0/RetroArch/config/remaps"
joypad_autoconfig_dir = "/data/user/0/com.retroarch.aarch64/autoconfig"
libretro_info_path = "/data/user/0/com.retroarch.aarch64/info"
log_dir = "/storage/emulated/0/RetroArch/logs"
osk_overlay_directory = "/data/user/0/com.retroarch.aarch64/overlays/keyboards"
overlay_directory = "/data/user/0/com.retroarch.aarch64/overlays"
playlist_directory = "/storage/emulated/0/RetroArch/playlists"
rgui_config_directory = "/storage/emulated/0/RetroArch/config"
savefile_directory = "/storage/emulated/0/RetroArch/saves"
savestate_directory = "/storage/emulated/0/RetroArch/states"
screenshot_directory = "/storage/emulated/0/RetroArch/screenshots"
system_directory = "/storage/emulated/0/RetroArch/system"
thumbnails_directory = "/storage/emulated/0/RetroArch/thumbnails"
video_filter_dir = "/data/user/0/com.retroarch.aarch64/filters/video"
video_shader_dir = "/data/user/0/com.retroarch.aarch64/shaders"
Expected behavior

No response

Steps to reproduce the bug

.

Version/Commit

1.22.2

Bisect Results

No response

Present in the nightly version

I don't know

Platform & operating system

All

Affected Cores

No response

Environment information

No response

Relevant log output

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the grep comparisons against retroarch.cfg for the AppImage, Flatpak, and Android configurations shown. Establish the intended trailing-slash convention first, since Expected behavior is empty, then trace how these settings are generated. Done means the agreed convention is applied consistently across the listed platforms and verified by rerunning the comparisons.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.