예제 #1
0
        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);
        }
예제 #2
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);
            }
        }