From a7ba69e16a7c0a7725d35f6c5bfe66db01aaa6a9 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 30 Mar 2018 12:01:55 +0200 Subject: [PATCH 1/2] Fix loading Wii banners for games that initially were cached without banners Fixes https://bugs.dolphin-emu.org/issues/10969 --- Source/Core/UICommon/GameFile.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index e28ef3b274..c2d9624c43 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -222,9 +222,11 @@ bool GameFile::BannerChanged() if (!DiscIO::IsWii(m_platform)) return false; - m_volume_banner.buffer = - DiscIO::WiiSaveBanner(m_title_id).GetBanner(&m_volume_banner.width, &m_volume_banner.height); - if (m_volume_banner.buffer.empty()) + m_pending.volume_banner.buffer = + DiscIO::WiiSaveBanner(m_title_id) + .GetBanner(&m_pending.volume_banner.width, &m_pending.volume_banner.height); + + if (m_pending.volume_banner.buffer.empty()) return false; // We only reach here if m_volume_banner was empty, so we can always return true From 5847e213af7cff73671ae114a4e8f99a8ab69745 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 31 Mar 2018 14:52:21 +0200 Subject: [PATCH 2/2] Clean up the end of GameFile::BannerChanged --- Source/Core/UICommon/GameFile.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index c2d9624c43..6223b1fb6e 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -226,12 +226,9 @@ bool GameFile::BannerChanged() DiscIO::WiiSaveBanner(m_title_id) .GetBanner(&m_pending.volume_banner.width, &m_pending.volume_banner.height); - if (m_pending.volume_banner.buffer.empty()) - return false; - - // We only reach here if m_volume_banner was empty, so we can always return true - // without needing any extra check to know whether the banners are different - return true; + // We only reach here if the old banner was empty, so if the new banner isn't empty, + // the new banner is guaranteed to be different from the old banner + return !m_pending.volume_banner.buffer.empty(); } void GameFile::BannerCommit()