コード例 #1
0
ファイル: NesPpu.cs プロジェクト: toshi127x/NesSharp
 /// <summary>
 /// VBlank終了時のクリアー処理
 /// </summary>
 void INesPpuVBlank.Clear()
 {
     this.PpuCurrentLine = 0;
     this.Clock.Clock = 0;
     this.StatusRegister.IsVBlank = false;
     this.StatusRegister.IsSpriteHit = false;
 }
コード例 #2
0
ファイル: NesPpu.cs プロジェクト: toshi127x/NesSharp
        /// <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();
        }