static void frontend_gx_exitspawn(char *s, size_t len) { bool should_load_game = false; #if defined(IS_SALAMANDER) if (!string_is_empty(gx_rom_path)) should_load_game = true; #elif defined(HW_RVL) char salamander_basename[PATH_MAX_LENGTH]; if (gx_fork_mode == FRONTEND_FORK_NONE) return; switch (gx_fork_mode) { case FRONTEND_FORK_CORE_WITH_ARGS: should_load_game = true; break; case FRONTEND_FORK_CORE: /* fall-through */ case FRONTEND_FORK_RESTART: { char new_path[PATH_MAX_LENGTH]; char salamander_name[PATH_MAX_LENGTH]; if (frontend_driver_get_salamander_basename(salamander_name, sizeof(salamander_name))) { fill_pathname_join(new_path, g_defaults.dirs[DEFAULT_DIR_CORE], salamander_name, sizeof(new_path)); path_set(RARCH_PATH_CONTENT, new_path); } } break; case FRONTEND_FORK_NONE: default: break; } frontend_gx_exec(s, should_load_game); frontend_driver_get_salamander_basename(salamander_basename, sizeof(salamander_basename)); /* FIXME/TODO - hack * direct loading failed (out of memory), * try to jump to Salamander, * then load the correct core */ fill_pathname_join(s, g_defaults.dirs[DEFAULT_DIR_CORE], salamander_basename, len); #endif frontend_gx_exec(s, should_load_game); }
static void frontend_gx_exitspawn(char *core_path, size_t sizeof_core_path) { bool should_load_game = false; #if defined(IS_SALAMANDER) if (gx_rom_path[0] != '\0') should_load_game = true; #elif defined(HW_RVL) if (g_extern.lifecycle_state & (1ULL << MODE_EXITSPAWN_START_GAME)) should_load_game = true; frontend_gx_exec(core_path, should_load_game); // FIXME/TODO - hack // direct loading failed (out of memory), try to jump to salamander then load the correct core fill_pathname_join(core_path, g_defaults.core_dir, "boot.dol", sizeof_core_path); #endif frontend_gx_exec(core_path, should_load_game); }
static void frontend_gx_exitspawn(char *s, size_t len) { bool should_load_game = false; #if defined(IS_SALAMANDER) if (!string_is_empty(gx_rom_path)) should_load_game = true; #elif defined(HW_RVL) should_load_game = exitspawn_start_game; if (!exit_spawn) return; frontend_gx_exec(s, should_load_game); /* FIXME/TODO - hack * direct loading failed (out of memory), try to jump to Salamander, * then load the correct core */ fill_pathname_join(s, g_defaults.dir.core, "boot.dol", len); #endif frontend_gx_exec(s, should_load_game); }