toggle speed limiter (#260)

This commit is contained in:
Logan McNaughton
2025-02-17 13:40:25 +01:00
committed by GitHub
parent 671a961789
commit 17990dfebc
5 changed files with 13 additions and 3 deletions
+7
View File
@@ -152,6 +152,12 @@ bool sdl_event_filter(void *userdata, SDL_Event *event)
SDL_SetWindowFullscreen(window, fullscreen);
}
break;
case SDL_SCANCODE_F:
if (event->key.mod & SDL_KMOD_ALT)
{
callback.enable_speedlimiter = !callback.enable_speedlimiter;
}
break;
case SDL_SCANCODE_ESCAPE:
if (fullscreen)
callback.emu_running = false;
@@ -227,6 +233,7 @@ void rdp_init(void *_window, GFX_INFO _gfx_info, bool _upscale, bool _integer_sc
wsi->begin_frame();
callback.emu_running = true;
callback.enable_speedlimiter = true;
}
void rdp_close()
+1
View File
@@ -24,6 +24,7 @@ extern "C"
bool emu_running;
bool save_state;
bool load_state;
bool enable_speedlimiter;
} CALL_BACK;
void rdp_init(void *_window, GFX_INFO _gfx_info, bool _upscale, bool _integer_scaling, bool _fullscreen);
+1
View File
@@ -435,6 +435,7 @@ impl Device {
field: 0,
delay: 0,
count_per_scanline: 0,
enable_speed_limiter: true,
limiter: None,
vi_counter: 0,
last_origin: 0,
+3 -3
View File
@@ -26,6 +26,7 @@ pub struct Vi {
#[serde(skip)]
pub limiter: Option<governor::DefaultDirectRateLimiter>,
pub count_per_scanline: u64,
pub enable_speed_limiter: bool,
pub vi_counter: u64,
pub last_origin: u32,
pub internal_frame_counter: u64,
@@ -139,14 +140,13 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u
pub fn vertical_interrupt_event(device: &mut device::Device) {
ui::video::check_callback(device);
let mut enable_speed_limiter = true;
if device.netplay.is_some() {
netplay::send_sync_check(device);
enable_speed_limiter = !device.netplay.as_ref().unwrap().fast_forward;
device.vi.enable_speed_limiter = !device.netplay.as_ref().unwrap().fast_forward;
}
device.vi.vi_counter += 1;
if device.vi.vi_counter % device.vi.limit_freq == 0 && enable_speed_limiter {
if device.vi.vi_counter % device.vi.limit_freq == 0 && device.vi.enable_speed_limiter {
speed_limiter(device);
}
ui::video::update_screen();
+1
View File
@@ -92,6 +92,7 @@ pub fn check_callback(device: &mut device::Device) {
} else if callback.load_state {
device.load_state = true;
}
device.vi.enable_speed_limiter = callback.enable_speedlimiter;
}
}