From fe6fd2279c195517094538fff8667332049823ad Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sun, 15 Jun 2025 11:13:18 +0100 Subject: WiiSaveBanner: fall back to $userdir/Load/WiiBanners Unlike custom banners which work as an override, this mechanism works as a fallback. The use case is if you have games you don't really play but want to keep around for testing purposes without filling up your NAND with lots of saves. For ease of use, the directory structure is the same but only title/$title_hi/$title_lo/data/banner.bin files are relevant. --- Source/Core/DiscIO/WiiSaveBanner.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'Source/Core/DiscIO/WiiSaveBanner.cpp') diff --git a/Source/Core/DiscIO/WiiSaveBanner.cpp b/Source/Core/DiscIO/WiiSaveBanner.cpp index 7c2489ea93..203b033271 100644 --- a/Source/Core/DiscIO/WiiSaveBanner.cpp +++ b/Source/Core/DiscIO/WiiSaveBanner.cpp @@ -3,12 +3,14 @@ #include "DiscIO/WiiSaveBanner.h" +#include #include #include #include #include "Common/ColorUtil.h" #include "Common/CommonTypes.h" +#include "Common/FileUtil.h" #include "Common/IOFile.h" #include "Common/NandPaths.h" #include "Common/StringUtil.h" @@ -20,17 +22,20 @@ constexpr u32 ICON_HEIGHT = 48; constexpr u32 ICON_SIZE = ICON_WIDTH * ICON_HEIGHT * 2; WiiSaveBanner::WiiSaveBanner(u64 title_id) - : WiiSaveBanner(Common::GetTitleDataPath(title_id, Common::FromWhichRoot::Configured) + - "/banner.bin") -{ -} - -WiiSaveBanner::WiiSaveBanner(const std::string& path) : m_path(path) { constexpr u32 BANNER_SIZE = BANNER_WIDTH * BANNER_HEIGHT * 2; constexpr size_t MINIMUM_SIZE = sizeof(Header) + BANNER_SIZE + ICON_SIZE; - File::IOFile file(path, "rb"); + + m_path = Common::GetTitleDataPath(title_id, Common::FromWhichRoot::Configured) + "/banner.bin"; + File::IOFile file(m_path, "rb"); + + if (!file) + { + m_path = Common::GetTitleDataPath(title_id, Common::FromWhichRoot::Banners) + "/banner.bin"; + file = File::IOFile(m_path, "rb"); + } + if (!file.ReadArray(&m_header, 1)) { m_header = {}; -- cgit v1.2.3