diff --git a/general.h b/general.h index cf2483f7e9..2b4ac35170 100644 --- a/general.h +++ b/general.h @@ -122,6 +122,7 @@ enum basic_event RARCH_CMD_HISTORY_INIT, RARCH_CMD_CORE_INFO_DEINIT, RARCH_CMD_CORE_INFO_INIT, + RARCH_CMD_CORE_DEINIT, RARCH_CMD_AUDIO_SET_BLOCKING_STATE, RARCH_CMD_AUDIO_SET_NONBLOCKING_STATE, RARCH_CMD_VIDEO_APPLY_STATE_CHANGES, diff --git a/retroarch.c b/retroarch.c index c90803bb14..dff1fb62a2 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1963,7 +1963,7 @@ int rarch_main_init(int argc, char *argv[]) return 0; error: - deinit_core(); + rarch_main_command(RARCH_CMD_CORE_DEINIT); g_extern.main_is_init = false; return 1; @@ -2369,6 +2369,9 @@ void rarch_main_command(unsigned cmd) #endif } break; + case RARCH_CMD_CORE_DEINIT: + deinit_core(); + break; case RARCH_CMD_VIDEO_APPLY_STATE_CHANGES: if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) @@ -2618,7 +2621,7 @@ void rarch_main_deinit(void) rarch_main_command(RARCH_CMD_AUTOSAVE_STATE); - deinit_core(); + rarch_main_command(RARCH_CMD_CORE_DEINIT); rarch_main_command(RARCH_CMD_TEMPORARY_CONTENT_DEINIT); rarch_main_command(RARCH_CMD_SUBSYSTEM_FULLPATHS_DEINIT);