From 39a1a2b9eb7b32ba75220d9dc2d3ab436e99ce66 Mon Sep 17 00:00:00 2001 From: "NathanNeurotic (Ripto)" Date: Sun, 19 Apr 2026 18:57:49 -0700 Subject: [PATCH] elf_loader: skip SIF teardown for HDD-backed embedded loader Fix D-10 black-screen regression. The parent embedded loader unconditionally shuts down the SIF subsystem before handing control to the child loader, which breaks HDD-backed launches because the child loader depends on the SIF layer. Add a check in ExecuteViaEmbeddedLoader() to skip SifExitIopHeap(), SifExitRpc(), and SifExitCmd() when launching from an HDD path (using is_hdd_backed_exec_path). Non-HDD paths continue to cleanup the SIF as before. --- src/elf_loader/src/elf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/elf_loader/src/elf.c b/src/elf_loader/src/elf.c index 83335cdb..2a948478 100644 --- a/src/elf_loader/src/elf.c +++ b/src/elf_loader/src/elf.c @@ -377,10 +377,12 @@ static int ExecuteViaEmbeddedLoader(const char *partition_context, const char *l } } - SifExitIopHeap(); + if (!is_hdd_backed_exec_path(partition_context)) { +SifExitIopHeap(); SifExitRpc(); SifExitCmd(); - FlushCache(0); + } +FlushCache(0); FlushCache(2); ret = ExecPS2((void *)boot_header->entry, 0, final_argc, launch_argv);