Ejemplo n.º 1
0
        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)
                       ));
        }
Ejemplo n.º 2
0
 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;
 }