Start creating more CORE_CTL_ callbacks

This commit is contained in:
twinaphex 2016-01-27 03:35:52 +01:00
parent 489b578bf8
commit adcff5b6ec
3 changed files with 25 additions and 6 deletions

View File

@ -393,8 +393,8 @@ static void event_deinit_core(bool reinit)
#endif #endif
event_deinit_core_interfaces(); event_deinit_core_interfaces();
core.retro_unload_game(); core_ctl(CORE_CTL_RETRO_UNLOAD_GAME, NULL);
core.retro_deinit(); core_ctl(CORE_CTL_RETRO_DEINIT, NULL);
if (reinit) if (reinit)
event_cmd_ctl(EVENT_CMD_DRIVERS_DEINIT, NULL); event_cmd_ctl(EVENT_CMD_DRIVERS_DEINIT, NULL);
@ -591,7 +591,7 @@ static bool event_init_core(void)
rarch_ctl(RARCH_CTL_SET_PATHS_REDIRECT, NULL); rarch_ctl(RARCH_CTL_SET_PATHS_REDIRECT, NULL);
rarch_ctl(RARCH_CTL_VERIFY_API_VERSION, NULL); rarch_ctl(RARCH_CTL_VERIFY_API_VERSION, NULL);
core.retro_init(); core_ctl(CORE_CTL_RETRO_INIT, NULL);
global->sram.use = rarch_ctl(RARCH_CTL_IS_PLAIN_CORE, NULL) global->sram.use = rarch_ctl(RARCH_CTL_IS_PLAIN_CORE, NULL)
&& !content_ctl(CONTENT_CTL_DOES_NOT_NEED_CONTENT, NULL); && !content_ctl(CONTENT_CTL_DOES_NOT_NEED_CONTENT, NULL);
@ -1046,8 +1046,7 @@ bool event_cmd_ctl(enum event_command cmd, void *data)
#ifdef HAVE_CHEEVOS #ifdef HAVE_CHEEVOS
cheevos_set_cheats(); cheevos_set_cheats();
#endif #endif
core.retro_reset(); core_ctl(CORE_CTL_RETRO_RESET, NULL);
break; break;
case EVENT_CMD_SAVE_STATE: case EVENT_CMD_SAVE_STATE:
if (settings->savestate_auto_index) if (settings->savestate_auto_index)

View File

@ -171,6 +171,18 @@ bool core_ctl(enum core_ctl_state state, void *data)
{ {
switch (state) switch (state)
{ {
case CORE_CTL_RETRO_RESET:
core.retro_reset();
break;
case CORE_CTL_RETRO_INIT:
core.retro_init();
break;
case CORE_CTL_RETRO_DEINIT:
core.retro_deinit();
break;
case CORE_CTL_RETRO_UNLOAD_GAME:
core.retro_unload_game();
break;
case CORE_CTL_RETRO_RUN: case CORE_CTL_RETRO_RUN:
switch (core.poll_type) switch (core.poll_type)
{ {

View File

@ -50,7 +50,15 @@ enum core_ctl_state
CORE_CTL_SET_CBS_REWIND, CORE_CTL_SET_CBS_REWIND,
/* Runs the core for one frame. */ /* Runs the core for one frame. */
CORE_CTL_RETRO_RUN CORE_CTL_RETRO_RUN,
CORE_CTL_RETRO_INIT,
CORE_CTL_RETRO_DEINIT,
CORE_CTL_RETRO_UNLOAD_GAME,
CORE_CTL_RETRO_RESET
}; };
typedef struct retro_callbacks typedef struct retro_callbacks