Small cleanups

This commit is contained in:
libretroadmin 2023-08-12 18:59:29 +02:00
parent 904e9fbe1d
commit 5f79c13928

232
runloop.c
View File

@ -371,7 +371,7 @@ unsigned retro_get_perf_count_libretro(void)
void runloop_performance_counter_register(struct retro_perf_counter *perf)
{
if ( perf->registered
if ( perf->registered
|| runloop_state.perf_ptr_libretro >= MAX_COUNTERS)
return;
@ -487,15 +487,15 @@ static bool runloop_environ_cb_get_system_info(unsigned cmd, void *data)
subsys_rom_info[j].valid_extensions))
free((char *)
subsys_rom_info[j].valid_extensions);
subsys_rom_info[j].desc =
subsys_rom_info[j].desc =
strdup(info[i].roms[j].desc);
subsys_rom_info[j].valid_extensions =
subsys_rom_info[j].valid_extensions =
strdup(info[i].roms[j].valid_extensions);
subsys_rom_info[j].required =
subsys_rom_info[j].required =
info[i].roms[j].required;
subsys_rom_info[j].block_extract =
subsys_rom_info[j].block_extract =
info[i].roms[j].block_extract;
subsys_rom_info[j].need_fullpath =
subsys_rom_info[j].need_fullpath =
info[i].roms[j].need_fullpath;
}
@ -557,7 +557,7 @@ void libretro_get_environment_info(
runloop_st->flags &= ~RUNLOOP_FLAG_IGNORE_ENVIRONMENT_CB;
}
static dylib_t load_dynamic_core(const char *path, char *buf,
static dylib_t load_dynamic_core(const char *path, char *buf,
size_t size)
{
#if defined(ANDROID)
@ -998,7 +998,7 @@ static bool mmap_preprocess_descriptors(
if ((desc->core.len & (desc->core.len - 1)) != 0)
return false;
desc->core.select = top_addr
desc->core.select = top_addr
& ~mmap_inflate(mmap_add_bits_down(desc->core.len - 1),
desc->core.disconnect);
}
@ -1017,12 +1017,12 @@ static bool mmap_preprocess_descriptors(
/* Disconnect unselected bits that are too high to ever
* index into the core's buffer. Higher addresses will
* repeat / mirror the buffer as long as they match select */
while (mmap_highest_bit(top_addr
& ~desc->core.select
while (mmap_highest_bit(top_addr
& ~desc->core.select
& ~desc->core.disconnect) >
mmap_highest_bit(highest_reachable))
desc->core.disconnect |= mmap_highest_bit(top_addr
& ~desc->core.select
desc->core.disconnect |= mmap_highest_bit(top_addr
& ~desc->core.select
& ~desc->core.disconnect);
}
@ -1203,7 +1203,7 @@ static bool validate_folder_specific_options(
* yet exist, provides source path from which initial
* options should be extracted
*
* NOTE: caller must ensure
* NOTE: caller must ensure
* path and src_path are NULL-terminated
*
**/
@ -1212,41 +1212,36 @@ static void runloop_init_core_options_path(
char *path, size_t len,
char *src_path, size_t src_len)
{
char *game_options_path = NULL;
char *folder_options_path = NULL;
char *options_path = NULL;
runloop_state_t *runloop_st = &runloop_state;
bool game_specific_options = settings->bools.game_specific_options;
/* Check whether game-specific options exist */
if ( game_specific_options
&& validate_game_specific_options(&game_options_path))
&& validate_game_specific_options(&options_path))
{
/* Notify system that we have a valid core options
* override */
path_set(RARCH_PATH_CORE_OPTIONS, game_options_path);
path_set(RARCH_PATH_CORE_OPTIONS, options_path);
runloop_st->flags &= ~RUNLOOP_FLAG_FOLDER_OPTIONS_ACTIVE;
runloop_st->flags |= RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE;
/* Copy options path */
strlcpy(path, game_options_path, len);
free(game_options_path);
strlcpy(path, options_path, len);
free(options_path);
}
/* Check whether folder-specific options exist */
else if ( game_specific_options
&& validate_folder_specific_options(
&folder_options_path))
&options_path))
{
/* Notify system that we have a valid core options
* override */
path_set(RARCH_PATH_CORE_OPTIONS, folder_options_path);
path_set(RARCH_PATH_CORE_OPTIONS, options_path);
runloop_st->flags &= ~RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE;
runloop_st->flags |= RUNLOOP_FLAG_FOLDER_OPTIONS_ACTIVE;
/* Copy options path */
strlcpy(path, folder_options_path, len);
free(folder_options_path);
strlcpy(path, options_path, len);
free(options_path);
}
else
{
@ -1277,7 +1272,7 @@ static void runloop_init_core_options_path(
/* If not using per-core options, or if a per-core options
* file does not yet exist, must fetch 'global' options path */
if ( !per_core_options
if ( !per_core_options
|| !per_core_options_exist)
{
const char *options_path = path_core_options;
@ -1358,9 +1353,10 @@ static void runloop_core_msg_queue_push(
struct retro_system_av_info *av_info,
const struct retro_message_ext *msg)
{
double fps;
unsigned duration_frames;
enum message_queue_category category;
/* Get duration in frames */
double fps = (av_info && (av_info->timing.fps > 0)) ? av_info->timing.fps : 60.0;
unsigned duration_frames = (unsigned)((fps * (float)msg->duration / 1000.0f) + 0.5f);
/* Assign category */
switch (msg->level)
@ -1378,10 +1374,6 @@ static void runloop_core_msg_queue_push(
break;
}
/* Get duration in frames */
fps = (av_info && (av_info->timing.fps > 0)) ? av_info->timing.fps : 60.0;
duration_frames = (unsigned)((fps * (float)msg->duration / 1000.0f) + 0.5f);
/* Note: Do not flush the message queue here - a core
* may need to send multiple notifications simultaneously */
runloop_msg_queue_push(msg->msg,
@ -1862,7 +1854,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
/* Handle 'alternate' non-queued notifications */
case RETRO_MESSAGE_TYPE_NOTIFICATION_ALT:
{
video_driver_state_t *video_st =
video_driver_state_t *video_st =
video_state_get_ptr();
dispgfx_widget_t *p_dispwidget = dispwidget_get_ptr();
@ -1879,7 +1871,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
/* Handle 'progress' messages */
case RETRO_MESSAGE_TYPE_PROGRESS:
{
video_driver_state_t *video_st =
video_driver_state_t *video_st =
video_state_get_ptr();
dispgfx_widget_t *p_dispwidget = dispwidget_get_ptr();
@ -1898,7 +1890,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
case RETRO_MESSAGE_TYPE_NOTIFICATION:
default:
{
video_driver_state_t *video_st =
video_driver_state_t *video_st =
video_state_get_ptr();
runloop_core_msg_queue_push(
&video_st->av_info, msg);
@ -1975,7 +1967,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
const char *dir_system = settings->paths.directory_system;
bool systemfiles_in_content_dir = settings->bools.systemfiles_in_content_dir;
if ( string_is_empty(dir_system)
if ( string_is_empty(dir_system)
|| systemfiles_in_content_dir)
{
const char *fullpath = path_get(RARCH_PATH_CONTENT);
@ -2030,7 +2022,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
case RETRO_ENVIRONMENT_SET_PIXEL_FORMAT:
{
video_driver_state_t *video_st =
video_driver_state_t *video_st =
video_state_get_ptr();
enum retro_pixel_format pix_fmt =
*(const enum retro_pixel_format*)data;
@ -2186,7 +2178,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
case RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK:
{
input_driver_state_t
input_driver_state_t
*input_st = input_state_get_ptr();
const struct retro_keyboard_callback *info =
(const struct retro_keyboard_callback*)data;
@ -2294,7 +2286,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
settings_t *settings = config_get_ptr();
struct retro_hw_render_callback *cb =
(struct retro_hw_render_callback*)data;
video_driver_state_t *video_st =
video_driver_state_t *video_st =
video_state_get_ptr();
struct retro_hw_render_callback *hwr =
VIDEO_DRIVER_GET_HW_CONTEXT_INTERNAL(video_st);
@ -2382,11 +2374,11 @@ bool runloop_environment_cb(unsigned cmd, void *data)
case RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK:
#ifdef HAVE_THREADS
{
recording_state_t
recording_state_t
*recording_st = recording_state_get_ptr();
audio_driver_state_t
audio_driver_state_t
*audio_st = audio_state_get_ptr();
const struct
const struct
retro_audio_callback *cb = (const struct retro_audio_callback*)data;
RARCH_LOG("[Environ]: SET_AUDIO_CALLBACK.\n");
#ifdef HAVE_NETWORKING
@ -2473,7 +2465,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
* without video driver initialisation) */
if (audio_latency_new != audio_latency_current)
{
recording_state_t
recording_state_t
*recording_st = recording_state_get_ptr();
video_driver_state_t *video_st = video_state_get_ptr();
bool video_fullscreen = settings->bools.video_fullscreen;
@ -2485,9 +2477,9 @@ bool runloop_environment_cb(unsigned cmd, void *data)
command_event(CMD_EVENT_REINIT, &reinit_flags);
video_driver_set_aspect_ratio();
/* Cannot continue recording with different
/* Cannot continue recording with different
* parameters.
* Take the easiest route out and just restart
* Take the easiest route out and just restart
* the recording. */
if (recording_st->data)
@ -2524,7 +2516,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
case RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES:
{
uint64_t *mask = (uint64_t*)data;
input_driver_state_t
input_driver_state_t
*input_st = input_state_get_ptr();
RARCH_LOG("[Environ]: GET_INPUT_DEVICE_CAPABILITIES.\n");
@ -2571,7 +2563,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
{
struct retro_location_callback *cb =
(struct retro_location_callback*)data;
location_driver_state_t
location_driver_state_t
*location_st = location_state_get_ptr();
RARCH_LOG("[Environ]: GET_LOCATION_INTERFACE.\n");
@ -2657,7 +2649,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
/* First set new refresh rate and display rate, then after REINIT do
* another display rate change to make sure the change stays */
if ( video_switch_refresh_rate
if ( video_switch_refresh_rate
&& video_display_server_set_refresh_rate(refresh_rate))
video_monitor_set_refresh_rate(refresh_rate);
@ -2665,8 +2657,8 @@ bool runloop_environment_cb(unsigned cmd, void *data)
* reinit, otherwise the input driver crashes and the menu gets
* corrupted. */
if (no_video_reinit)
reinit_flags =
DRIVERS_CMD_ALL &
reinit_flags =
DRIVERS_CMD_ALL &
~(DRIVER_VIDEO_MASK | DRIVER_INPUT_MASK |
DRIVER_MENU_MASK);
@ -2690,7 +2682,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
video_display_server_set_refresh_rate(refresh_rate);
/* Cannot continue recording with different parameters.
* Take the easiest route out and just restart
* Take the easiest route out and just restart
* the recording. */
if (recording_st->data)
{
@ -2924,7 +2916,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
/* Can potentially be called every frame,
* don't do anything unless required. */
if ( (geom->base_width != in_geom->base_width)
|| (geom->base_height != in_geom->base_height)
|| (geom->base_height != in_geom->base_height)
|| (geom->aspect_ratio != in_geom->aspect_ratio))
{
geom->base_width = in_geom->base_width;
@ -2942,7 +2934,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
if (settings->bools.video_frame_delay_auto)
video_st->frame_delay_pause = true;
/* TODO: Figure out what to do, if anything, with
/* TODO: Figure out what to do, if anything, with
recording. */
}
else
@ -3206,12 +3198,12 @@ bool runloop_environment_cb(unsigned cmd, void *data)
bool menu_opened = false;
bool core_paused = runloop_st->flags & RUNLOOP_FLAG_PAUSED;
bool no_audio = ((audio_st->flags & AUDIO_FLAG_SUSPENDED)
bool no_audio = ((audio_st->flags & AUDIO_FLAG_SUSPENDED)
|| !(audio_st->flags & AUDIO_FLAG_ACTIVE));
float core_fps = (float)video_st->av_info.timing.fps;
#ifdef HAVE_REWIND
if (runloop_st->rewind_st.flags
if (runloop_st->rewind_st.flags
& STATE_MGR_REWIND_ST_FLAG_FRAME_IS_REVERSED)
{
throttle_state->mode = RETRO_THROTTLE_REWINDING;
@ -3258,7 +3250,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
/* VSync overrides the mode if the rate is limited by the display. */
if ( menu_opened /* Menu currently always runs with vsync on. */
|| (settings->bools.video_vsync
|| (settings->bools.video_vsync
&& (!(runloop_st->flags & RUNLOOP_FLAG_FORCE_NONBLOCK))
&& !(input_state_get_ptr()->flags & INP_FLAG_NONBLOCKING)))
{
@ -3280,7 +3272,7 @@ bool runloop_environment_cb(unsigned cmd, void *data)
&& throttle_state->mode != RETRO_THROTTLE_VSYNC)
{
/* Keep base if frame limiter matching the core is active. */
retro_time_t core_limit = (core_fps
retro_time_t core_limit = (core_fps
? (retro_time_t)(1000000.0f / core_fps)
: (retro_time_t)0);
retro_time_t frame_limit = runloop_st->frame_limit_minimum_time;
@ -3749,7 +3741,7 @@ static void runloop_audio_buffer_status_free(runloop_state_t *runloop_st)
static void runloop_fastmotion_override_free(runloop_state_t *runloop_st)
{
video_driver_state_t
video_driver_state_t
*video_st = video_state_get_ptr();
settings_t *settings = config_get_ptr();
float fastforward_ratio = settings->floats.fastforward_ratio;
@ -3959,7 +3951,7 @@ static void runloop_apply_fastmotion_override(runloop_state_t *runloop_st, setti
* (required if RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE
* is called during core de-initialisation) */
#if defined(HAVE_GFX_WIDGETS)
if ( p_dispwidget->active
if ( p_dispwidget->active
&& !(runloop_st->flags & RUNLOOP_FLAG_FASTMOTION))
video_st->flags &= ~VIDEO_FLAG_WIDGETS_FAST_FORWARD;
#endif
@ -3979,7 +3971,7 @@ static void runloop_apply_fastmotion_override(runloop_state_t *runloop_st, setti
void runloop_event_deinit_core(void)
{
video_driver_state_t
video_driver_state_t
*video_st = video_state_get_ptr();
runloop_state_t *runloop_st = &runloop_state;
settings_t *settings = config_get_ptr();
@ -4073,7 +4065,7 @@ static bool runloop_path_init_subsystem(runloop_state_t *runloop_st)
{
unsigned num_content = MIN(info->num_roms,
subsystem_path_empty
? 0
? 0
: (unsigned)runloop_st->subsystem_fullpaths->size);
for (i = 0; i < num_content; i++)
@ -4117,7 +4109,7 @@ static bool runloop_path_init_subsystem(runloop_state_t *runloop_st)
}
}
/* Let other relevant paths be inferred
/* Let other relevant paths be inferred
from the main SRAM location. */
if (!retroarch_override_setting_is_set(
RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL))
@ -4155,7 +4147,7 @@ static void runloop_path_init_savefile_internal(runloop_state_t *runloop_st)
static void runloop_path_init_savefile(runloop_state_t *runloop_st)
{
bool should_sram_be_used =
bool should_sram_be_used =
(runloop_st->flags & RUNLOOP_FLAG_USE_SRAM)
&& !(runloop_st->flags & RUNLOOP_FLAG_IS_SRAM_SAVE_DISABLED);
@ -4229,7 +4221,7 @@ static bool event_init_content(
are true.
*/
#ifdef HAVE_CHEEVOS
if ( !cheevos_enable
if ( !cheevos_enable
|| !cheevos_hardcore_mode_enable)
#endif
{
@ -4239,7 +4231,7 @@ static bool event_init_content(
if (!(input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_START_PLAYBACK))
#endif
{
if ( runloop_st->entry_state_slot
if ( runloop_st->entry_state_slot
&& !command_event_load_entry_state(settings))
{
/* loading the state failed, reset entry slot */
@ -4331,7 +4323,7 @@ void runloop_set_frame_limit(
runloop_st->frame_limit_minimum_time = 0.0f;
else
runloop_st->frame_limit_minimum_time = (retro_time_t)
roundf(1000000.0f /
roundf(1000000.0f /
(av_info->timing.fps * fastforward_ratio));
}
@ -4339,7 +4331,7 @@ float runloop_get_fastforward_ratio(
settings_t *settings,
struct retro_fastforwarding_override *fastmotion_override)
{
if ( fastmotion_override->fastforward
if ( fastmotion_override->fastforward
&& (fastmotion_override->ratio >= 0.0f))
return fastmotion_override->ratio;
return settings->floats.fastforward_ratio;
@ -4378,7 +4370,7 @@ void runloop_set_video_swap_interval(
* set swap interval to 1 */
if ( (vrr_runloop_enable)
|| (core_hz > timing_hz)
|| (core_hz <= 0.0f)
|| (core_hz <= 0.0f)
|| (timing_hz <= 0.0f))
{
runloop_st->video_swap_interval_auto = 1;
@ -4425,7 +4417,7 @@ unsigned int retroarch_get_core_requested_rotation(void)
}
/*
Returns final rotation including both user chosen video rotation
Returns final rotation including both user chosen video rotation
and core requested rotation if allowed by video_allow_rotate
*/
unsigned int retroarch_get_rotation(void)
@ -4925,7 +4917,7 @@ bool core_options_remove_override(bool game_specific)
/* Sanity check 2 - can only remove an override
* if the specified type is currently active */
if ( game_specific
if ( game_specific
&& !(runloop_st->flags & RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE)
)
goto error;
@ -5114,7 +5106,7 @@ void core_options_flush(void)
if (!string_is_empty(path_core_options))
{
config_file_t *conf_tmp = NULL;
bool path_valid = path_is_valid(path_core_options);
bool path_valid = path_is_valid(path_core_options);
/* Attempt to load existing file */
if (path_valid)
@ -5419,7 +5411,7 @@ static enum runloop_state_enum runloop_check_state(
BIT256_CLEAR_ALL_PTR(&current_bits);
input_st->flags &= ~(INP_FLAG_BLOCK_LIBRETRO_INPUT
input_st->flags &= ~(INP_FLAG_BLOCK_LIBRETRO_INPUT
| INP_FLAG_BLOCK_HOTKEY);
if (input_st->flags & INP_FLAG_KB_MAPPING_BLOCKED)
@ -5452,8 +5444,8 @@ static enum runloop_state_enum runloop_check_state(
if (input_active || (menu_st->input_driver_flushing_input > 0))
{
BIT256_CLEAR_ALL(current_bits);
if ( runloop_paused
&& !runloop_paused_hotkey
if ( runloop_paused
&& !runloop_paused_hotkey
&& settings->bools.menu_pause_libretro)
BIT256_SET(current_bits, RARCH_PAUSE_TOGGLE);
else if (runloop_paused_hotkey)
@ -5497,7 +5489,7 @@ static enum runloop_state_enum runloop_check_state(
HOTKEY_CHECK(RARCH_GRAB_MOUSE_TOGGLE, CMD_EVENT_GRAB_MOUSE_TOGGLE, true, NULL);
/* Automatic mouse grab on focus */
if ( settings->bools.input_auto_mouse_grab
if ( settings->bools.input_auto_mouse_grab
&& (is_focused)
&& (is_focused != (((runloop_st->flags & RUNLOOP_FLAG_FOCUSED)) > 0))
&& !(input_st->flags & INP_FLAG_GRAB_MOUSE_STATE))
@ -5564,10 +5556,10 @@ static enum runloop_state_enum runloop_check_state(
#endif
/*
* If the Aspect Ratio is FULL then update the aspect ratio to the
* If the Aspect Ratio is FULL then update the aspect ratio to the
* current video driver aspect ratio (The full window)
*
* TODO/FIXME
*
* TODO/FIXME
* Should possibly be refactored to have last width & driver width & height
* only be done once when we are using an overlay OR using aspect ratio
* full
@ -5612,7 +5604,7 @@ static enum runloop_state_enum runloop_check_state(
quit_press_twice = settings->bools.quit_press_twice;
/* Check double press if enabled */
if ( trig_quit_key
if ( trig_quit_key
&& quit_press_twice)
{
static retro_time_t quit_key_time = 0;
@ -5915,7 +5907,7 @@ static enum runloop_state_enum runloop_check_state(
runloop_st->flags & RUNLOOP_FLAG_IDLE);
}
if ( (menu_st->flags & MENU_ST_FLAG_ALIVE)
if ( (menu_st->flags & MENU_ST_FLAG_ALIVE)
&& !(runloop_st->flags & RUNLOOP_FLAG_IDLE))
if (display_menu_libretro(runloop_st, input_st,
settings->floats.slowmotion_ratio,
@ -6330,7 +6322,7 @@ static enum runloop_state_enum runloop_check_state(
current_bits, RARCH_FAST_FORWARD_KEY);
bool new_hold_button_state = BIT256_GET(
current_bits, RARCH_FAST_FORWARD_HOLD_KEY);
bool check2 = new_button_state
bool check2 = new_button_state
&& !old_button_state;
if (!check2)
@ -6468,7 +6460,7 @@ static enum runloop_state_enum runloop_check_state(
#ifdef HAVE_REWIND
struct state_manager_rewind_state
*rewind_st = &runloop_st->rewind_st;
if (rewind_st->flags
if (rewind_st->flags
& STATE_MGR_REWIND_ST_FLAG_FRAME_IS_REVERSED)
runloop_msg_queue_push(
msg_hash_to_str(MSG_SLOW_MOTION_REWIND), 1, 1, false, NULL,
@ -6569,12 +6561,12 @@ static enum runloop_state_enum runloop_check_state(
if (check2 && !check1 && replay_slot + addition < -1)
{
replay_slot = 1000;
check1 = true;
check1 = true;
}
}
/* Wrap-around to -1 (Auto) */
else if (replay_slot + addition > 999)
replay_slot = -2;
replay_slot = -2;
if (check2)
{
@ -6670,10 +6662,10 @@ static enum runloop_state_enum runloop_check_state(
*/
if (need_to_apply)
{
timer.current = current_time;
timer.current = current_time;
timer.timeout_us = timer.timeout_end - timer.current;
if ( !timer.timer_end
if ( !timer.timer_end
&& timer.timeout_us <= 0)
{
timer.timer_end = true;
@ -6692,7 +6684,7 @@ static enum runloop_state_enum runloop_check_state(
{
runloop_st->shader_delay_timer.timeout_us = settings->uints.video_shader_delay * 1000;
runloop_st->shader_delay_timer.current = cpu_features_get_time_usec();
runloop_st->shader_delay_timer.timeout_end = runloop_st->shader_delay_timer.current
runloop_st->shader_delay_timer.timeout_end = runloop_st->shader_delay_timer.current
+ runloop_st->shader_delay_timer.timeout_us;
runloop_st->shader_delay_timer.timer_begin = true;
runloop_st->shader_delay_timer.timer_end = false;
@ -6700,7 +6692,7 @@ static enum runloop_state_enum runloop_check_state(
else
{
runloop_st->shader_delay_timer.current = current_time;
runloop_st->shader_delay_timer.timeout_us = runloop_st->shader_delay_timer.timeout_end
runloop_st->shader_delay_timer.timeout_us = runloop_st->shader_delay_timer.timeout_end
- runloop_st->shader_delay_timer.current;
if (runloop_st->shader_delay_timer.timeout_us <= 0)
@ -6886,8 +6878,8 @@ int runloop_iterate(void)
#ifdef HAVE_NETWORKING
#ifdef HAVE_MENU
/* FIXME: This is an ugly way to tell Netplay this... */
if (menu_pause_libretro &&
netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)
if ( menu_pause_libretro
&& netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)
)
netplay_driver_ctl(RARCH_NETPLAY_CTL_PAUSE, NULL);
#endif
@ -6961,16 +6953,16 @@ int runloop_iterate(void)
if (dpad_mode[i] == ANALOG_DPAD_LSTICK)
{
x_plus = RARCH_ANALOG_LEFT_X_PLUS;
y_plus = RARCH_ANALOG_LEFT_Y_PLUS;
x_minus = RARCH_ANALOG_LEFT_X_MINUS;
y_minus = RARCH_ANALOG_LEFT_Y_MINUS;
x_plus = RARCH_ANALOG_LEFT_X_PLUS;
y_plus = RARCH_ANALOG_LEFT_Y_PLUS;
x_minus = RARCH_ANALOG_LEFT_X_MINUS;
y_minus = RARCH_ANALOG_LEFT_Y_MINUS;
}
for (k = RETRO_DEVICE_ID_JOYPAD_UP; k <= RETRO_DEVICE_ID_JOYPAD_RIGHT; k++)
{
(auto_binds)[k].orig_joyaxis = (auto_binds)[k].joyaxis;
(general_binds)[k].orig_joyaxis = (general_binds)[k].joyaxis;
(auto_binds)[k].orig_joyaxis = (auto_binds)[k].joyaxis;
(general_binds)[k].orig_joyaxis = (general_binds)[k].joyaxis;
}
if (!INHERIT_JOYAXIS(auto_binds))
@ -7010,9 +7002,9 @@ int runloop_iterate(void)
static bool skip_delay_prev = false;
bool frame_time_update =
/* Skip some initial frames for stabilization */
video_st->frame_count > frame_time_interval &&
video_st->frame_count > frame_time_interval
/* Only update when there are enough frames for averaging */
video_st->frame_count % frame_time_interval == 0;
&& video_st->frame_count % frame_time_interval == 0;
/* A few frames must be ignored after slow+fastmotion/pause
* is disabled or geometry change is triggered */
@ -7045,17 +7037,17 @@ int runloop_iterate(void)
/* Reset new desired delay target */
if (video_st->frame_delay_target != video_frame_delay)
{
frame_time_update = false;
video_st->frame_delay_target = video_frame_delay_effective = video_frame_delay;
frame_time_update = false;
video_st->frame_delay_target = video_frame_delay_effective = video_frame_delay;
RARCH_LOG("[Video]: Frame delay reset to %d ms.\n", video_frame_delay);
}
/* Decide what should happen to effective delay */
if (video_frame_delay_effective > 0 && frame_time_update)
{
video_frame_delay_auto_t vfda = {0};
vfda.frame_time_interval = frame_time_interval;
vfda.refresh_rate = refresh_rate;
video_frame_delay_auto_t vfda = {0};
vfda.frame_time_interval = frame_time_interval;
vfda.refresh_rate = refresh_rate;
video_frame_delay_auto(video_st, &vfda);
if (vfda.delay_decrease > 0)
@ -7084,10 +7076,10 @@ int runloop_iterate(void)
bool run_ahead_secondary_instance = settings->bools.run_ahead_secondary_instance;
/* Run Ahead Feature replaces the call to core_run in this loop */
bool want_runahead = run_ahead_enabled
&& (run_ahead_num_frames > 0)
&& (run_ahead_num_frames > 0)
&& (runloop_st->flags & RUNLOOP_FLAG_RUNAHEAD_AVAILABLE);
#ifdef HAVE_NETWORKING
want_runahead = want_runahead
want_runahead = want_runahead
&& !netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL);
#endif
@ -7204,9 +7196,9 @@ end:
/* if there's a fast forward limit, inject sleeps to keep from going too fast. */
if (runloop_st->frame_limit_minimum_time)
{
const retro_time_t end_frame_time = cpu_features_get_time_usec();
const retro_time_t to_sleep_ms = (
( runloop_st->frame_limit_last_time
const retro_time_t end_frame_time = cpu_features_get_time_usec();
const retro_time_t to_sleep_ms = (
( runloop_st->frame_limit_last_time
+ runloop_st->frame_limit_minimum_time)
- end_frame_time) / 1000;
@ -7215,7 +7207,7 @@ end:
unsigned sleep_ms = (unsigned)to_sleep_ms;
/* Combat jitter a bit. */
runloop_st->frame_limit_last_time +=
runloop_st->frame_limit_last_time +=
runloop_st->frame_limit_minimum_time;
if (sleep_ms > 0)
@ -7501,7 +7493,7 @@ bool core_set_cheat(retro_ctx_cheat_info_t *info)
run_ahead_frames = settings->uints.run_ahead_frames;
run_ahead_secondary_instance = settings->bools.run_ahead_secondary_instance;
want_runahead = run_ahead_enabled
&& (run_ahead_frames > 0)
&& (run_ahead_frames > 0)
&& (runloop_st->flags & RUNLOOP_FLAG_RUNAHEAD_AVAILABLE);
#ifdef HAVE_NETWORKING
if (want_runahead)
@ -7540,8 +7532,8 @@ bool core_reset_cheat(void)
run_ahead_enabled = settings->bools.run_ahead_enabled;
run_ahead_frames = settings->uints.run_ahead_frames;
run_ahead_secondary_instance = settings->bools.run_ahead_secondary_instance;
want_runahead = run_ahead_enabled
&& (run_ahead_frames > 0)
want_runahead = run_ahead_enabled
&& (run_ahead_frames > 0)
&& (runloop_st->flags & RUNLOOP_FLAG_RUNAHEAD_AVAILABLE);
#ifdef HAVE_NETWORKING
if (want_runahead)
@ -7782,7 +7774,7 @@ void core_run(void)
current_core->retro_run();
if ( late_polling
if ( late_polling
&& (!(current_core->flags & RETRO_CORE_FLAG_INPUT_POLLED)))
input_driver_poll();
@ -7874,7 +7866,7 @@ void runloop_path_set_names(void)
sizeof(runloop_st->name.replay) - len);
}
#endif
#ifdef HAVE_CHEATS
if (!string_is_empty(runloop_st->runtime_content_path_basename))
{
@ -7929,7 +7921,7 @@ void runloop_path_set_redirect(settings_t *settings,
#endif
{
/* Per-core and/or per-content-directory saves */
if (( sort_savefiles_enable
if (( sort_savefiles_enable
|| sort_savefiles_by_content_enable)
&& !string_is_empty(old_savefile_dir))
{
@ -8008,13 +8000,13 @@ void runloop_path_set_redirect(settings_t *settings,
if (string_is_empty(new_savefile_dir))
RARCH_LOG("Cannot resolve save file path.\n");
else if (sort_savefiles_enable
else if (sort_savefiles_enable
|| sort_savefiles_by_content_enable)
RARCH_LOG("Saving files in content directory is set. This overrides other save file directory settings.\n");
}
/* Set savestate directory if empty based on content directory */
if ( string_is_empty(new_savestate_dir)
if ( string_is_empty(new_savestate_dir)
|| savestates_in_content_dir)
{
strlcpy(new_savestate_dir,
@ -8024,7 +8016,7 @@ void runloop_path_set_redirect(settings_t *settings,
if (string_is_empty(new_savestate_dir))
RARCH_LOG("Cannot resolve save state file path.\n");
else if (sort_savestates_enable
else if (sort_savestates_enable
|| sort_savestates_by_content_enable)
RARCH_LOG("Saving save states in content directory is set. This overrides other save state file directory settings.\n");
}