def gameType(self) -> Boot.Type: self._rawdata.seek(24) if read_uint32(self._rawdata) == Boot.Magic.WIIMAGIC: return Boot.Type.WII if read_uint32(self._rawdata) == Boot.Magic.GCNMAGIC: return Boot.Type.GCN return Boot.Type.UNKNOWN
def debugFlag(self) -> int: self._rawdata.seek(8) return read_uint32(self._rawdata)
def simulatedMemSize(self) -> int: self._rawdata.seek(4) return read_uint32(self._rawdata)
def debugMonitorSize(self) -> int: self._rawdata.seek(0) return read_uint32(self._rawdata)
def loaderSize(self) -> int: self._rawdata.seek(0x14) return read_uint32(self._rawdata)
def firstFileOffset(self) -> int: self._rawdata.seek(0x434) return read_uint32(self._rawdata)
def fstOffset(self) -> int: self._rawdata.seek(0x424) return read_uint32(self._rawdata)
def trackSize(self) -> int: self._rawdata.seek(20) return read_uint32(self._rawdata)
def debugMonitorVirtualAddr(self) -> int: self._rawdata.seek(0x404) return read_uint32(self._rawdata)
def dolOffset(self) -> int: self._rawdata.seek(0x420) return read_uint32(self._rawdata)
def debugMonitorOffset(self) -> int: self._rawdata.seek(0x400) return read_uint32(self._rawdata)
def __init__(self, f): f.seek(0x14, 1) size = read_uint32(f) size += read_uint32(f) f.seek(-0x1C, 1) self._rawdata = BytesIO(f.read(size + 0x20))
def trailerSize(self) -> int: self._rawdata.seek(0x18) return read_uint32(self._rawdata)
def argumentOffset(self) -> int: self._rawdata.seek(12) return read_uint32(self._rawdata)
def fstMaxSize(self) -> int: self._rawdata.seek(0x42C) return read_uint32(self._rawdata)
def trackLocation(self) -> int: self._rawdata.seek(16) return read_uint32(self._rawdata)
def userVirtualAddress(self) -> int: self._rawdata.seek(0x430) return read_uint32(self._rawdata)
def countryCode(self) -> int: self._rawdata.seek(24) return read_uint32(self._rawdata)
def entryPoint(self) -> int: self._rawdata.seek(0x10) return read_uint32(self._rawdata)