diff --git a/driver.c b/driver.c index 3e47573f3f..2879541aa2 100644 --- a/driver.c +++ b/driver.c @@ -392,7 +392,12 @@ void init_drivers(int flags) #ifdef HAVE_MENU if (flags & DRIVER_MENU) + { init_menu(); + + if (driver->menu_ctx && driver->menu_ctx->context_reset) + driver->menu_ctx->context_reset(); + } #endif if (flags & (DRIVER_VIDEO | DRIVER_AUDIO)) diff --git a/menu/menu.c b/menu/menu.c index 735cfbf503..1836be721e 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -76,14 +76,17 @@ static void draw_frame(void) **/ static void menu_update_libretro_info(struct retro_system_info *info) { + driver_t *driver = driver_get_ptr(); #ifndef HAVE_DYNAMIC retro_get_system_info(info); #endif rarch_main_command(RARCH_CMD_CORE_INFO_INIT); - rarch_main_command(RARCH_CMD_LOAD_CORE_PERSIST); - menu_driver_context_reset(); + if (driver->menu_ctx && driver->menu_ctx->context_reset) + driver->menu_ctx->context_reset(); + + rarch_main_command(RARCH_CMD_LOAD_CORE_PERSIST); } static void menu_environment_get(int *argc, char *argv[], diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 83404af312..449533ba98 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -164,8 +164,6 @@ void init_menu(void) RARCH_ERR("Cannot initialize menu lists.\n"); rarch_fail(1, "init_menu()"); } - - menu_driver_context_reset(); } menu_handle_t *menu_driver_get_ptr(void)