From 446418d783eb112747abfbfa7affc023d6cd11e0 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Tue, 4 Mar 2014 07:55:08 -0800 Subject: [PATCH] Properly reset some state between games. --- Core/HLE/sceKernel.cpp | 2 ++ Core/HLE/scePower.cpp | 5 ++++- Core/HLE/sceUmd.cpp | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceKernel.cpp b/Core/HLE/sceKernel.cpp index 632fb1687a..0a7b1a762c 100644 --- a/Core/HLE/sceKernel.cpp +++ b/Core/HLE/sceKernel.cpp @@ -73,6 +73,7 @@ #include "scePspNpDrm_user.h" #include "sceVaudio.h" #include "sceHeap.h" +#include "sceDmac.h" #include "../Util/PPGeDraw.h" @@ -131,6 +132,7 @@ void __KernelInit() __VaudioInit(); __CheatInit(); __HeapInit(); + __DmacInit(); SaveState::Init(); // Must be after IO, as it may create a directory Reporting::Init(); diff --git a/Core/HLE/scePower.cpp b/Core/HLE/scePower.cpp index ac068a9fdc..1e1f507ca6 100644 --- a/Core/HLE/scePower.cpp +++ b/Core/HLE/scePower.cpp @@ -61,10 +61,13 @@ void __PowerInit() { volatileMemLocked = false; volatileWaitingThreads.clear(); - if(g_Config.iLockedCPUSpeed > 0) { + if (g_Config.iLockedCPUSpeed > 0) { CoreTiming::SetClockFrequencyMHz(g_Config.iLockedCPUSpeed); pllFreq = g_Config.iLockedCPUSpeed; busFreq = g_Config.iLockedCPUSpeed / 2; + } else { + pllFreq = 222; + busFreq = 111; } } diff --git a/Core/HLE/sceUmd.cpp b/Core/HLE/sceUmd.cpp index abec28eecf..a7e0557cd3 100644 --- a/Core/HLE/sceUmd.cpp +++ b/Core/HLE/sceUmd.cpp @@ -67,6 +67,8 @@ void __UmdInit() umdStatus = 0; umdErrorStat = 0; driveCBId = 0; + umdWaitingThreads.clear(); + umdPausedWaits.clear(); __KernelRegisterWaitTypeFuncs(WAITTYPE_UMD, __UmdBeginCallback, __UmdEndCallback); }