mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
Remove DiscScrubber::GetDOLSize in favor of IFileSystem::GetBootDOLSize
IFileSystem::GetBootDOLSize acts the same. The only difference is that it reads the DOL offset on its own, but this change makes that optional.
This commit is contained in:
@ -150,27 +150,32 @@ bool CFileSystemGCWii::ExportApploader(const std::string& _rExportFolder) const
|
||||
|
||||
u32 CFileSystemGCWii::GetBootDOLSize() const
|
||||
{
|
||||
u32 DolOffset = m_rVolume->Read32(0x420, m_Wii) << GetOffsetShift();
|
||||
u32 DolSize = 0, offset = 0, size = 0;
|
||||
return GetBootDOLSize((u64)m_rVolume->Read32(0x420, m_Wii) << GetOffsetShift());
|
||||
}
|
||||
|
||||
u32 CFileSystemGCWii::GetBootDOLSize(u64 dol_offset) const
|
||||
{
|
||||
u32 dol_size = 0;
|
||||
u32 offset = 0;
|
||||
u32 size = 0;
|
||||
|
||||
// Iterate through the 7 code segments
|
||||
for (u8 i = 0; i < 7; i++)
|
||||
{
|
||||
offset = m_rVolume->Read32(DolOffset + 0x00 + i * 4, m_Wii);
|
||||
size = m_rVolume->Read32(DolOffset + 0x90 + i * 4, m_Wii);
|
||||
if (offset + size > DolSize)
|
||||
DolSize = offset + size;
|
||||
offset = m_rVolume->Read32(dol_offset + 0x00 + i * 4, m_Wii);
|
||||
size = m_rVolume->Read32(dol_offset + 0x90 + i * 4, m_Wii);
|
||||
dol_size = std::max(offset + size, dol_size);
|
||||
}
|
||||
|
||||
// Iterate through the 11 data segments
|
||||
for (u8 i = 0; i < 11; i++)
|
||||
{
|
||||
offset = m_rVolume->Read32(DolOffset + 0x1c + i * 4, m_Wii);
|
||||
size = m_rVolume->Read32(DolOffset + 0xac + i * 4, m_Wii);
|
||||
if (offset + size > DolSize)
|
||||
DolSize = offset + size;
|
||||
offset = m_rVolume->Read32(dol_offset + 0x1c + i * 4, m_Wii);
|
||||
size = m_rVolume->Read32(dol_offset + 0xac + i * 4, m_Wii);
|
||||
dol_size = std::max(offset + size, dol_size);
|
||||
}
|
||||
return DolSize;
|
||||
|
||||
return dol_size;
|
||||
}
|
||||
|
||||
bool CFileSystemGCWii::GetBootDOL(u8* &buffer, u32 DolSize) const
|
||||
|
Reference in New Issue
Block a user