mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-26 07:39:45 -06:00
DiscIO: Do swapping in GetTitleID implementations
Gets rid of external swaps at every usage.
This commit is contained in:
@ -76,7 +76,7 @@ public:
|
||||
return Common::swap32(temp);
|
||||
}
|
||||
|
||||
virtual bool GetTitleID(u8*) const { return false; }
|
||||
virtual bool GetTitleID(u64*) const { return false; }
|
||||
virtual std::unique_ptr<u8[]> GetTMD(u32 *_sz) const
|
||||
{
|
||||
*_sz = 0;
|
||||
|
@ -29,12 +29,11 @@ std::vector<u32> IVolume::GetBanner(int* width, int* height) const
|
||||
*width = 0;
|
||||
*height = 0;
|
||||
|
||||
u64 TitleID = 0;
|
||||
GetTitleID((u8*)&TitleID);
|
||||
TitleID = Common::swap64(TitleID);
|
||||
u64 title_id = 0;
|
||||
GetTitleID(&title_id);
|
||||
|
||||
std::string file_name = StringFromFormat("%s/title/%08x/%08x/data/banner.bin",
|
||||
File::GetUserPath(D_WIIROOT_IDX).c_str(), (u32)(TitleID >> 32), (u32)TitleID);
|
||||
File::GetUserPath(D_WIIROOT_IDX).c_str(), (u32)(title_id >> 32), (u32)title_id);
|
||||
if (!File::Exists(file_name))
|
||||
return std::vector<u32>();
|
||||
|
||||
|
@ -93,11 +93,12 @@ std::string CVolumeWAD::GetMakerID() const
|
||||
return DecodeString(temp);
|
||||
}
|
||||
|
||||
bool CVolumeWAD::GetTitleID(u8* _pBuffer) const
|
||||
bool CVolumeWAD::GetTitleID(u64* buffer) const
|
||||
{
|
||||
if (!Read(m_offset + 0x01DC, 8, _pBuffer))
|
||||
if (!Read(m_offset + 0x01DC, sizeof(u64), reinterpret_cast<u8*>(buffer)))
|
||||
return false;
|
||||
|
||||
*buffer = Common::swap64(*buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
CVolumeWAD(std::unique_ptr<IBlobReader> reader);
|
||||
~CVolumeWAD();
|
||||
bool Read(u64 _Offset, u64 _Length, u8* _pBuffer, bool decrypt = false) const override;
|
||||
bool GetTitleID(u8* _pBuffer) const override;
|
||||
bool GetTitleID(u64* buffer) const override;
|
||||
std::string GetUniqueID() const override;
|
||||
std::string GetMakerID() const override;
|
||||
u16 GetRevision() const override;
|
||||
|
@ -107,11 +107,15 @@ bool CVolumeWiiCrypted::Read(u64 _ReadOffset, u64 _Length, u8* _pBuffer, bool de
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CVolumeWiiCrypted::GetTitleID(u8* _pBuffer) const
|
||||
bool CVolumeWiiCrypted::GetTitleID(u64* buffer) const
|
||||
{
|
||||
// Tik is at m_VolumeOffset size 0x2A4
|
||||
// TitleID offset in tik is 0x1DC
|
||||
return Read(m_VolumeOffset + 0x1DC, 8, _pBuffer, false);
|
||||
if (!Read(m_VolumeOffset + 0x1DC, sizeof(u64), reinterpret_cast<u8*>(buffer), false))
|
||||
return false;
|
||||
|
||||
*buffer = Common::swap64(*buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::unique_ptr<u8[]> CVolumeWiiCrypted::GetTMD(u32 *size) const
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
CVolumeWiiCrypted(std::unique_ptr<IBlobReader> reader, u64 _VolumeOffset, const unsigned char* _pVolumeKey);
|
||||
~CVolumeWiiCrypted();
|
||||
bool Read(u64 _Offset, u64 _Length, u8* _pBuffer, bool decrypt) const override;
|
||||
bool GetTitleID(u8* _pBuffer) const override;
|
||||
bool GetTitleID(u64* buffer) const override;
|
||||
std::unique_ptr<u8[]> GetTMD(u32 *_sz) const override;
|
||||
std::string GetUniqueID() const override;
|
||||
std::string GetMakerID() const override;
|
||||
|
Reference in New Issue
Block a user