diff --git a/general.h b/general.h index 2fd7c5a35d..51e0e54e07 100644 --- a/general.h +++ b/general.h @@ -463,6 +463,8 @@ void ssnes_load_state(void); void ssnes_save_state(void); void ssnes_state_slot_increase(void); void ssnes_state_slot_decrease(void); + +void ssnes_init_msg_queue(void); ///////// // Public data structures diff --git a/ssnes.c b/ssnes.c index d047fde61f..87d12e32dc 100644 --- a/ssnes.c +++ b/ssnes.c @@ -1192,9 +1192,10 @@ static void deinit_recording(void) } #endif -static void init_msg_queue(void) +void ssnes_init_msg_queue(void) { - ssnes_assert(g_extern.msg_queue = msg_queue_new(8)); + if (!g_extern.msg_queue) + ssnes_assert(g_extern.msg_queue = msg_queue_new(8)); } static void deinit_msg_queue(void) @@ -2307,7 +2308,7 @@ int ssnes_main_init(int argc, char *argv[]) if (!init_rom_file(g_extern.game_type)) goto error; - init_msg_queue(); + ssnes_init_msg_queue(); if (!g_extern.sram_load_disable) load_save_files();