From 64446b8ed720dd9788f68ad5cc0ddd43de7f949d Mon Sep 17 00:00:00 2001 From: Craig Carnell <1188869+cscd98@users.noreply.github.com> Date: Tue, 1 Sep 2026 10:37:40 +0100 Subject: [PATCH] Set sHatariHomeDir to retroarch\saves directory for retro core --- src/paths.c | 20 ++++++++++++++++++++ src/retro/main_retro.h | 1 + 2 files changed, 21 insertions(+) diff --git a/src/paths.c b/src/paths.c index 8a45d5287..bd71f555b 100644 --- a/src/paths.c +++ b/src/paths.c @@ -17,6 +17,10 @@ const char Paths_fileid[] = "Hatari paths.c"; #include "paths.h" #include "str.h" +#ifdef LIBRETRO +extern const char *retro_save_directory; +#endif + #if defined(WIN32) && !defined(mkdir) #define mkdir(name,mode) mkdir(name) #endif /* WIN32 */ @@ -228,6 +232,22 @@ static void Paths_InitHomeDirs(void) strcat(sUserHomeDir, psHome); } } +#endif +#if defined(LIBRETRO) + if (retro_save_directory && retro_save_directory[0]) + { + sUserHomeDir = Str_Dup(retro_save_directory); + sHatariHomeDir = Str_Dup(retro_save_directory); + + if (!File_DirExists(sHatariHomeDir)) + { + if (mkdir(sHatariHomeDir, 0750) != 0) + { + perror("Failed to create libretro save directory"); + } + } + return; + } #endif if (!sUserHomeDir) { diff --git a/src/retro/main_retro.h b/src/retro/main_retro.h index 71e794010..c72270cc9 100644 --- a/src/retro/main_retro.h +++ b/src/retro/main_retro.h @@ -7,6 +7,7 @@ extern bool has_cpu_config_changed; extern const char *retro_system_directory; +extern const char *retro_save_directory; extern retro_environment_t environment_cb; extern retro_video_refresh_t video_refresh_cb; extern retro_input_state_t input_state_cb;