From 392edb4f84874c8cda373cdd75c03594f6a97c77 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 22 Jun 2014 19:48:10 -0700 Subject: [PATCH] Eat some cycles when switching threads. There's a cost and it seems to be at least this much. Matters for Wipeout Pure when callbacks are allowed to wait. --- Core/HLE/sceKernelThread.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 2886fe2a19..b1bb14ce01 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -3234,6 +3234,9 @@ void __KernelSwitchContext(Thread *target, const char *reason) } #endif + // Switching threads eats some cycles. This is a low approximation. + currentMIPS->downcount -= 3000; + if (target) { // No longer waiting.