From a4c7100bcc1d7bcd92ba436503d41361d46eb38c Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 27 Dec 2019 22:04:51 +0100 Subject: DiscIO: Use partition data offset for ReadWiiDecrypted parameter Instead of the partition offset (which is usually 0x20000 less). --- Source/Core/DiscIO/DirectoryBlob.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'Source/Core/DiscIO/DirectoryBlob.cpp') diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 3df7b44256..64d4497925 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -387,12 +387,13 @@ bool DirectoryBlobReader::SupportsReadWiiDecrypted() const return m_is_wii; } -bool DirectoryBlobReader::ReadWiiDecrypted(u64 offset, u64 size, u8* buffer, u64 partition_offset) +bool DirectoryBlobReader::ReadWiiDecrypted(u64 offset, u64 size, u8* buffer, + u64 partition_data_offset) { if (!m_is_wii) return false; - auto it = m_partitions.find(partition_offset); + auto it = m_partitions.find(partition_data_offset); if (it == m_partitions.end()) return false; @@ -514,7 +515,8 @@ void DirectoryBlobReader::SetPartitions(std::vector&& partiti SetPartitionHeader(partitions[i].partition, partition_address); const u64 partition_data_size = partitions[i].partition.GetDataSize(); - m_partitions.emplace(partition_address, std::move(partitions[i].partition)); + m_partitions.emplace(partition_address + PARTITION_DATA_OFFSET, + std::move(partitions[i].partition)); const u64 unaligned_next_partition_address = VolumeWii::EncryptedPartitionOffsetToRawOffset( partition_data_size, Partition(partition_address), PARTITION_DATA_OFFSET); partition_address = Common::AlignUp(unaligned_next_partition_address, 0x10000ull); -- cgit v1.2.3