libretro: Do SET_CORE_OPTIONS unconditionally
This commit is contained in:
parent
57cf40d1ae
commit
068b244303
|
@ -36,6 +36,7 @@ retro_input_state_t g_retro_input_state_callback;
|
||||||
|
|
||||||
static retro_log_callback s_libretro_log_callback = {};
|
static retro_log_callback s_libretro_log_callback = {};
|
||||||
static bool s_libretro_log_callback_valid = false;
|
static bool s_libretro_log_callback_valid = false;
|
||||||
|
static bool s_libretro_log_callback_registered = false;
|
||||||
|
|
||||||
static void LibretroLogCallback(void* pUserParam, const char* channelName, const char* functionName, LOGLEVEL level,
|
static void LibretroLogCallback(void* pUserParam, const char* channelName, const char* functionName, LOGLEVEL level,
|
||||||
const char* message)
|
const char* message)
|
||||||
|
@ -64,8 +65,16 @@ void LibretroHostInterface::InitLogging()
|
||||||
{
|
{
|
||||||
s_libretro_log_callback_valid =
|
s_libretro_log_callback_valid =
|
||||||
g_retro_environment_callback(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &s_libretro_log_callback);
|
g_retro_environment_callback(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &s_libretro_log_callback);
|
||||||
|
if (s_libretro_log_callback_registered)
|
||||||
|
{
|
||||||
|
Log::UnregisterCallback(LibretroLogCallback, nullptr);
|
||||||
|
s_libretro_log_callback_registered = false;
|
||||||
|
}
|
||||||
if (s_libretro_log_callback_valid)
|
if (s_libretro_log_callback_valid)
|
||||||
|
{
|
||||||
Log::RegisterCallback(LibretroLogCallback, nullptr);
|
Log::RegisterCallback(LibretroLogCallback, nullptr);
|
||||||
|
s_libretro_log_callback_registered = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LibretroHostInterface::Initialize()
|
bool LibretroHostInterface::Initialize()
|
||||||
|
|
|
@ -121,16 +121,12 @@ RETRO_API size_t retro_get_memory_size(unsigned id)
|
||||||
|
|
||||||
RETRO_API void retro_set_environment(retro_environment_t f)
|
RETRO_API void retro_set_environment(retro_environment_t f)
|
||||||
{
|
{
|
||||||
static bool core_options_set = false;
|
|
||||||
|
|
||||||
g_retro_environment_callback = f;
|
g_retro_environment_callback = f;
|
||||||
if (!core_options_set)
|
|
||||||
{
|
if (!g_libretro_host_interface.SetCoreOptions())
|
||||||
core_options_set = true;
|
Log_WarningPrintf("Failed to set core options, settings will not be changeable.");
|
||||||
g_libretro_host_interface.InitLogging();
|
|
||||||
if (!g_libretro_host_interface.SetCoreOptions())
|
g_libretro_host_interface.InitLogging();
|
||||||
Log_WarningPrintf("Failed to set core options, settings will not be changeable.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RETRO_API void retro_set_video_refresh(retro_video_refresh_t f)
|
RETRO_API void retro_set_video_refresh(retro_video_refresh_t f)
|
||||||
|
|
Loading…
Reference in New Issue