From a0af2bc403a0958a4b4e47c8d84342ea7f79929a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 6 Nov 2026 14:01:34 +0100 Subject: [PATCH] Firmware install: Create flash1/vsh/theme The shell refuses to install a theme without it, and the updater's archive doesn't have it. Co-Authored-By: Claude Opus 5.5 --- Core/Util/PSARUnpack.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Core/Util/PSARUnpack.cpp b/Core/Util/PSARUnpack.cpp index f5ef599f3f..121b9d1155 100644 --- a/Core/Util/PSARUnpack.cpp +++ b/Core/Util/PSARUnpack.cpp @@ -1747,6 +1747,13 @@ bool InstallFirmware(const Path &updater, const Path &nandRoot, const PSARUnpack ok = SwapStagingIntoPlace(nandRoot, staging, error); } if (ok) { + // The shell refuses to install a theme without this directory, and the updater's archive + // doesn't have it (6.61's has nothing under flash1), so the real updater must create it. + const Path themeDir = nandRoot / "flash1/vsh/theme"; + if (!File::CreateFullPath(themeDir)) { + WARN_LOG(Log::Loader, "Couldn't create %s", themeDir.c_str()); + } + g_Config.iSceRegCategoryVersion = SceRegCategoryVersionAfterInstall(g_Config.iSceRegCategoryVersion, SceRegCategoryVersionForFirmware(stats->firmwareVersion)); }