Skip to content

Commit

Permalink
VI: derive field timing from VI registers
Browse files Browse the repository at this point in the history
  • Loading branch information
booto committed Jul 7, 2015
1 parent c54534e commit 465f5bf
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 180 deletions.
4 changes: 2 additions & 2 deletions Source/Core/Core/HW/SI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -581,11 +581,11 @@ int GetTicksToNextSIPoll()
return SystemTimers::GetTicksPerSecond() / VideoInterface::TargetRefreshRate / 2;

if (!g_Poll.Y && g_Poll.X)
return VideoInterface::GetTicksPerLine() * g_Poll.X;
return 2 * VideoInterface::GetTicksPerHalfLine() * g_Poll.X;
else if (!g_Poll.Y)
return SystemTimers::GetTicksPerSecond() / 60;

return std::min(VideoInterface::GetTicksPerFrame() / g_Poll.Y, VideoInterface::GetTicksPerLine() * g_Poll.X);
return std::min(VideoInterface::GetTicksPerField() / g_Poll.Y, 2 * VideoInterface::GetTicksPerHalfLine() * g_Poll.X);
}

} // end of namespace SerialInterface
10 changes: 5 additions & 5 deletions Source/Core/Core/HW/SystemTimers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ static void IPC_HLE_UpdateCallback(u64 userdata, int cyclesLate)
static void VICallback(u64 userdata, int cyclesLate)
{
VideoInterface::Update();
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerLine() - cyclesLate, et_VI);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerHalfLine() - cyclesLate, et_VI);
}

static void SICallback(u64 userdata, int cyclesLate)
Expand Down Expand Up @@ -185,7 +185,7 @@ static void PatchEngineCallback(u64 userdata, int cyclesLate)
{
// Patch mem and run the Action Replay
PatchEngine::ApplyFramePatches();
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerFrame() - cyclesLate, et_PatchEngine);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerField() - cyclesLate, et_PatchEngine);
}

static void ThrottleCallback(u64 last_time, int cyclesLate)
Expand Down Expand Up @@ -259,16 +259,16 @@ void Init()
et_PatchEngine = CoreTiming::RegisterEvent("PatchEngine", PatchEngineCallback);
et_Throttle = CoreTiming::RegisterEvent("Throttle", ThrottleCallback);

CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerLine(), et_VI);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerHalfLine(), et_VI);
CoreTiming::ScheduleEvent(0, et_DSP);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerFrame(), et_SI);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerField(), et_SI);
CoreTiming::ScheduleEvent(AUDIO_DMA_PERIOD, et_AudioDMA);
CoreTiming::ScheduleEvent(0, et_Throttle, Common::Timer::GetTimeMs());
if (SConfig::GetInstance().bCPUThread && SConfig::GetInstance().bSyncGPU)
CoreTiming::ScheduleEvent(0, et_CP);
s_last_sync_gpu_tick = CoreTiming::GetTicks();

CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerFrame(), et_PatchEngine);
CoreTiming::ScheduleEvent(VideoInterface::GetTicksPerField(), et_PatchEngine);

if (SConfig::GetInstance().bWii)
CoreTiming::ScheduleEvent(IPC_HLE_PERIOD, et_IPC_HLE);
Expand Down
Loading

0 comments on commit 465f5bf

Please sign in to comment.