summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/VolumeGC.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2019-02-23 17:49:06 +0100
committerJosJuice <josjuice@gmail.com>2019-02-25 19:54:25 +0100
commit8842a0f402ffe60a80ce7894bfd36afd039009fc (patch)
tree63b17123d1238eeca41754711dd186a3c48689cc /Source/Core/DiscIO/VolumeGC.cpp
parentd27036eb77a7cde0beea1760773dfd046dd2ca10 (diff)
Keep track of GameTDB ID separately from game ID
The difference between Dolphin's game IDs and GameTDB's game IDs is that GameTDB uses four characters for non-disc titles, whereas Dolphin uses six characters for all titles. This fixes: - TitleDatabase considering Datel discs to be NHL Hitz 2002 - Gecko code downloading not working for discs with IDs starting with P - Cover downloading mixing up discs with channels (e.g. Mario Kart Wii and Mario Kart Channel) and making extra HTTP requests. (Android was actually doing a better job at this than DolphinQt!)
Diffstat (limited to 'Source/Core/DiscIO/VolumeGC.cpp')
-rw-r--r--Source/Core/DiscIO/VolumeGC.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/VolumeGC.cpp b/Source/Core/DiscIO/VolumeGC.cpp
index 1275fcfb78..e3db29c1f5 100644
--- a/Source/Core/DiscIO/VolumeGC.cpp
+++ b/Source/Core/DiscIO/VolumeGC.cpp
@@ -72,6 +72,17 @@ std::string VolumeGC::GetGameID(const Partition& partition) const
return DecodeString(id);
}
+std::string VolumeGC::GetGameTDBID(const Partition& partition) const
+{
+ const std::string game_id = GetGameID(partition);
+
+ // Don't return an ID for Datel discs that are using the game ID of NHL Hitz 2002
+ if (game_id == "GNHE5d" && !GetBootDOLOffset(*this, partition).has_value())
+ return "";
+
+ return game_id;
+}
+
Region VolumeGC::GetRegion() const
{
const std::optional<u32> region_code = ReadSwapped<u32>(0x458, PARTITION_NONE);