public bool Open(Stream fs) { PlainRegion = new CXIPlaingRegion(); byte[] plainRegionBuffer; OffsetInNCSD = fs.Position; Header = MarshalUtil.ReadStruct <CXIHeader>(fs); // get Plaing Region fs.Seek(OffsetInNCSD + Header.PlainRegionOffset * 0x200, SeekOrigin.Begin); plainRegionBuffer = new byte[Header.PlainRegionSize * 0x200]; fs.Read(plainRegionBuffer, 0, plainRegionBuffer.Length); PlainRegion = CXIHeader.getPlainRegionStringsFrom(plainRegionBuffer); // byte[] exhBytes = new byte[2048]; // fs.Read(exhBytes, 0, exhBytes.Length); //TODO: read extended header // Array.Reverse(exh); TitleInfo = TitleInfo.Resolve(Header.ProductCode, Header.MakerCode); return(true); }
public bool Open(Stream fs) { PlainRegion = new CXIPlaingRegion(); byte[] plainRegionBuffer; OffsetInNCSD = fs.Position; Header = MarshalUtil.ReadStruct<CXIHeader>(fs); // get Plaing Region fs.Seek(OffsetInNCSD + Header.PlainRegionOffset * 0x200, SeekOrigin.Begin); plainRegionBuffer = new byte[Header.PlainRegionSize * 0x200]; fs.Read(plainRegionBuffer, 0, plainRegionBuffer.Length); PlainRegion = CXIHeader.getPlainRegionStringsFrom(plainRegionBuffer); GetNCCHDetails(); // byte[] exhBytes = new byte[2048]; // fs.Read(exhBytes, 0, exhBytes.Length); //TODO: read extended header // Array.Reverse(exh); TitleInfo = TitleInfo.Resolve(Header.ProductCode, Header.MakerCode); return true; }