From 199fa2f7f8da46e8b6fe476ba29b6683ecc3a679 Mon Sep 17 00:00:00 2001 From: zilmar Date: Sun, 13 Dec 2015 17:58:08 +1100 Subject: [PATCH] [Project64] Clean up SystemTiming.cpp --- .../N64System/Mips/SystemTiming.cpp | 645 +++++++++--------- .../N64System/Mips/SystemTiming.h | 82 +-- 2 files changed, 362 insertions(+), 365 deletions(-) diff --git a/Source/Project64-core/N64System/Mips/SystemTiming.cpp b/Source/Project64-core/N64System/Mips/SystemTiming.cpp index eb9b8f56d..f61f30da5 100644 --- a/Source/Project64-core/N64System/Mips/SystemTiming.cpp +++ b/Source/Project64-core/N64System/Mips/SystemTiming.cpp @@ -15,392 +15,389 @@ #include #include -CSystemTimer::CSystemTimer( int & NextTimer ) : - m_NextTimer(NextTimer), - m_inFixTimer(false) +CSystemTimer::CSystemTimer(int & NextTimer) : +m_NextTimer(NextTimer), +m_inFixTimer(false) { - } void CSystemTimer::Reset() { - //initialise Structure - for (int i = 0; i < MaxTimer; i++) - { - m_TimerDetatils[i].Active = false; - m_TimerDetatils[i].CyclesToTimer = 0; - } - m_Current = UnknownTimer; - m_LastUpdate = 0; - m_NextTimer = 0; + //initialise Structure + for (int i = 0; i < MaxTimer; i++) + { + m_TimerDetatils[i].Active = false; + m_TimerDetatils[i].CyclesToTimer = 0; + } + m_Current = UnknownTimer; + m_LastUpdate = 0; + m_NextTimer = 0; - SetTimer(ViTimer,50000,false); - SetCompareTimer(); + SetTimer(ViTimer, 50000, false); + SetCompareTimer(); } -void CSystemTimer::SetTimer ( TimerType Type, uint32_t Cycles, bool bRelative ) +void CSystemTimer::SetTimer(TimerType Type, uint32_t Cycles, bool bRelative) { - if (Type >= MaxTimer || Type == UnknownTimer) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - return; - } - UpdateTimers(); - - m_TimerDetatils[Type].Active = true; - if (bRelative) - { - if (m_TimerDetatils[Type].Active) - { - m_TimerDetatils[Type].CyclesToTimer += Cycles; //Add to the timer - } - else - { - m_TimerDetatils[Type].CyclesToTimer = (__int64)Cycles - (__int64)m_NextTimer; //replace the new cycles - } - } - else - { - m_TimerDetatils[Type].CyclesToTimer = (__int64)Cycles - (__int64)m_NextTimer; //replace the new cycles - } - FixTimers(); + if (Type >= MaxTimer || Type == UnknownTimer) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + return; + } + UpdateTimers(); + + m_TimerDetatils[Type].Active = true; + if (bRelative) + { + if (m_TimerDetatils[Type].Active) + { + m_TimerDetatils[Type].CyclesToTimer += Cycles; //Add to the timer + } + else + { + m_TimerDetatils[Type].CyclesToTimer = (__int64)Cycles - (__int64)m_NextTimer; //replace the new cycles + } + } + else + { + m_TimerDetatils[Type].CyclesToTimer = (__int64)Cycles - (__int64)m_NextTimer; //replace the new cycles + } + FixTimers(); } -uint32_t CSystemTimer::GetTimer ( TimerType Type ) +uint32_t CSystemTimer::GetTimer(TimerType Type) { - if (Type >= MaxTimer || Type == UnknownTimer) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - return 0; - } - if (!m_TimerDetatils[Type].Active) - { - return 0; - } - __int64 CyclesToTimer = m_TimerDetatils[Type].CyclesToTimer + m_NextTimer; - if (CyclesToTimer < 0) - { - return 0; - } - if (CyclesToTimer > 0x7FFFFFFF) - { - return 0x7FFFFFFF; - } - return (uint32_t)CyclesToTimer; + if (Type >= MaxTimer || Type == UnknownTimer) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + return 0; + } + if (!m_TimerDetatils[Type].Active) + { + return 0; + } + __int64 CyclesToTimer = m_TimerDetatils[Type].CyclesToTimer + m_NextTimer; + if (CyclesToTimer < 0) + { + return 0; + } + if (CyclesToTimer > 0x7FFFFFFF) + { + return 0x7FFFFFFF; + } + return (uint32_t)CyclesToTimer; } -void CSystemTimer::StopTimer ( TimerType Type ) +void CSystemTimer::StopTimer(TimerType Type) { - if (Type >= MaxTimer || Type == UnknownTimer) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - return; - } - m_TimerDetatils[Type].Active = false; - FixTimers(); + if (Type >= MaxTimer || Type == UnknownTimer) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + return; + } + m_TimerDetatils[Type].Active = false; + FixTimers(); } - void CSystemTimer::FixTimers() { + if (m_inFixTimer) + { + return; + } + m_inFixTimer = true; - if (m_inFixTimer) - { - return; - } - m_inFixTimer = true; - - UpdateTimers(); - if (GetTimer(CompareTimer) > 0x60000000) - { - SetCompareTimer(); - } + UpdateTimers(); + if (GetTimer(CompareTimer) > 0x60000000) + { + SetCompareTimer(); + } - //Update the cycles for the remaining number of cycles to timer - int count; - for (count = 0; count < MaxTimer; count++) - { - if (!m_TimerDetatils[count].Active) - { - continue; - } - m_TimerDetatils[count].CyclesToTimer += m_NextTimer; - } + //Update the cycles for the remaining number of cycles to timer + int count; + for (count = 0; count < MaxTimer; count++) + { + if (!m_TimerDetatils[count].Active) + { + continue; + } + m_TimerDetatils[count].CyclesToTimer += m_NextTimer; + } - //Set Max timer - m_NextTimer = 0x7FFFFFFF; - - //Find the smallest timer left to go - for (count = 0; count < MaxTimer; count++) - { - if (!m_TimerDetatils[count].Active) - { - continue; - } - if (m_TimerDetatils[count].CyclesToTimer >= m_NextTimer) - { - continue; - } - m_NextTimer = (int)m_TimerDetatils[count].CyclesToTimer; - m_Current = (TimerType)count; - } + //Set Max timer + m_NextTimer = 0x7FFFFFFF; - //Move the timer back this value - for (count = 0; count < MaxTimer; count++) - { - if (!m_TimerDetatils[count].Active) - { - continue; - } - m_TimerDetatils[count].CyclesToTimer -= m_NextTimer; - } - m_LastUpdate = m_NextTimer; - m_inFixTimer = false; + //Find the smallest timer left to go + for (count = 0; count < MaxTimer; count++) + { + if (!m_TimerDetatils[count].Active) + { + continue; + } + if (m_TimerDetatils[count].CyclesToTimer >= m_NextTimer) + { + continue; + } + m_NextTimer = (int)m_TimerDetatils[count].CyclesToTimer; + m_Current = (TimerType)count; + } + + //Move the timer back this value + for (count = 0; count < MaxTimer; count++) + { + if (!m_TimerDetatils[count].Active) + { + continue; + } + m_TimerDetatils[count].CyclesToTimer -= m_NextTimer; + } + m_LastUpdate = m_NextTimer; + m_inFixTimer = false; } void CSystemTimer::UpdateTimers() { - int TimeTaken = m_LastUpdate - m_NextTimer; - if (TimeTaken != 0) - { - m_LastUpdate = m_NextTimer; - g_Reg->COUNT_REGISTER += TimeTaken; - g_Reg->RANDOM_REGISTER -= TimeTaken / g_System->CountPerOp(); - while ((int)g_Reg->RANDOM_REGISTER < (int)g_Reg->WIRED_REGISTER) - { - g_Reg->RANDOM_REGISTER += 32 - g_Reg->WIRED_REGISTER; - } - } + int TimeTaken = m_LastUpdate - m_NextTimer; + if (TimeTaken != 0) + { + m_LastUpdate = m_NextTimer; + g_Reg->COUNT_REGISTER += TimeTaken; + g_Reg->RANDOM_REGISTER -= TimeTaken / g_System->CountPerOp(); + while ((int)g_Reg->RANDOM_REGISTER < (int)g_Reg->WIRED_REGISTER) + { + g_Reg->RANDOM_REGISTER += 32 - g_Reg->WIRED_REGISTER; + } + } } void CSystemTimer::TimerDone() { - UpdateTimers(); + UpdateTimers(); -/* uint32_t LastTimer; - if (Profiling) - { - LastTimer = StartTimer(Timer_Done); - } - if (LogOptions.GenerateLog && LogOptions.LogExceptions && !LogOptions.NoInterrupts) - { - LogMessage("%08X: Timer Done (Type: %d CurrentTimer: %d)", *_PROGRAM_COUNTER, m_Current, *_Timer ); - } -*/ - switch (m_Current) - { - case CSystemTimer::CompareTimer: - g_Reg->FAKE_CAUSE_REGISTER |= CAUSE_IP7; - g_Reg->CheckInterrupts(); - UpdateCompareTimer(); - break; - case CSystemTimer::SoftResetTimer: - g_SystemTimer->StopTimer(CSystemTimer::SoftResetTimer); - g_System->ExternalEvent(SysEvent_ResetCPU_SoftDone); - break; - case CSystemTimer::SiTimer: - g_SystemTimer->StopTimer(CSystemTimer::SiTimer); - g_Reg->MI_INTR_REG |= MI_INTR_SI; - g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT; - g_Reg->CheckInterrupts(); - break; - case CSystemTimer::PiTimer: - g_SystemTimer->StopTimer(CSystemTimer::PiTimer); - g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; - g_Reg->MI_INTR_REG |= MI_INTR_PI; - g_Reg->CheckInterrupts(); - break; - case CSystemTimer::ViTimer: - try - { - g_System->RefreshScreen(); - } - catch (...) - { - WriteTraceF(TraceError,__FUNCTION__ ": Exception caught\nFile: %s\nLine: %d",__FILE__,__LINE__); - } - g_Reg->MI_INTR_REG |= MI_INTR_VI; - g_Reg->CheckInterrupts(); - break; - case CSystemTimer::RspTimer: - g_SystemTimer->StopTimer(CSystemTimer::RspTimer); - try - { - g_System->RunRSP(); - } - catch (...) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - } - break; - case CSystemTimer::RSPTimerDlist: - g_SystemTimer->StopTimer(CSystemTimer::RSPTimerDlist); - g_Reg->m_GfxIntrReg |= MI_INTR_DP; - g_Reg->CheckInterrupts(); - break; - case CSystemTimer::AiTimerInterrupt: - g_SystemTimer->StopTimer(CSystemTimer::AiTimerInterrupt); - g_Audio->InterruptTimerDone(); - break; - case CSystemTimer::AiTimerBusy: - g_SystemTimer->StopTimer(CSystemTimer::AiTimerBusy); - g_Audio->BusyTimerDone(); - break; - default: - g_Notify->BreakPoint(__FILE__, __LINE__); - } - //CheckTimer(); - /*if (Profiling) - { - StartTimer(LastTimer); - }*/ + /* uint32_t LastTimer; + if (Profiling) + { + LastTimer = StartTimer(Timer_Done); + } + if (LogOptions.GenerateLog && LogOptions.LogExceptions && !LogOptions.NoInterrupts) + { + LogMessage("%08X: Timer Done (Type: %d CurrentTimer: %d)", *_PROGRAM_COUNTER, m_Current, *_Timer ); + } + */ + switch (m_Current) + { + case CSystemTimer::CompareTimer: + g_Reg->FAKE_CAUSE_REGISTER |= CAUSE_IP7; + g_Reg->CheckInterrupts(); + UpdateCompareTimer(); + break; + case CSystemTimer::SoftResetTimer: + g_SystemTimer->StopTimer(CSystemTimer::SoftResetTimer); + g_System->ExternalEvent(SysEvent_ResetCPU_SoftDone); + break; + case CSystemTimer::SiTimer: + g_SystemTimer->StopTimer(CSystemTimer::SiTimer); + g_Reg->MI_INTR_REG |= MI_INTR_SI; + g_Reg->SI_STATUS_REG |= SI_STATUS_INTERRUPT; + g_Reg->CheckInterrupts(); + break; + case CSystemTimer::PiTimer: + g_SystemTimer->StopTimer(CSystemTimer::PiTimer); + g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; + g_Reg->MI_INTR_REG |= MI_INTR_PI; + g_Reg->CheckInterrupts(); + break; + case CSystemTimer::ViTimer: + try + { + g_System->RefreshScreen(); + } + catch (...) + { + WriteTraceF(TraceError, __FUNCTION__ ": Exception caught\nFile: %s\nLine: %d", __FILE__, __LINE__); + } + g_Reg->MI_INTR_REG |= MI_INTR_VI; + g_Reg->CheckInterrupts(); + break; + case CSystemTimer::RspTimer: + g_SystemTimer->StopTimer(CSystemTimer::RspTimer); + try + { + g_System->RunRSP(); + } + catch (...) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + } + break; + case CSystemTimer::RSPTimerDlist: + g_SystemTimer->StopTimer(CSystemTimer::RSPTimerDlist); + g_Reg->m_GfxIntrReg |= MI_INTR_DP; + g_Reg->CheckInterrupts(); + break; + case CSystemTimer::AiTimerInterrupt: + g_SystemTimer->StopTimer(CSystemTimer::AiTimerInterrupt); + g_Audio->InterruptTimerDone(); + break; + case CSystemTimer::AiTimerBusy: + g_SystemTimer->StopTimer(CSystemTimer::AiTimerBusy); + g_Audio->BusyTimerDone(); + break; + default: + g_Notify->BreakPoint(__FILE__, __LINE__); + } + //CheckTimer(); + /*if (Profiling) + { + StartTimer(LastTimer); + }*/ } void CSystemTimer::SetCompareTimer() { - uint32_t NextCompare = 0x7FFFFFFF; - if (g_Reg) - { - NextCompare = g_Reg->COMPARE_REGISTER - g_Reg->COUNT_REGISTER; - if ((NextCompare & 0x80000000) != 0) - { - NextCompare = 0x7FFFFFFF; - } - } - SetTimer(CompareTimer,NextCompare,false); + uint32_t NextCompare = 0x7FFFFFFF; + if (g_Reg) + { + NextCompare = g_Reg->COMPARE_REGISTER - g_Reg->COUNT_REGISTER; + if ((NextCompare & 0x80000000) != 0) + { + NextCompare = 0x7FFFFFFF; + } + } + SetTimer(CompareTimer, NextCompare, false); } -void CSystemTimer::UpdateCompareTimer ( void ) +void CSystemTimer::UpdateCompareTimer(void) { - SetCompareTimer(); + SetCompareTimer(); } -bool CSystemTimer::SaveAllowed ( void ) +bool CSystemTimer::SaveAllowed(void) { - if (GetTimer(CompareTimer) <= 0) - { - return false; - } - for (int i = 0; i < MaxTimer; i++) - { - if (i == CompareTimer) - { - continue; - } - if (i == ViTimer) - { - continue; - } - if (m_TimerDetatils[i].Active) - { - return false; - } - } - return true; + if (GetTimer(CompareTimer) <= 0) + { + return false; + } + for (int i = 0; i < MaxTimer; i++) + { + if (i == CompareTimer) + { + continue; + } + if (i == ViTimer) + { + continue; + } + if (m_TimerDetatils[i].Active) + { + return false; + } + } + return true; } -void CSystemTimer::SaveData ( void * file ) const +void CSystemTimer::SaveData(void * file) const { - uint32_t TimerDetailsSize = sizeof(TIMER_DETAILS); - uint32_t Entries = sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0]); - zipWriteInFileInZip(file,&TimerDetailsSize,sizeof(TimerDetailsSize)); - zipWriteInFileInZip(file,&Entries,sizeof(Entries)); - zipWriteInFileInZip(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils)); - zipWriteInFileInZip(file,(void *)&m_LastUpdate,sizeof(m_LastUpdate)); - zipWriteInFileInZip(file,&m_NextTimer,sizeof(m_NextTimer)); - zipWriteInFileInZip(file,(void *)&m_Current,sizeof(m_Current)); + uint32_t TimerDetailsSize = sizeof(TIMER_DETAILS); + uint32_t Entries = sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0]); + zipWriteInFileInZip(file, &TimerDetailsSize, sizeof(TimerDetailsSize)); + zipWriteInFileInZip(file, &Entries, sizeof(Entries)); + zipWriteInFileInZip(file, (void *)&m_TimerDetatils, sizeof(m_TimerDetatils)); + zipWriteInFileInZip(file, (void *)&m_LastUpdate, sizeof(m_LastUpdate)); + zipWriteInFileInZip(file, &m_NextTimer, sizeof(m_NextTimer)); + zipWriteInFileInZip(file, (void *)&m_Current, sizeof(m_Current)); } -void CSystemTimer::LoadData ( void * file ) +void CSystemTimer::LoadData(void * file) { - uint32_t TimerDetailsSize, Entries; + uint32_t TimerDetailsSize, Entries; - unzReadCurrentFile( file,&TimerDetailsSize,sizeof(TimerDetailsSize)); - unzReadCurrentFile( file,&Entries,sizeof(Entries)); + unzReadCurrentFile(file, &TimerDetailsSize, sizeof(TimerDetailsSize)); + unzReadCurrentFile(file, &Entries, sizeof(Entries)); - if (TimerDetailsSize != sizeof(TIMER_DETAILS)) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - return; - } - if (Entries != sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0])) - { - g_Notify->BreakPoint(__FILE__, __LINE__); - return; - } + if (TimerDetailsSize != sizeof(TIMER_DETAILS)) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + return; + } + if (Entries != sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0])) + { + g_Notify->BreakPoint(__FILE__, __LINE__); + return; + } - unzReadCurrentFile(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils)); - unzReadCurrentFile(file,(void *)&m_LastUpdate,sizeof(m_LastUpdate)); - unzReadCurrentFile(file,&m_NextTimer,sizeof(m_NextTimer)); - unzReadCurrentFile(file,(void *)&m_Current,sizeof(m_Current)); + unzReadCurrentFile(file, (void *)&m_TimerDetatils, sizeof(m_TimerDetatils)); + unzReadCurrentFile(file, (void *)&m_LastUpdate, sizeof(m_LastUpdate)); + unzReadCurrentFile(file, &m_NextTimer, sizeof(m_NextTimer)); + unzReadCurrentFile(file, (void *)&m_Current, sizeof(m_Current)); } -void CSystemTimer::RecordDifference( CLog &LogFile, const CSystemTimer& rSystemTimer) +void CSystemTimer::RecordDifference(CLog &LogFile, const CSystemTimer& rSystemTimer) { - if (m_LastUpdate != rSystemTimer.m_LastUpdate) - { - LogFile.LogF("Timer-LastUpdate: %X %X\r\n",m_LastUpdate,rSystemTimer.m_LastUpdate); - } - if (m_NextTimer != rSystemTimer.m_NextTimer) - { - LogFile.LogF("Timer-NextTimer: %X %X\r\n",m_NextTimer,rSystemTimer.m_NextTimer); - } - if (m_Current != rSystemTimer.m_Current) - { - LogFile.LogF("Timer-Current %X %X\r\n",m_Current,rSystemTimer.m_Current); - } - if (m_inFixTimer != rSystemTimer.m_inFixTimer) - { - LogFile.LogF("Timer-inFixTimer %X %X\r\n",(int)m_inFixTimer,(int)rSystemTimer.m_inFixTimer); - } + if (m_LastUpdate != rSystemTimer.m_LastUpdate) + { + LogFile.LogF("Timer-LastUpdate: %X %X\r\n", m_LastUpdate, rSystemTimer.m_LastUpdate); + } + if (m_NextTimer != rSystemTimer.m_NextTimer) + { + LogFile.LogF("Timer-NextTimer: %X %X\r\n", m_NextTimer, rSystemTimer.m_NextTimer); + } + if (m_Current != rSystemTimer.m_Current) + { + LogFile.LogF("Timer-Current %X %X\r\n", m_Current, rSystemTimer.m_Current); + } + if (m_inFixTimer != rSystemTimer.m_inFixTimer) + { + LogFile.LogF("Timer-inFixTimer %X %X\r\n", (int)m_inFixTimer, (int)rSystemTimer.m_inFixTimer); + } - for (int i = 0; i < MaxTimer; i++) - { - if (m_TimerDetatils[i].Active != rSystemTimer.m_TimerDetatils[i].Active) - { - LogFile.LogF("Timer-m_TimerDetatils[%d] %X %X\r\n",i,(int)m_TimerDetatils[i].Active,(int)rSystemTimer.m_TimerDetatils[i].Active); - } - if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer) - { - LogFile.LogF("Timer-m_TimerDetatils[%d] 0x%08X, 0x%08X\r\n",i,(uint32_t)m_TimerDetatils[i].CyclesToTimer,(uint32_t)rSystemTimer.m_TimerDetatils[i].CyclesToTimer ); - } - } + for (int i = 0; i < MaxTimer; i++) + { + if (m_TimerDetatils[i].Active != rSystemTimer.m_TimerDetatils[i].Active) + { + LogFile.LogF("Timer-m_TimerDetatils[%d] %X %X\r\n", i, (int)m_TimerDetatils[i].Active, (int)rSystemTimer.m_TimerDetatils[i].Active); + } + if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer) + { + LogFile.LogF("Timer-m_TimerDetatils[%d] 0x%08X, 0x%08X\r\n", i, (uint32_t)m_TimerDetatils[i].CyclesToTimer, (uint32_t)rSystemTimer.m_TimerDetatils[i].CyclesToTimer); + } + } } bool CSystemTimer::operator == (const CSystemTimer& rSystemTimer) const { - if (m_LastUpdate != rSystemTimer.m_LastUpdate) - { - return false; - } - if (m_NextTimer != rSystemTimer.m_NextTimer) - { - return false; - } - if (m_Current != rSystemTimer.m_Current) - { - return false; - } - if (m_inFixTimer != rSystemTimer.m_inFixTimer) - { - return false; - } + if (m_LastUpdate != rSystemTimer.m_LastUpdate) + { + return false; + } + if (m_NextTimer != rSystemTimer.m_NextTimer) + { + return false; + } + if (m_Current != rSystemTimer.m_Current) + { + return false; + } + if (m_inFixTimer != rSystemTimer.m_inFixTimer) + { + return false; + } - for (int i = 0; i < MaxTimer; i++) - { - if (m_TimerDetatils[i].Active != rSystemTimer.m_TimerDetatils[i].Active) - { - return false; - } - if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer) - { - return false; - } - } - return true; + for (int i = 0; i < MaxTimer; i++) + { + if (m_TimerDetatils[i].Active != rSystemTimer.m_TimerDetatils[i].Active) + { + return false; + } + if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer) + { + return false; + } + } + return true; } bool CSystemTimer::operator != (const CSystemTimer& rSystemTimer) const { return !(*this == rSystemTimer); -} +} \ No newline at end of file diff --git a/Source/Project64-core/N64System/Mips/SystemTiming.h b/Source/Project64-core/N64System/Mips/SystemTiming.h index b374c9ddd..a6fec748d 100644 --- a/Source/Project64-core/N64System/Mips/SystemTiming.h +++ b/Source/Project64-core/N64System/Mips/SystemTiming.h @@ -16,56 +16,56 @@ class CSystemTimer { public: - enum TimerType - { - UnknownTimer, - CompareTimer, - SoftResetTimer, - ViTimer, - AiTimerInterrupt, - AiTimerBusy, - AiTimerDMA, - SiTimer, - PiTimer, - RspTimer, - RSPTimerDlist, - MaxTimer - }; + enum TimerType + { + UnknownTimer, + CompareTimer, + SoftResetTimer, + ViTimer, + AiTimerInterrupt, + AiTimerBusy, + AiTimerDMA, + SiTimer, + PiTimer, + RspTimer, + RSPTimerDlist, + MaxTimer + }; - struct TIMER_DETAILS - { - bool Active; - __int64 CyclesToTimer; - }; + struct TIMER_DETAILS + { + bool Active; + __int64 CyclesToTimer; + }; public: - CSystemTimer ( int & NextTimer ); + CSystemTimer(int & NextTimer); void SetTimer(TimerType Type, uint32_t Cycles, bool bRelative); uint32_t GetTimer(TimerType Type); - void StopTimer ( TimerType Type ); - void UpdateTimers (); - void TimerDone (); - void Reset (); - void UpdateCompareTimer (); - bool SaveAllowed (); - - void SaveData ( void * file ) const; - void LoadData ( void * file ); + void StopTimer(TimerType Type); + void UpdateTimers(); + void TimerDone(); + void Reset(); + void UpdateCompareTimer(); + bool SaveAllowed(); - void RecordDifference( CLog &LogFile, const CSystemTimer& rSystemTimer); + void SaveData(void * file) const; + void LoadData(void * file); - TimerType CurrentType() const { return m_Current; } + void RecordDifference(CLog &LogFile, const CSystemTimer& rSystemTimer); - bool operator == (const CSystemTimer& rSystemTimer) const; - bool operator != (const CSystemTimer& rSystemTimer) const; + TimerType CurrentType() const { return m_Current; } + + bool operator == (const CSystemTimer& rSystemTimer) const; + bool operator != (const CSystemTimer& rSystemTimer) const; private: - TIMER_DETAILS m_TimerDetatils[MaxTimer]; - int m_LastUpdate; //Timer at last update - int & m_NextTimer; - TimerType m_Current; - bool m_inFixTimer; + TIMER_DETAILS m_TimerDetatils[MaxTimer]; + int m_LastUpdate; //Timer at last update + int & m_NextTimer; + TimerType m_Current; + bool m_inFixTimer; - void SetCompareTimer(); - void FixTimers(); + void SetCompareTimer(); + void FixTimers(); };