From 65f8c8f6cc0f26eb8dd45de237f7c008eb5cf70e Mon Sep 17 00:00:00 2001 From: naari3 Date: Tue, 24 Feb 2026 10:33:08 +0900 Subject: [PATCH] AMMediaboard: derive TestHardware phase2 delay from tick rate Use the existing system reference instead of Core::System::GetInstance(), and calculate the phase 2 scheduling delay from GetTicksPerSecond() instead of hardcoding 50000 ticks. --- Source/Core/Core/HW/DVD/AMMediaboard.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/HW/DVD/AMMediaboard.cpp b/Source/Core/Core/HW/DVD/AMMediaboard.cpp index e4aabfbe80..9a700d4129 100644 --- a/Source/Core/Core/HW/DVD/AMMediaboard.cpp +++ b/Source/Core/Core/HW/DVD/AMMediaboard.cpp @@ -1616,9 +1616,9 @@ u32 ExecuteCommand(std::array& dicmd_buf, u32* diimm_buf, u32 address, u // Schedule phase 2 result after a short delay. { - auto& core_timing = Core::System::GetInstance().GetCoreTiming(); + auto& core_timing = system.GetCoreTiming(); core_timing.RemoveEvent(s_et_test_hw_phase2); - constexpr s64 phase2_delay = 50000; // ~1ms at 486MHz + const s64 phase2_delay = system.GetSystemTimers().GetTicksPerSecond() / 10000; // ~100us core_timing.ScheduleEvent(phase2_delay, s_et_test_hw_phase2, 1); // 1 = Execute2 } @@ -1978,9 +1978,10 @@ u32 ExecuteCommand(std::array& dicmd_buf, u32* diimm_buf, u32 address, u // Schedule phase 2 via CoreTiming. { - auto& core_timing = Core::System::GetInstance().GetCoreTiming(); + auto& core_timing = system.GetCoreTiming(); core_timing.RemoveEvent(s_et_test_hw_phase2); - constexpr s64 phase2_delay = 50000; // ~1ms at 486MHz + const s64 phase2_delay = + system.GetSystemTimers().GetTicksPerSecond() / 10000; // ~100us core_timing.ScheduleEvent(phase2_delay, s_et_test_hw_phase2, 0); // 0 = Execute1 } break;