From a47c88d65885bf5f64561bcb7cb331c075ef0e09 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Mon, 21 Oct 2013 01:59:38 -0700 Subject: [PATCH] Run missed handlers when setting vtimer time. --- Core/HLE/sceKernelVTimer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceKernelVTimer.cpp b/Core/HLE/sceKernelVTimer.cpp index f29b2a2261..264cdf9287 100644 --- a/Core/HLE/sceKernelVTimer.cpp +++ b/Core/HLE/sceKernelVTimer.cpp @@ -307,7 +307,10 @@ u64 sceKernelGetVTimerTimeWide(u32 uid) { u64 __KernelSetVTimer(VTimer *vt, u64 time) { u64 current = __getVTimerCurrentTime(vt); - vt->nvt.current = time; + vt->nvt.current = time - __getVTimerRunningTime(vt); + + // Run if we're now passed the schedule. + __KernelScheduleVTimer(vt, vt->nvt.schedule); return current; }