diff --git a/Source/Core/Core/ConfigManager.h b/Source/Core/Core/ConfigManager.h index e386cb741f..684dc62334 100644 --- a/Source/Core/Core/ConfigManager.h +++ b/Source/Core/Core/ConfigManager.h @@ -112,7 +112,7 @@ struct SConfig bool bFPRF = false; bool bAccurateNaNs = false; - int iTimingVariance = 40; // in milli secounds + int iTimingVariance = 12; // in milli secounds bool bCPUThread = true; bool bDSPThread = false; bool bDSPHLE = true; diff --git a/Source/Core/Core/HW/SI/SI.cpp b/Source/Core/Core/HW/SI/SI.cpp index 89b1724bb9..3564d60e3e 100644 --- a/Source/Core/Core/HW/SI/SI.cpp +++ b/Source/Core/Core/HW/SI/SI.cpp @@ -647,10 +647,6 @@ void UpdateDevices() } } - // Hinting NetPlay that all controllers will be polled in - // succession, in order to optimize networking - NetPlay::SetSIPollBatching(true); - // Update inputs at the rate of SI // Typically 120hz but is variable g_controller_interface.UpdateInput(); @@ -666,9 +662,6 @@ void UpdateDevices() !!s_channel[3].device->GetData(s_channel[3].in_hi.hex, s_channel[3].in_lo.hex); UpdateInterrupts(); - - // Polling finished - NetPlay::SetSIPollBatching(false); } SIDevices GetDeviceType(int channel) diff --git a/Source/Core/Core/HW/SystemTimers.cpp b/Source/Core/Core/HW/SystemTimers.cpp index 987f102c3b..4e94564755 100644 --- a/Source/Core/Core/HW/SystemTimers.cpp +++ b/Source/Core/Core/HW/SystemTimers.cpp @@ -132,7 +132,7 @@ void IPC_HLE_UpdateCallback(u64 userdata, s64 cyclesLate) void VICallback(u64 userdata, s64 cyclesLate) { - VideoInterface::Update(CoreTiming::GetTicks() - cyclesLate); + VideoInterface::Update(0); CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerHalfLine() - cyclesLate, et_VI); } diff --git a/Source/Core/Core/HW/VideoInterface.cpp b/Source/Core/Core/HW/VideoInterface.cpp index f9f3afc069..0a0e08b50d 100644 --- a/Source/Core/Core/HW/VideoInterface.cpp +++ b/Source/Core/Core/HW/VideoInterface.cpp @@ -817,6 +817,9 @@ static void EndField() // Run when: When a frame is scanned (progressive/interlace) void Update(u64 ticks) { + Core::UpdateInputGate(!SConfig::GetInstance().m_BackgroundInput); + SerialInterface::UpdateDevices(); + // Movie's frame counter should be updated before actually rendering the frame, // in case frame counter display is enabled @@ -854,8 +857,6 @@ void Update(u64 ticks) if (s_half_line_of_next_si_poll == s_half_line_count) { - Core::UpdateInputGate(!SConfig::GetInstance().m_BackgroundInput); - SerialInterface::UpdateDevices(); s_half_line_of_next_si_poll += 2 * SerialInterface::GetPollXLines(); } diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp index 42ab36795e..d2c3dc3c13 100644 --- a/Source/Core/VideoCommon/BPStructs.cpp +++ b/Source/Core/VideoCommon/BPStructs.cpp @@ -276,7 +276,9 @@ static void BPWritten(const BPCmd& bp) } else { + // Temp hack to get lag reduction code working if (destAddr == 0x0) { destAddr = 0x4f0c00; } + // We should be able to get away with deactivating the current bbox tracking // here. Not sure if there's a better spot to put this. // the number of lines copied is determined by the y scale * source efb height