diff --git a/Core/CoreParameter.h b/Core/CoreParameter.h index c0811b9509..afa15412a9 100644 --- a/Core/CoreParameter.h +++ b/Core/CoreParameter.h @@ -61,7 +61,7 @@ struct CoreParameter { std::string errorString; bool startBreak; - std::string *collectEmuLog = nullptr; + std::string *collectDebugOutput = nullptr; bool headLess; // Try to avoid messageboxes etc // Internal PSP rendering resolution and scale factor. diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index 65b004ea9a..8b85bce7c5 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -2014,8 +2014,8 @@ static u32 sceIoDevctl(const char *name, int cmd, u32 argAddr, int argLen, u32 o std::string data(Memory::GetCharPointer(argAddr), argLen); if (!System_SendDebugOutput(data)) DEBUG_LOG(SCEIO, "%s", data.c_str()); - if (PSP_CoreParameter().collectEmuLog) - *PSP_CoreParameter().collectEmuLog += data; + if (PSP_CoreParameter().collectDebugOutput) + *PSP_CoreParameter().collectDebugOutput += data; return 0; } case EMULATOR_DEVCTL__IS_EMULATOR: diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index 3133e65b09..5f13243d06 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -1208,6 +1208,10 @@ static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 load ptr = newptr; magicPtr = (u32_le *)ptr; int ret = pspDecryptPRX(in, (u8*)ptr, head->psp_size); + if (ret <= 0 && *(u32_le *)&ptr[0x150] == 0x464c457f) { + ret = head->psp_size - 0x150; + memcpy(newptr, in + 0x150, ret); + } if (reportedModule) { // This should happen for all "kernel" modules. *error_string = "Missing key"; diff --git a/android/jni/TestRunner.cpp b/android/jni/TestRunner.cpp index 206c7ebf22..8b5a2ec5b6 100644 --- a/android/jni/TestRunner.cpp +++ b/android/jni/TestRunner.cpp @@ -100,7 +100,7 @@ bool RunTests() { coreParam.renderHeight = 272; coreParam.pixelWidth = 480; coreParam.pixelHeight = 272; - coreParam.collectEmuLog = &output; + coreParam.collectDebugOutput = &output; coreParam.fastForward = true; coreParam.updateRecent = false; diff --git a/headless/Headless.cpp b/headless/Headless.cpp index f91ad9b126..44b7bb81f8 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -201,7 +201,7 @@ bool RunAutoTest(HeadlessHost *headlessHost, CoreParameter &coreParameter, const std::string output; if (opt.compare || opt.bench) - coreParameter.collectEmuLog = &output; + coreParameter.collectDebugOutput = &output; std::string error_string; if (!PSP_InitStart(coreParameter, &error_string)) {