Eat some CPU cycles in sceUtilityOskUpdate. Works around timing bug in Ghost Recon Predator.

The bug is in the game, it uses the wrong vblank wait, but it only works
because the dialog processing takes so much time that it misses the
vblank period anyway.

Fixes #12044, and hopefully won't break anything else.
This commit is contained in:
Henrik Rydgård 2023-02-14 20:14:49 +01:00
parent 5ce43215b9
commit 78f3d450ff

View File

@ -641,6 +641,9 @@ static int sceUtilityOskUpdate(int animSpeed) {
return hleLogWarning(SCEUTILITY, SCE_ERROR_UTILITY_WRONG_TYPE, "wrong dialog type");
}
// This is the vblank period, plus a little slack. Needed to fix timing bug in Ghost Recon: Predator.
// See issue #12044.
hleEatCycles(msToCycles(0.7315 + 0.1));
return hleLogSuccessX(SCEUTILITY, oskDialog->Update(animSpeed));
}