/// <summary> /// VBlank終了時のクリアー処理 /// </summary> void INesPpuVBlank.Clear() { this.PpuCurrentLine = 0; this.Clock.Clock = 0; this.StatusRegister.IsVBlank = false; this.StatusRegister.IsSpriteHit = false; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="rom1"></param> /// <param name="rom2"></param> /// <param name="HMirror"></param> /// <param name="VMirror"></param> /// <param name="imageSet"></param> public NesPpu(byte[] rom1, byte[] rom2, bool HMirror, bool VMirror, Action<uint[]> imageSet) { this.PatternTables = new PatternTableCollection(rom1, rom2); this.NameAttributePairTables = new NameAttributeTablePairCollection(); this.VirtualNameAttributePairTables = new VirtualNameAttributeTablePairCollection(this.NameAttributePairTables); this.Sprites = new SpriteCollection(); this.BgPalettes = new PaletteCollection(); this.SpritePalettes = new PaletteCollection(); this.ControlRegister1 = new NesPpuControlRegister1(); this.ControlRegister2 = new NesPpuControlRegister2(); this.StatusRegister = new NesPpuStatusRegister(); this.DRamAddress = new PpuMemoryAddress(); this.SpriteAddress = new PpuSpriteAddress(); this.Scroll = new NesPpuScroll(); this.HMirror = HMirror; this.VMirror = VMirror; this.ImageCommitAction = imageSet; this.Clock = new NesPpuClock(); this.PpuImage = new NesPpuImage(); }