static bool libretro_get_system_info_static(struct retro_system_info *info, bool *load_no_content) { struct retro_system_info dummy_info = {0}; if (load_no_content) { load_no_content_hook = load_no_content; /* load_no_content gets set in this callback. */ retro_set_environment(environ_cb_get_system_info); /* It's possible that we just set get_system_info callback * to the currently running core. * * Make sure we reset it to the actual environment callback. * Ignore any environment callbacks here in case we're running * on the non-current core. */ ignore_environment_cb = true; retro_set_environment(rarch_environment_cb); ignore_environment_cb = false; } retro_get_system_info(&dummy_info); memcpy(info, &dummy_info, sizeof(*info)); info->library_name = strdup(dummy_info.library_name); info->library_version = strdup(dummy_info.library_version); if (dummy_info.valid_extensions) info->valid_extensions = strdup(dummy_info.valid_extensions); return true; }
/*** * Sets up all of our appropriate callback functions with libretro. */ void setup_callbacks() { retro_set_environment(&retro_environment_callback); retro_set_video_refresh(&retro_video_refresh_callback); retro_set_input_poll(&retro_input_poll_callback); retro_set_input_state(&retro_input_state_callback); retro_set_audio_sample_batch(&retro_audio_sample_batch_callback); }