summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2020-12-31 19:33:48 +0100
committerAdmiral H. Curtiss <pikachu025@gmail.com>2021-01-02 17:46:11 +0100
commit700d53e00f285b6471734563c8564c01cf5381f4 (patch)
tree6c89a0caef1e591aac514d2b34d8ca92f20dbfed /Source/Core
parent46e4c17db3f43be968a9ce9ff4f4e86a22a7a872 (diff)
WiiSave: In Import(), make sure the TMD exists or can be reinstalled before allowing save to be imported.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HW/WiiSave.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/Core/HW/WiiSave.cpp b/Source/Core/Core/HW/WiiSave.cpp
index 7552686a6a..dd4108a59b 100644
--- a/Source/Core/Core/HW/WiiSave.cpp
+++ b/Source/Core/Core/HW/WiiSave.cpp
@@ -40,6 +40,7 @@
#include "Core/IOS/IOS.h"
#include "Core/IOS/IOSC.h"
#include "Core/IOS/Uids.h"
+#include "Core/WiiUtils.h"
namespace WiiSave
{
@@ -475,6 +476,14 @@ bool Import(const std::string& data_bin_path, std::function<bool()> can_overwrit
ERROR_LOG_FMT(CORE, "WiiSave::Import: Failed to read header");
return false;
}
+
+ if (!WiiUtils::EnsureTMDIsImported(*ios.GetFS(), *ios.GetES(), header->tid))
+ {
+ ERROR_LOG_FMT(CORE, "WiiSave::Import: Failed to find or import TMD for title {:16x}",
+ header->tid);
+ return false;
+ }
+
const auto nand = MakeNandStorage(ios.GetFS().get(), header->tid);
if (nand->SaveExists() && !can_overwrite())
return false;