From 176b4f91b674e9c08c2e84b75199b04fdb6ef7d8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 22 Jul 2014 03:34:28 +0200 Subject: [PATCH] Create RARCH_CMD_LOAD_CORE --- frontend/menu/backend/menu_common_backend.c | 11 +++-------- frontend/menu/backend/menu_lakka_backend.c | 5 +---- frontend/menu/menu_common.c | 2 +- general.h | 1 + retroarch.c | 5 +++++ 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 17a91bd05b..6f51e07fa0 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -2621,10 +2621,9 @@ static int menu_common_iterate(unsigned action) } else if (menu_type == MENU_SETTINGS_CORE) { -#if defined(HAVE_DYNAMIC) 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. 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. // Will take affect on new ROM load. #elif defined(RARCH_CONSOLE) - rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)path); - #if defined(GEKKO) && defined(HW_RVL) fill_pathname_join(g_extern.fullpath, g_defaults.core_dir, SALAMANDER_FILE, sizeof(g_extern.fullpath)); -#else - fill_pathname_join(g_settings.libretro, dir, path, sizeof(g_settings.libretro)); #endif g_extern.lifecycle_state &= ~(1ULL << MODE_GAME); g_extern.lifecycle_state |= (1ULL << MODE_EXITSPAWN); @@ -2807,7 +2802,7 @@ static int menu_common_iterate(unsigned action) 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) driver.menu_ctx->backend->defer_decision_automatic(); } diff --git a/frontend/menu/backend/menu_lakka_backend.c b/frontend/menu/backend/menu_lakka_backend.c index 75751a5523..b4a2fe44f6 100644 --- a/frontend/menu/backend/menu_lakka_backend.c +++ b/frontend/menu/backend/menu_lakka_backend.c @@ -346,11 +346,8 @@ static int menu_lakka_iterate(unsigned action) strlcpy(g_settings.libretro, active_category->libretro, sizeof(g_settings.libretro)); #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); -#else - rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)g_settings.libretro); - rarch_environment_cb(RETRO_ENVIRONMENT_EXEC, (void*)g_extern.fullpath); #endif } return -1; diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 8ecbb734c6..85f7ba3fa0 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -444,7 +444,7 @@ void load_menu_game_new_core(void) return; #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); #else rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)g_settings.libretro); diff --git a/general.h b/general.h index 768ac78b50..af7e31265c 100644 --- a/general.h +++ b/general.h @@ -91,6 +91,7 @@ enum basic_event { RARCH_CMD_RESET = 1, RARCH_CMD_LOAD_CONTENT, + RARCH_CMD_LOAD_CORE, RARCH_CMD_LOAD_STATE, RARCH_CMD_SAVE_STATE, RARCH_CMD_TAKE_SCREENSHOT, diff --git a/retroarch.c b/retroarch.c index 8811008888..5e458f171b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3086,6 +3086,11 @@ void rarch_main_command(unsigned action) case RARCH_CMD_LOAD_CONTENT: #ifdef HAVE_MENU 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 break; case RARCH_CMD_LOAD_STATE: