From 645cb2f3d18577e1bdc492fa7d7d40d4a0297454 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 1 Aug 2020 01:44:07 +0200 Subject: [PATCH] GCMemcardDirectory: Rewrite migration logic without ExportGci(). --- Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp index fb93096dbd..9699eddf2b 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp +++ b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp @@ -17,6 +17,7 @@ #include "Common/Assert.h" #include "Common/ChunkFile.h" +#include "Common/CommonPaths.h" #include "Common/CommonTypes.h" #include "Common/Config/Config.h" #include "Common/FileSearch.h" @@ -32,6 +33,8 @@ #include "Core/ConfigManager.h" #include "Core/Core.h" #include "Core/HW/EXI/EXI_DeviceIPL.h" +#include "Core/HW/GCMemcard/GCMemcard.h" +#include "Core/HW/GCMemcard/GCMemcardUtils.h" #include "Core/HW/Sram.h" #include "Core/NetPlayProto.h" @@ -716,7 +719,13 @@ void MigrateFromMemcardFile(const std::string& directory_name, int card_index) { for (u8 i = 0; i < Memcard::DIRLEN; i++) { - memcard->ExportGci(i, "", directory_name); + const auto savefile = memcard->ExportFile(i); + if (!savefile) + continue; + + std::string filepath = + directory_name + DIR_SEP + Memcard::GenerateFilename(savefile->dir_entry) + ".gci"; + Memcard::WriteSavefile(filepath, *savefile, Memcard::SavefileFormat::GCI); } } }