mirror of
https://github.com/libretro/RetroArch
synced 2025-02-16 03:40:12 +00:00
Create frontend_driver_get_salamander_basename
This commit is contained in:
parent
7d6ad7435f
commit
0e7729c660
@ -28,22 +28,16 @@
|
|||||||
#else
|
#else
|
||||||
#if defined(__CELLOS_LV2__)
|
#if defined(__CELLOS_LV2__)
|
||||||
#define EXT_EXECUTABLES "self|bin"
|
#define EXT_EXECUTABLES "self|bin"
|
||||||
#define SALAMANDER_FILE "EBOOT.BIN"
|
|
||||||
#elif defined(PSP)
|
#elif defined(PSP)
|
||||||
#define EXT_EXECUTABLES "pbp"
|
#define EXT_EXECUTABLES "pbp"
|
||||||
#define SALAMANDER_FILE "EBOOT.PBP"
|
|
||||||
#elif defined(VITA)
|
#elif defined(VITA)
|
||||||
#define EXT_EXECUTABLES "velf"
|
#define EXT_EXECUTABLES "velf"
|
||||||
#define SALAMANDER_FILE "default.velf"
|
|
||||||
#elif defined(_XBOX1)
|
#elif defined(_XBOX1)
|
||||||
#define EXT_EXECUTABLES "xbe"
|
#define EXT_EXECUTABLES "xbe"
|
||||||
#define SALAMANDER_FILE "default.xbe"
|
|
||||||
#elif defined(_XBOX360)
|
#elif defined(_XBOX360)
|
||||||
#define EXT_EXECUTABLES "xex"
|
#define EXT_EXECUTABLES "xex"
|
||||||
#define SALAMANDER_FILE "default.xex"
|
|
||||||
#elif defined(GEKKO)
|
#elif defined(GEKKO)
|
||||||
#define EXT_EXECUTABLES "dol"
|
#define EXT_EXECUTABLES "dol"
|
||||||
#define SALAMANDER_FILE "boot.dol"
|
|
||||||
#else
|
#else
|
||||||
#define EXT_EXECUTABLES ""
|
#define EXT_EXECUTABLES ""
|
||||||
#endif
|
#endif
|
||||||
|
@ -372,8 +372,16 @@ static void frontend_gx_set_fork(bool exitspawn, bool start_game, bool restart)
|
|||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
char new_path[PATH_MAX_LENGTH];
|
char new_path[PATH_MAX_LENGTH];
|
||||||
fill_pathname_join(new_path, g_defaults.dir.core, SALAMANDER_FILE, sizeof(new_path));
|
char salamander_name[PATH_MAX_LENGTH];
|
||||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, new_path);
|
|
||||||
|
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
|
#endif
|
||||||
|
|
||||||
|
@ -107,6 +107,37 @@ frontend_ctx_driver_t *frontend_ctx_init_first(void)
|
|||||||
return frontend;
|
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
|
#ifndef IS_SALAMANDER
|
||||||
frontend_ctx_driver_t *frontend_get_ptr(void)
|
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_has_fork(void);
|
||||||
|
|
||||||
|
bool frontend_driver_get_salamander_basename(char *s, size_t len);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -56,6 +56,7 @@ static void find_first_libretro_core(char *first_file,
|
|||||||
for (i = 0; i < list->size && !ret; i++)
|
for (i = 0; i < list->size && !ret; i++)
|
||||||
{
|
{
|
||||||
char fname[PATH_MAX_LENGTH];
|
char fname[PATH_MAX_LENGTH];
|
||||||
|
char salamander_name[PATH_MAX_LENGTH];
|
||||||
const char *libretro_elem = (const char*)list->elems[i].data;
|
const char *libretro_elem = (const char*)list->elems[i].data;
|
||||||
|
|
||||||
RARCH_LOG("Checking library: \"%s\".\n", libretro_elem);
|
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));
|
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");
|
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);
|
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
|
#ifndef HAVE_DYNAMIC
|
||||||
if (frontend_driver_has_fork())
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user