diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index 5d8854c11..1366c2b50 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -278,6 +278,10 @@ void GPU::UpdateCRTCConfig() cs.horizontal_total = 3413; } + const TickCount ticks_per_frame = cs.horizontal_total * cs.vertical_total; + const double vertical_frequency = static_cast((u64(MASTER_CLOCK) * 11) / 7) / static_cast(ticks_per_frame); + m_system->GetHostInterface()->SetThrottleFrequency(vertical_frequency); + const u8 horizontal_resolution_index = m_GPUSTAT.horizontal_resolution_1 | (m_GPUSTAT.horizontal_resolution_2 << 2); cs.dot_clock_divider = dot_clock_dividers[horizontal_resolution_index]; cs.horizontal_display_start = static_cast(std::min(cs.regs.X1, cs.horizontal_total));