summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-07-04 14:51:13 +0200
committerJosJuice <josjuice@gmail.com>2020-07-04 14:51:13 +0200
commitf24566bf39211671cd05fd8b88532b75d8b38e83 (patch)
tree9c5e650dc20108ccbe84476fa7bcacef57b509a2 /Source/Core/DiscIO
parentf9aaf8b9715470f0fd9182164fc6bd3c0443453b (diff)
DiscIO: Add Volume::IsDatelDisc
Diffstat (limited to 'Source/Core/DiscIO')
-rw-r--r--Source/Core/DiscIO/Volume.h1
-rw-r--r--Source/Core/DiscIO/VolumeGC.cpp10
-rw-r--r--Source/Core/DiscIO/VolumeGC.h1
-rw-r--r--Source/Core/DiscIO/VolumeWad.cpp5
-rw-r--r--Source/Core/DiscIO/VolumeWad.h1
-rw-r--r--Source/Core/DiscIO/VolumeWii.cpp5
-rw-r--r--Source/Core/DiscIO/VolumeWii.h1
7 files changed, 20 insertions, 4 deletions
diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h
index 74a7cf35fc..a5c4e6be14 100644
--- a/Source/Core/DiscIO/Volume.h
+++ b/Source/Core/DiscIO/Volume.h
@@ -115,6 +115,7 @@ public:
return 0;
}
virtual Platform GetVolumeType() const = 0;
+ virtual bool IsDatelDisc() const = 0;
virtual bool SupportsIntegrityCheck() const { return false; }
virtual bool CheckH3TableIntegrity(const Partition& partition) const { return false; }
virtual bool CheckBlockIntegrity(u64 block_index, const std::vector<u8>& encrypted_data,
diff --git a/Source/Core/DiscIO/VolumeGC.cpp b/Source/Core/DiscIO/VolumeGC.cpp
index cb8c26f73e..15d71c74ca 100644
--- a/Source/Core/DiscIO/VolumeGC.cpp
+++ b/Source/Core/DiscIO/VolumeGC.cpp
@@ -62,10 +62,7 @@ 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;
+ return game_id == "GNHE5d" && IsDatelDisc() ? "" : game_id;
}
Region VolumeGC::GetRegion() const
@@ -135,6 +132,11 @@ Platform VolumeGC::GetVolumeType() const
return Platform::GameCubeDisc;
}
+bool VolumeGC::IsDatelDisc() const
+{
+ return !GetBootDOLOffset(*this, PARTITION_NONE).has_value();
+}
+
VolumeGC::ConvertedGCBanner VolumeGC::LoadBannerFile() const
{
GCBanner banner_file;
diff --git a/Source/Core/DiscIO/VolumeGC.h b/Source/Core/DiscIO/VolumeGC.h
index 3d16988500..56e2356877 100644
--- a/Source/Core/DiscIO/VolumeGC.h
+++ b/Source/Core/DiscIO/VolumeGC.h
@@ -43,6 +43,7 @@ public:
std::vector<u32> GetBanner(u32* width, u32* height) const override;
Platform GetVolumeType() const override;
+ bool IsDatelDisc() const override;
Region GetRegion() const override;
BlobType GetBlobType() const override;
u64 GetSize() const override;
diff --git a/Source/Core/DiscIO/VolumeWad.cpp b/Source/Core/DiscIO/VolumeWad.cpp
index 7681d3932c..61b772ec31 100644
--- a/Source/Core/DiscIO/VolumeWad.cpp
+++ b/Source/Core/DiscIO/VolumeWad.cpp
@@ -284,6 +284,11 @@ Platform VolumeWAD::GetVolumeType() const
return Platform::WiiWAD;
}
+bool VolumeWAD::IsDatelDisc() const
+{
+ return false;
+}
+
std::map<Language, std::string> VolumeWAD::GetLongNames() const
{
if (!m_tmd.IsValid() || !IOS::ES::IsChannel(m_tmd.GetTitleId()))
diff --git a/Source/Core/DiscIO/VolumeWad.h b/Source/Core/DiscIO/VolumeWad.h
index ce8db892c2..d76b8853ec 100644
--- a/Source/Core/DiscIO/VolumeWad.h
+++ b/Source/Core/DiscIO/VolumeWad.h
@@ -59,6 +59,7 @@ public:
return "";
}
Platform GetVolumeType() const override;
+ bool IsDatelDisc() const override;
Region GetRegion() const override;
Country GetCountry(const Partition& partition = PARTITION_NONE) const override;
diff --git a/Source/Core/DiscIO/VolumeWii.cpp b/Source/Core/DiscIO/VolumeWii.cpp
index 9880e6d79e..73797fe1e3 100644
--- a/Source/Core/DiscIO/VolumeWii.cpp
+++ b/Source/Core/DiscIO/VolumeWii.cpp
@@ -334,6 +334,11 @@ Platform VolumeWii::GetVolumeType() const
return Platform::WiiDisc;
}
+bool VolumeWii::IsDatelDisc() const
+{
+ return m_game_partition == PARTITION_NONE;
+}
+
BlobType VolumeWii::GetBlobType() const
{
return m_reader->GetBlobType();
diff --git a/Source/Core/DiscIO/VolumeWii.h b/Source/Core/DiscIO/VolumeWii.h
index 361c06ffe1..3af5884d3e 100644
--- a/Source/Core/DiscIO/VolumeWii.h
+++ b/Source/Core/DiscIO/VolumeWii.h
@@ -79,6 +79,7 @@ public:
std::vector<u32> GetBanner(u32* width, u32* height) const override;
Platform GetVolumeType() const override;
+ bool IsDatelDisc() const override;
bool SupportsIntegrityCheck() const override { return m_encrypted; }
bool CheckH3TableIntegrity(const Partition& partition) const override;
bool CheckBlockIntegrity(u64 block_index, const std::vector<u8>& encrypted_data,