From 1f2f0441648bbf4efcfd0510fb12d3a3f29bf83a Mon Sep 17 00:00:00 2001 From: sum2012 Date: Mon, 30 Jan 2017 21:39:42 +0800 Subject: [PATCH] Fix Dies irae Amantes amentes umd switch --- Core/HLE/sceUmd.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Core/HLE/sceUmd.cpp b/Core/HLE/sceUmd.cpp index d191fdb27d..f293a72d2b 100644 --- a/Core/HLE/sceUmd.cpp +++ b/Core/HLE/sceUmd.cpp @@ -336,6 +336,10 @@ static int sceUmdUnRegisterUMDCallBack(int cbId) static u32 sceUmdGetDriveStat() { + if (!UMDInserted) { + WARN_LOG(SCEIO, "sceUmdGetDriveStat: UMD is taking out for switch UMD"); + return PSP_UMD_NOT_PRESENT; + } //u32 retVal = PSP_UMD_INITED | PSP_UMD_READY | PSP_UMD_PRESENT; u32 retVal = __KernelUmdGetState(); DEBUG_LOG(SCEIO,"0x%02x=sceUmdGetDriveStat()", retVal); @@ -432,6 +436,11 @@ static int sceUmdWaitDriveStatWithTimer(u32 stat, u32 timeout) static int sceUmdWaitDriveStatCB(u32 stat, u32 timeout) { + if (!UMDInserted) { + WARN_LOG(SCEIO, "sceUmdWaitDriveStatCB(stat = %08x, timeout = %d): UMD is taking out for switch UMD", stat, timeout); + return PSP_UMD_NOT_PRESENT; + } + if (stat == 0) { DEBUG_LOG(SCEIO, "sceUmdWaitDriveStatCB(stat = %08x, timeout = %d): bad status", stat, timeout); return SCE_KERNEL_ERROR_ERRNO_INVALID_ARGUMENT;