diff --git a/Source/Core/DiscIO/Volume.cpp b/Source/Core/DiscIO/Volume.cpp index 8ceee22f61..04b7b386e2 100644 --- a/Source/Core/DiscIO/Volume.cpp +++ b/Source/Core/DiscIO/Volume.cpp @@ -96,13 +96,7 @@ std::unique_ptr CreateVolumeFromFilename(const std::string& filename) // Check for Wii const std::optional wii_magic = reader->ReadSwapped(0x18); if (wii_magic == u32(0x5D1C9EA3)) - { - const std::optional wii_container_magic = reader->ReadSwapped(0x60); - if (wii_container_magic == u32(0)) - return std::make_unique(std::move(reader)); - - return std::make_unique(std::move(reader)); - } + return std::make_unique(std::move(reader)); // Check for WAD // 0x206962 for boot2 wads diff --git a/Source/Core/DiscIO/VolumeWiiCrypted.cpp b/Source/Core/DiscIO/VolumeWiiCrypted.cpp index c0830d5139..ad03406caa 100644 --- a/Source/Core/DiscIO/VolumeWiiCrypted.cpp +++ b/Source/Core/DiscIO/VolumeWiiCrypted.cpp @@ -36,6 +36,12 @@ CVolumeWiiCrypted::CVolumeWiiCrypted(std::unique_ptr reader) { _assert_(m_pReader); + if (m_pReader->ReadSwapped(0x60) != u32(0)) + { + // No partitions - just read unencrypted data like with a GC disc + return; + } + // Get tickets, TMDs, and decryption keys for all partitions for (u32 partition_group = 0; partition_group < 4; ++partition_group) {