diff --git a/driver.c b/driver.c index 8352bebf69..2e4ebcda3d 100644 --- a/driver.c +++ b/driver.c @@ -361,6 +361,15 @@ void init_drivers(void) adjust_system_rates(); + // adjust timers first before resetting frame count + for (unsigned i = 0; i < sizeof(g_extern.delay_timer) / sizeof(g_extern.delay_timer[0]); i++) + { + if (g_extern.delay_timer[i] > g_extern.frame_count) + g_extern.delay_timer[i] -= g_extern.frame_count; + else + g_extern.delay_timer[i] = 0; + } + g_extern.frame_count = 0; init_video_input();