From 5b8c07a190f575dca55016aff891a9525b612c3f Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 11 Aug 2020 23:49:01 +0200 Subject: [PATCH] EXI: Allow reading memory card data directly in CEXIMemoryCard. --- Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp | 8 ++++++++ Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp index 13a06da652..7a0a4f12e7 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp @@ -172,6 +172,14 @@ CEXIMemoryCard::GetGCIFolderPath(Slot card_slot, AllowMovieFolder allow_movie_fo return {Config::GetGCIFolderPath(card_slot, region), true}; } +s32 CEXIMemoryCard::ReadFromMemcard(u32 memcard_offset, s32 length, u8* dest_address) const +{ + if (!m_memory_card) + return 0; + + return m_memory_card->Read(memcard_offset, length, dest_address); +} + void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) { const std::string& game_id = SConfig::GetInstance().GetGameID(); diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.h b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.h index 2264abb076..04f11b52f8 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.h +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.h @@ -64,6 +64,8 @@ public: static std::pair GetGCIFolderPath(Slot card_slot, AllowMovieFolder allow_movie_folder, Movie::MovieManager& movie); + s32 ReadFromMemcard(u32 memcard_offset, s32 length, u8* dest_address) const; + private: void SetupGciFolder(const Memcard::HeaderData& header_data); void SetupRawMemcard(u16 size_mb);