Create RARCH_CMD_LOAD_CORE

This commit is contained in:
twinaphex 2014-07-22 03:34:28 +02:00
parent d1a85b6d95
commit 176b4f91b6
5 changed files with 11 additions and 13 deletions

View File

@ -2621,10 +2621,9 @@ static int menu_common_iterate(unsigned action)
} }
else if (menu_type == MENU_SETTINGS_CORE) else if (menu_type == MENU_SETTINGS_CORE)
{ {
#if defined(HAVE_DYNAMIC)
fill_pathname_join(g_settings.libretro, dir, path, sizeof(g_settings.libretro)); fill_pathname_join(g_settings.libretro, dir, path, sizeof(g_settings.libretro));
menu_update_system_info(driver.menu, &driver.menu->load_no_rom); rarch_main_command(RARCH_CMD_LOAD_CORE);
#if defined(HAVE_DYNAMIC)
// No ROM needed for this core, load game immediately. // No ROM needed for this core, load game immediately.
if (driver.menu->load_no_rom) if (driver.menu->load_no_rom)
{ {
@ -2637,13 +2636,9 @@ static int menu_common_iterate(unsigned action)
// Core selection on non-console just updates directory listing. // Core selection on non-console just updates directory listing.
// Will take affect on new ROM load. // Will take affect on new ROM load.
#elif defined(RARCH_CONSOLE) #elif defined(RARCH_CONSOLE)
rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)path);
#if defined(GEKKO) && defined(HW_RVL) #if defined(GEKKO) && defined(HW_RVL)
fill_pathname_join(g_extern.fullpath, g_defaults.core_dir, fill_pathname_join(g_extern.fullpath, g_defaults.core_dir,
SALAMANDER_FILE, sizeof(g_extern.fullpath)); SALAMANDER_FILE, sizeof(g_extern.fullpath));
#else
fill_pathname_join(g_settings.libretro, dir, path, sizeof(g_settings.libretro));
#endif #endif
g_extern.lifecycle_state &= ~(1ULL << MODE_GAME); g_extern.lifecycle_state &= ~(1ULL << MODE_GAME);
g_extern.lifecycle_state |= (1ULL << MODE_EXITSPAWN); g_extern.lifecycle_state |= (1ULL << MODE_EXITSPAWN);
@ -2807,7 +2802,7 @@ static int menu_common_iterate(unsigned action)
if (ret == -1) if (ret == -1)
{ {
menu_update_system_info(driver.menu, &driver.menu->load_no_rom); rarch_main_command(RARCH_CMD_LOAD_CORE);
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->defer_decision_automatic) if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->defer_decision_automatic)
driver.menu_ctx->backend->defer_decision_automatic(); driver.menu_ctx->backend->defer_decision_automatic();
} }

View File

@ -346,11 +346,8 @@ static int menu_lakka_iterate(unsigned action)
strlcpy(g_settings.libretro, active_category->libretro, sizeof(g_settings.libretro)); strlcpy(g_settings.libretro, active_category->libretro, sizeof(g_settings.libretro));
#ifdef HAVE_DYNAMIC #ifdef HAVE_DYNAMIC
menu_update_system_info(driver.menu, &driver.menu->load_no_rom); rarch_main_command(RARCH_CMD_LOAD_CORE);
g_extern.lifecycle_state |= (1ULL << MODE_LOAD_GAME); g_extern.lifecycle_state |= (1ULL << MODE_LOAD_GAME);
#else
rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)g_settings.libretro);
rarch_environment_cb(RETRO_ENVIRONMENT_EXEC, (void*)g_extern.fullpath);
#endif #endif
} }
return -1; return -1;

View File

@ -444,7 +444,7 @@ void load_menu_game_new_core(void)
return; return;
#ifdef HAVE_DYNAMIC #ifdef HAVE_DYNAMIC
menu_update_system_info(driver.menu, &driver.menu->load_no_rom); rarch_main_command(RARCH_CMD_LOAD_CORE);
g_extern.lifecycle_state |= (1ULL << MODE_LOAD_GAME); g_extern.lifecycle_state |= (1ULL << MODE_LOAD_GAME);
#else #else
rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)g_settings.libretro); rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)g_settings.libretro);

View File

@ -91,6 +91,7 @@ enum basic_event
{ {
RARCH_CMD_RESET = 1, RARCH_CMD_RESET = 1,
RARCH_CMD_LOAD_CONTENT, RARCH_CMD_LOAD_CONTENT,
RARCH_CMD_LOAD_CORE,
RARCH_CMD_LOAD_STATE, RARCH_CMD_LOAD_STATE,
RARCH_CMD_SAVE_STATE, RARCH_CMD_SAVE_STATE,
RARCH_CMD_TAKE_SCREENSHOT, RARCH_CMD_TAKE_SCREENSHOT,

View File

@ -3086,6 +3086,11 @@ void rarch_main_command(unsigned action)
case RARCH_CMD_LOAD_CONTENT: case RARCH_CMD_LOAD_CONTENT:
#ifdef HAVE_MENU #ifdef HAVE_MENU
load_menu_game_new_core(); load_menu_game_new_core();
#endif
break;
case RARCH_CMD_LOAD_CORE:
#ifdef HAVE_MENU
menu_update_system_info(driver.menu, &driver.menu->load_no_rom);
#endif #endif
break; break;
case RARCH_CMD_LOAD_STATE: case RARCH_CMD_LOAD_STATE: