public override bool OnInitialize() { _name = Header->GameID; _gameName = Header->GameName; _partInfo = Get <ISOCommonPartInfo>(0x400); ISOPartLists p = Get <ISOPartLists>(0x40000); return(p._partitionCount > 0 || p._channelCount > 0); }
public override void OnPopulate() { ISOPartLists p = Get <ISOPartLists>(0x40000); int pCount = p._partitionCount; int total = p._channelCount + pCount; for (int i = 0; i < total; ++i) { long offset = i < pCount ? (p.PartitionOffset + i * 8L) : (p.ChannelOffset + (i - pCount) * 8L); PartitionTableEntry e = Get <PartitionTableEntry>(offset); new ISOPartitionNode(e, i >= pCount).Create(this, e._offset * OffMult, 0x8000, false); } }