diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index 6b09d453a..ad4609bdf 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -61,6 +61,12 @@ void GPU::UpdateSettings() UpdateCRTCDisplayParameters(); } +void GPU::UpdateHardwareType() +{ + m_console_is_pal = m_system->IsPALRegion(); + UpdateCRTCDisplayParameters(); +} + void GPU::Reset() { SoftReset(); diff --git a/src/core/gpu.h b/src/core/gpu.h index 423bdbc93..938876249 100644 --- a/src/core/gpu.h +++ b/src/core/gpu.h @@ -169,6 +169,9 @@ public: // Converts window coordinates into horizontal ticks and scanlines. Returns false if out of range. Used for lightguns. bool ConvertScreenCoordinatesToBeamTicksAndLines(s32 window_x, s32 window_y, u32* out_tick, u32* out_line) const; + // Updates hardware type from settings. + void UpdateHardwareType(); + protected: TickCount GPUTicksToSystemTicks(TickCount gpu_ticks, TickCount fractional_ticks) const; TickCount SystemTicksToGPUTicks(TickCount sysclk_ticks, TickCount* fractional_ticks) const; diff --git a/src/core/system.cpp b/src/core/system.cpp index 3bd4884ba..e86fc2f49 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -260,7 +260,7 @@ void System::InitializeComponents() m_timers->Initialize(this, m_interrupt_controller.get(), m_gpu.get()); m_spu->Initialize(this, m_dma.get(), m_interrupt_controller.get()); m_mdec->Initialize(this, m_dma.get()); - m_gpu->UpdateSettings(); + m_gpu->UpdateHardwareType(); UpdateThrottlePeriod(); }