summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAnthony <Helios747@users.noreply.github.com>2017-07-20 22:49:59 -0700
committerGitHub <noreply@github.com>2017-07-20 22:49:59 -0700
commit2f0bec93cb3eb02f159461f13557bde4bd2771bb (patch)
tree2dbbc4bd518bbc1bde4291a1b50fb3ee326df6f3 /Source
parentc207a1072da9ccfda727bbc740cc1a73c763aae1 (diff)
parent1fc5830d0c1577ab4608f336e45013daddab4041 (diff)
Merge pull request #5801 from JosJuice/remove-gci-region-check
Remove region mismatch check for GCI folders
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp2
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp23
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h5
3 files changed, 7 insertions, 23 deletions
diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp
index 98c6334a80..0addf79c7d 100644
--- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp
+++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp
@@ -199,7 +199,7 @@ void CEXIMemoryCard::SetupGciFolder(u16 sizeMb)
}
memorycard = std::make_unique<GCMemcardDirectory>(strDirectoryName + DIR_SEP, card_index, sizeMb,
- shift_jis, region, CurrentGameId);
+ shift_jis, CurrentGameId);
}
void CEXIMemoryCard::SetupRawMemcard(u16 sizeMb)
diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp
index 344b9a56f7..ae90bcd5d3 100644
--- a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp
+++ b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp
@@ -21,16 +21,15 @@
#include "Common/FileUtil.h"
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
+#include "Common/StringUtil.h"
#include "Common/Thread.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
-#include "DiscIO/Volume.h"
const int NO_INDEX = -1;
static const char* MC_HDR = "MC_SYSTEM_AREA";
-int GCMemcardDirectory::LoadGCI(const std::string& file_name, DiscIO::Region card_region,
- bool current_game_only)
+int GCMemcardDirectory::LoadGCI(const std::string& file_name, bool current_game_only)
{
File::IOFile gci_file(file_name, "rb");
if (gci_file)
@@ -44,20 +43,6 @@ int GCMemcardDirectory::LoadGCI(const std::string& file_name, DiscIO::Region car
return NO_INDEX;
}
- // This isn't a reliable way to detect regions. TODO: Get rid of this?
- DiscIO::Region gci_region = DiscIO::RegionSwitchGC(gci.m_gci_header.Gamecode[3]);
- // Some special save files have game IDs that we parse as UNKNOWN_REGION. For instance:
- // - Datel Action Replay uses C as the fourth character. (Can be on any region's card.)
- // - Homeland's network config file only uses null bytes. (Homeland is exclusive to Japan,
- // but maybe the network config file ID was intended to be used in other regions too.)
- if (card_region != gci_region && gci_region != DiscIO::Region::UNKNOWN_REGION)
- {
- PanicAlertT(
- "GCI save file was not loaded because it is the wrong region for this memory card:\n%s",
- file_name.c_str());
- return NO_INDEX;
- }
-
std::string gci_filename = gci.m_gci_header.GCI_FileName();
for (u16 i = 0; i < m_loaded_saves.size(); ++i)
{
@@ -137,7 +122,7 @@ int GCMemcardDirectory::LoadGCI(const std::string& file_name, DiscIO::Region car
}
GCMemcardDirectory::GCMemcardDirectory(const std::string& directory, int slot, u16 size_mbits,
- bool shift_jis, DiscIO::Region card_region, int game_id)
+ bool shift_jis, int game_id)
: MemoryCardBase(slot, size_mbits), m_game_id(game_id), m_last_block(-1),
m_hdr(slot, size_mbits, shift_jis), m_bat1(size_mbits), m_saves(0),
m_save_directory(directory), m_exiting(false)
@@ -166,7 +151,7 @@ GCMemcardDirectory::GCMemcardDirectory(const std::string& directory, int slot, u
m_save_directory.c_str());
break;
}
- int index = LoadGCI(gci_file, card_region, m_saves.size() > 112);
+ int index = LoadGCI(gci_file, m_saves.size() > 112);
if (index != NO_INDEX)
{
m_loaded_saves.push_back(m_saves.at(index).m_gci_header.GCI_FileName());
diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h
index 1c9b7abf20..4d7de844a4 100644
--- a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h
+++ b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h
@@ -12,7 +12,6 @@
#include "Common/Event.h"
#include "Common/NonCopyable.h"
#include "Core/HW/GCMemcard/GCMemcard.h"
-#include "DiscIO/Enums.h"
// Uncomment this to write the system data of the memorycard from directory to disc
//#define _WRITE_MC_HEADER 1
@@ -22,7 +21,7 @@ class GCMemcardDirectory : public MemoryCardBase, NonCopyable
{
public:
GCMemcardDirectory(const std::string& directory, int slot, u16 size_mbits, bool shift_jis,
- DiscIO::Region card_region, int game_id);
+ int game_id);
~GCMemcardDirectory();
void FlushToFile();
void FlushThread();
@@ -33,7 +32,7 @@ public:
void DoState(PointerWrap& p) override;
private:
- int LoadGCI(const std::string& file_name, DiscIO::Region card_region, bool current_game_only);
+ int LoadGCI(const std::string& file_name, bool current_game_only);
inline s32 SaveAreaRW(u32 block, bool writing = false);
// s32 DirectoryRead(u32 offset, u32 length, u8* dest_address);
s32 DirectoryWrite(u32 dest_address, u32 length, const u8* src_address);