public static NesCart LoadFromFile(Nes nes, string filename) { var fileContents = System.IO.File.ReadAllBytes(filename); var position = 0; var header = ReadHeader(fileContents.AsSpan(0, 16)); position += 16; if (header.hasTrainer) { position += 512; } var prgRomSize = 16 * 1024 * header.PrgRomPages; var prgRom = fileContents.AsSpan(position, prgRomSize); position += prgRomSize; var chrRomSize = 8 * 1024 * header.ChrRomPages; var chrRom = fileContents.AsSpan(position, chrRomSize); return(new NesCart( System.IO.Path.GetFileName(filename), header, prgRom.ToArray(), chrRom.ToArray(), new byte[NesConsts.PrgPageSize + 1], NesCartMapper.Build(nes, header) )); }
public NesCart( string filename, NesCartHeader header, byte[] prgRom, byte[] chrRom, byte[] expansionArea, NesCartMapper mapper ) { this.Filename = filename; this.Header = header; this.PrgRom = prgRom; this.ChrRom = chrRom; this.ExpansionArea = expansionArea; this.Mapper = mapper; }