From 2968cb138c3948a12eff278c33364a371bbc4fee Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 20 Nov 2014 18:23:05 +1100 Subject: [PATCH] Fixed the fast disc speed option (immediately service the interrupt instead of going through the scheduler). --- Source/Core/Core/HW/DVDInterface.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/DVDInterface.cpp b/Source/Core/Core/HW/DVDInterface.cpp index 825c9bce8a..95c26c5fb3 100644 --- a/Source/Core/Core/HW/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVDInterface.cpp @@ -1046,8 +1046,19 @@ void ExecuteCommand() break; } - // The transfer is finished after a delay - CoreTiming::ScheduleEvent((int)ticks_until_TC, tc); + if (ticks_until_TC) + { + // The transfer is finished after a delay + CoreTiming::ScheduleEvent((int)ticks_until_TC, tc); + } + else + { + // transfer is done + m_DICR.TSTART = 0; + m_DILENGTH.Length = 0; + GenerateDIInterrupt(INT_TCINT); + g_ErrorCode = 0; + } } // Simulates the timing aspects of reading data from a disc.