diff --git a/Source/Core/Core/CoreTiming.cpp b/Source/Core/Core/CoreTiming.cpp index e52d49cbe5..a8f8667e37 100644 --- a/Source/Core/Core/CoreTiming.cpp +++ b/Source/Core/Core/CoreTiming.cpp @@ -63,9 +63,6 @@ u64 fakeTBStartTicks; static int ev_lost; - -static void (*advanceCallback)(int cyclesExecuted) = nullptr; - static Event* GetNewEvent() { if (!eventPool) @@ -303,42 +300,13 @@ void ScheduleEvent(int cyclesIntoFuture, int event_type, u64 userdata) AddEventToQueue(ne); } -void RegisterAdvanceCallback(void (*callback)(int cyclesExecuted)) -{ - advanceCallback = callback; -} - -bool IsScheduled(int event_type) -{ - if (!first) - return false; - Event *e = first; - while (e) - { - if (e->type == event_type) - return true; - e = e->next; - } - return false; -} - void RemoveEvent(int event_type) { - if (!first) - return; - - while (first) + while (first && first->type == event_type) { - if (first->type == event_type) - { - Event *next = first->next; - FreeEvent(first); - first = next; - } - else - { - break; - } + Event* next = first->next; + FreeEvent(first); + first = next; } if (!first) @@ -368,11 +336,6 @@ void RemoveAllEvents(int event_type) RemoveEvent(event_type); } -void SetMaximumSlice(int maximumSliceLength) -{ - maxSliceLength = maximumSliceLength; -} - void ForceExceptionCheck(int cycles) { if (DowncountToCycles(PowerPC::ppcState.downcount) > cycles) @@ -382,11 +345,6 @@ void ForceExceptionCheck(int cycles) } } -void ResetSliceLength() -{ - maxSliceLength = MAX_SLICE_LENGTH; -} - //This raise only the events required while the fifo is processing data void ProcessFifoWaitEvents() @@ -434,21 +392,14 @@ void Advance() lastOCFactor = SConfig::GetInstance().m_OCEnable ? SConfig::GetInstance().m_OCFactor : 1.0f; PowerPC::ppcState.downcount = CyclesToDowncount(slicelength); - while (first) + while (first && first->time <= globalTimer) { - if (first->time <= globalTimer) - { - //LOG(POWERPC, "[Scheduler] %s (%lld, %lld) ", - // event_types[first->type].name ? event_types[first->type].name : "?", (u64)globalTimer, (u64)first->time); - Event* evt = first; - first = first->next; - event_types[evt->type].callback(evt->userdata, (int)(globalTimer - evt->time)); - FreeEvent(evt); - } - else - { - break; - } + //LOG(POWERPC, "[Scheduler] %s (%lld, %lld) ", + // event_types[first->type].name ? event_types[first->type].name : "?", (u64)globalTimer, (u64)first->time); + Event* evt = first; + first = first->next; + event_types[evt->type].callback(evt->userdata, (int)(globalTimer - evt->time)); + FreeEvent(evt); } if (!first) @@ -463,9 +414,6 @@ void Advance() slicelength = maxSliceLength; PowerPC::ppcState.downcount = CyclesToDowncount(slicelength); } - - if (advanceCallback) - advanceCallback(cyclesExecuted); } void LogPendingEvents() diff --git a/Source/Core/Core/CoreTiming.h b/Source/Core/Core/CoreTiming.h index 69d92871ae..236df47231 100644 --- a/Source/Core/Core/CoreTiming.h +++ b/Source/Core/Core/CoreTiming.h @@ -52,7 +52,6 @@ void ScheduleEvent_Threadsafe_Immediate(int event_type, u64 userdata = 0); // We only permit one event of each type in the queue at a time. void RemoveEvent(int event_type); void RemoveAllEvents(int event_type); -bool IsScheduled(int event_type); void Advance(); void MoveEvents(); void ProcessFifoWaitEvents(); @@ -64,10 +63,6 @@ void Idle(); void ClearPendingEvents(); void LogPendingEvents(); -void SetMaximumSlice(int maximumSliceLength); -void ResetSliceLength(); - -void RegisterAdvanceCallback(void (*callback)(int cyclesExecuted)); std::string GetScheduledEventsSummary();