disallow manual frame delay setting in hardcore (#13826)

This commit is contained in:
Jamiras 2022-04-04 17:06:47 -06:00 committed by GitHub
parent 9cbcaf1798
commit dcabde33fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 0 deletions

View File

@ -957,10 +957,21 @@ void rcheevos_validate_config_settings(void)
core_option_manager_t* coreopts = NULL;
struct retro_system_info *system =
&runloop_state_get_ptr()->system.info;
const settings_t* settings = config_get_ptr();
if (!system->library_name || !rcheevos_locals.hardcore_active)
return;
if (!settings->bools.video_frame_delay_auto && settings->uints.video_frame_delay != 0) {
const char* error = "Hardcore paused. Manual video frame delay setting not allowed.";
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", error);
rcheevos_pause_hardcore();
runloop_msg_queue_push(error, 0, 4 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
return;
}
if (!(disallowed_settings
= rc_libretro_get_disallowed_settings(system->library_name)))
return;

View File

@ -7823,6 +7823,12 @@ static void general_write_handler(rarch_setting_t *setting)
*setting->value.target.fraction);
}
break;
#ifdef HAVE_CHEEVOS
case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY:
case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY_AUTO:
rcheevos_validate_config_settings();
break;
#endif
case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO:
driver_ctl(RARCH_DRIVER_CTL_SET_REFRESH_RATE, setting->value.target.fraction);