diff options
| author | JosJuice <josjuice@gmail.com> | 2019-02-23 17:49:06 +0100 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2019-02-25 19:54:25 +0100 |
| commit | 8842a0f402ffe60a80ce7894bfd36afd039009fc (patch) | |
| tree | 63b17123d1238eeca41754711dd186a3c48689cc /Source/Core/DiscIO/VolumeGC.cpp | |
| parent | d27036eb77a7cde0beea1760773dfd046dd2ca10 (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.cpp | 11 |
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); |
