From 66422a61230dae5098ab3076d084e0a3f30a13cf Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 25 Oct 2026 22:29:54 +0100 Subject: [PATCH] UMD: Put the disc back in the drive on every boot The XMB ejects the disc when it boots without one, and __UmdInit resets the rest of the UMD state but not UMDInserted. So after visiting the XMB, any game booted next saw an empty drive and waited forever for its disc (Brandish: The Dark Revenant stops after registering its UMD callback), until PPSSPP was restarted. Co-Authored-By: Claude Opus 5.5 --- Core/HLE/sceUmd.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/HLE/sceUmd.cpp b/Core/HLE/sceUmd.cpp index f26a094d92..dc76f1ba83 100644 --- a/Core/HLE/sceUmd.cpp +++ b/Core/HLE/sceUmd.cpp @@ -84,6 +84,9 @@ void __UmdInit() umdPausedWaits.clear(); g_UMDReplacePermit = false; g_umdPath.clear(); + // The XMB ejects the disc when it boots without one, and the next game boot mustn't inherit + // the empty drive. + UMDInserted = true; __KernelRegisterWaitTypeFuncs(WAITTYPE_UMD, __UmdBeginCallback, __UmdEndCallback); }