diff --git a/src/emu/video.c b/src/emu/video.c index 0d27b56dcf9..a86704da38a 100644 --- a/src/emu/video.c +++ b/src/emu/video.c @@ -2073,13 +2073,15 @@ static void update_refresh_speed(running_machine *machine) } /* compute a target speed as an integral percentage */ - target_speed = floor(minrefresh * 100.0 / ATTOSECONDS_TO_HZ(min_frame_period)); + /* note that we lop 0.25Hz off of the minrefresh when doing the computation to allow for + the fact that most refresh rates are not accurate to 10 digits... */ + target_speed = floor((minrefresh - 0.25f) * 100.0 / ATTOSECONDS_TO_HZ(min_frame_period)); target_speed = MIN(target_speed, original_speed); /* if we changed, log that verbosely */ if (target_speed != global.speed) { - mame_printf_verbose("Adjusting target speed to %d%%\n", target_speed); + mame_printf_verbose("Adjusting target speed to %d%% (hw=%.2fHz, game=%.2fHz, adjusted=%.2fHz)\n", target_speed, minrefresh, ATTOSECONDS_TO_HZ(min_frame_period), ATTOSECONDS_TO_HZ(min_frame_period * 100 / target_speed)); global.speed = target_speed; } }