mirror of
https://github.com/libretro/RetroArch
synced 2025-02-15 09:40:11 +00:00
Create frontend_driver_get_salamander_basename
This commit is contained in:
parent
7d6ad7435f
commit
0e7729c660
@ -28,22 +28,16 @@
|
||||
#else
|
||||
#if defined(__CELLOS_LV2__)
|
||||
#define EXT_EXECUTABLES "self|bin"
|
||||
#define SALAMANDER_FILE "EBOOT.BIN"
|
||||
#elif defined(PSP)
|
||||
#define EXT_EXECUTABLES "pbp"
|
||||
#define SALAMANDER_FILE "EBOOT.PBP"
|
||||
#elif defined(VITA)
|
||||
#define EXT_EXECUTABLES "velf"
|
||||
#define SALAMANDER_FILE "default.velf"
|
||||
#elif defined(_XBOX1)
|
||||
#define EXT_EXECUTABLES "xbe"
|
||||
#define SALAMANDER_FILE "default.xbe"
|
||||
#elif defined(_XBOX360)
|
||||
#define EXT_EXECUTABLES "xex"
|
||||
#define SALAMANDER_FILE "default.xex"
|
||||
#elif defined(GEKKO)
|
||||
#define EXT_EXECUTABLES "dol"
|
||||
#define SALAMANDER_FILE "boot.dol"
|
||||
#else
|
||||
#define EXT_EXECUTABLES ""
|
||||
#endif
|
||||
|
@ -372,8 +372,16 @@ static void frontend_gx_set_fork(bool exitspawn, bool start_game, bool restart)
|
||||
if (restart)
|
||||
{
|
||||
char new_path[PATH_MAX_LENGTH];
|
||||
fill_pathname_join(new_path, g_defaults.dir.core, SALAMANDER_FILE, sizeof(new_path));
|
||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, new_path);
|
||||
char salamander_name[PATH_MAX_LENGTH];
|
||||
|
||||
if (frontend_driver_get_salamander_basename(salamander_name,
|
||||
sizeof(salamander_name)))
|
||||
{
|
||||
fill_pathname_join(new_path, g_defaults.dir.core,
|
||||
salamander_name, sizeof(new_path));
|
||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, new_path);
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -107,6 +107,37 @@ frontend_ctx_driver_t *frontend_ctx_init_first(void)
|
||||
return frontend;
|
||||
}
|
||||
|
||||
bool frontend_driver_get_salamander_basename(char *s, size_t len)
|
||||
{
|
||||
#ifdef HAVE_DYNAMIC
|
||||
return false;
|
||||
#else
|
||||
|
||||
#if defined(__CELLOS_LV2__)
|
||||
strlcpy(s, "EBOOT.BIN", len);
|
||||
return true;
|
||||
#elif defined(PSP)
|
||||
strlcpy(s, "EBOOT.PBP", len);
|
||||
return true;
|
||||
#elif defined(VITA)
|
||||
strlcpy(s, "default.velf", len);
|
||||
return true;
|
||||
#elif defined(_XBOX1)
|
||||
strlcpy(s, "default.xbe", len);
|
||||
return true;
|
||||
#elif defined(_XBOX360)
|
||||
strlcpy(s, "default.xex", len);
|
||||
return true;
|
||||
#elif defined(HW_RVL)
|
||||
strlcpy(s, "boot.dol", len);
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef IS_SALAMANDER
|
||||
frontend_ctx_driver_t *frontend_get_ptr(void)
|
||||
{
|
||||
|
@ -140,6 +140,8 @@ void frontend_driver_exitspawn(char *s, size_t len);
|
||||
|
||||
bool frontend_driver_has_fork(void);
|
||||
|
||||
bool frontend_driver_get_salamander_basename(char *s, size_t len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -56,6 +56,7 @@ static void find_first_libretro_core(char *first_file,
|
||||
for (i = 0; i < list->size && !ret; i++)
|
||||
{
|
||||
char fname[PATH_MAX_LENGTH];
|
||||
char salamander_name[PATH_MAX_LENGTH];
|
||||
const char *libretro_elem = (const char*)list->elems[i].data;
|
||||
|
||||
RARCH_LOG("Checking library: \"%s\".\n", libretro_elem);
|
||||
@ -65,9 +66,12 @@ static void find_first_libretro_core(char *first_file,
|
||||
|
||||
fill_pathname_base(fname, libretro_elem, sizeof(fname));
|
||||
|
||||
if (strncmp(fname, SALAMANDER_FILE, sizeof(fname)) == 0)
|
||||
if (!frontend_driver_get_salamander_basename(salamander_name, sizeof(salamander_name)))
|
||||
break;
|
||||
|
||||
if (!strncmp(fname, salamander_name, sizeof(fname)))
|
||||
{
|
||||
if ((i + 1) == list->size)
|
||||
if (list->size == (i + 1))
|
||||
{
|
||||
RARCH_WARN("Entry is RetroArch Salamander itself, but is last entry. No choice but to set it.\n");
|
||||
strlcpy(first_file, fname, size_of_first_file);
|
||||
|
@ -2262,7 +2262,15 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool ho
|
||||
#ifndef HAVE_DYNAMIC
|
||||
if (frontend_driver_has_fork())
|
||||
{
|
||||
if (is_dir || string_is_equal_noncase(path, SALAMANDER_FILE))
|
||||
char salamander_name[PATH_MAX_LENGTH];
|
||||
|
||||
if (frontend_driver_get_salamander_basename(salamander_name, sizeof(salamander_name)))
|
||||
{
|
||||
if (string_is_equal_noncase(path, salamander_name))
|
||||
continue;
|
||||
}
|
||||
|
||||
if (is_dir)
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user