Blob: Add interface for reading decrypted Wii data directly
This is useful for blob types that store Wii data unencrypted (such as WIA and discs extracted to directories) so that we don't have to waste CPU time encrypting in the blob code just to decrypt right afterwards in the volume code.
This commit is contained in:
parent
878869488d
commit
5f8935932d
|
@ -56,6 +56,12 @@ public:
|
|||
return Common::FromBigEndian(temp);
|
||||
}
|
||||
|
||||
virtual bool SupportsReadWiiDecrypted() const { return false; }
|
||||
virtual bool ReadWiiDecrypted(u64 offset, u64 size, u8* out_ptr, u64 partition_offset)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
BlobReader() {}
|
||||
};
|
||||
|
|
|
@ -128,6 +128,9 @@ bool VolumeWii::Read(u64 _ReadOffset, u64 _Length, u8* _pBuffer, const Partition
|
|||
if (partition == PARTITION_NONE)
|
||||
return m_pReader->Read(_ReadOffset, _Length, _pBuffer);
|
||||
|
||||
if (m_pReader->SupportsReadWiiDecrypted())
|
||||
return m_pReader->ReadWiiDecrypted(_ReadOffset, _Length, _pBuffer, partition.offset);
|
||||
|
||||
// Get the decryption key for the partition
|
||||
auto it = m_partitions.find(partition);
|
||||
if (it == m_partitions.end())
|
||||
|
|
Loading…
Reference in New Issue