Savestate: Defer operations while the GE debugger holds a list

The list belongs to the sceGe call still in progress, whose end would have
run on the loaded CPU state. Also stop the camera and GPS when a state has
them off, don't restart capture when saving, and fix a double free of the
pmp frame queue (it only holds the media engine's own frame).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-09-28 09:34:06 -06:00
1 parent 0a687b9435
commit 937c100af8
5 files changed
+23 -11

No files matched your search

+5
View File
@@ -852,6 +852,11 @@ int g_screenshotFailures;
if (!needsProcess)
return;
if (coreState == CORE_STEPPING_GE || coreState == CORE_RUNNING_GE) {
// A display list stopped in the GE debugger still belongs to the sceGe call that started
// it, which finishes when the list does. Wait for that.
return;
}
needsProcess = false;
if (!__KernelIsRunning()) {