diff --git a/command_event.c b/command_event.c index 0d739e509d..4c7c216c8e 100644 --- a/command_event.c +++ b/command_event.c @@ -600,7 +600,7 @@ static bool event_init_core(void) return false; core.poll_type = settings->input.poll_type_behavior; - core_ctl(CORE_CTL_INIT, &retro_ctx); + core_ctl(CORE_CTL_INIT, NULL); rarch_ctl(RARCH_CTL_INIT_SYSTEM_AV_INFO, NULL); return true; diff --git a/libretro_version_1.c b/libretro_version_1.c index 0f58acbf16..0b007ecfbf 100644 --- a/libretro_version_1.c +++ b/libretro_version_1.c @@ -35,7 +35,6 @@ #include "netplay/netplay.h" #endif -struct retro_callbacks retro_ctx; static bool input_polled; @@ -74,9 +73,9 @@ static bool retro_set_default_callbacks(void *data) return true; } -static bool retro_uninit_libretro_cbs(void) +static bool retro_uninit_libretro_cbs(void *data) { - struct retro_callbacks *cbs = (struct retro_callbacks*)&retro_ctx; + struct retro_callbacks *cbs = (struct retro_callbacks*)data; if (!cbs) return false; @@ -169,6 +168,8 @@ static void retro_set_rewind_callbacks(void) bool core_ctl(enum core_ctl_state state, void *data) { + static struct retro_callbacks retro_ctx; + switch (state) { case CORE_CTL_RETRO_CTX_FRAME_CB: @@ -224,9 +225,9 @@ bool core_ctl(enum core_ctl_state state, void *data) retro_set_rewind_callbacks(); break; case CORE_CTL_INIT: - return retro_init_libretro_cbs(data); + return retro_init_libretro_cbs(&retro_ctx); case CORE_CTL_DEINIT: - return retro_uninit_libretro_cbs(); + return retro_uninit_libretro_cbs(&retro_ctx); case CORE_CTL_NONE: default: break; diff --git a/libretro_version_1.h b/libretro_version_1.h index ffd4342418..7a8fce8251 100644 --- a/libretro_version_1.h +++ b/libretro_version_1.h @@ -84,8 +84,6 @@ typedef struct retro_callbacks retro_input_poll_t poll_cb; } retro_callbacks_t; -extern retro_callbacks_t retro_ctx; - bool core_ctl(enum core_ctl_state state, void *data); #ifdef __cplusplus