示例#1
0
        private void CmDissassembly_MouseClick(object sender, MouseEventArgs e)
        {
            int pc = LineToAddress[mouseOnLine];

            executeing = true;

            while (pc != GameState.CPU.PC && executeing)
            {
                cycles += GameState.CPU.Execute();

                if (cycles >= PPU.CyclesPerLine)
                {
                    PPU.RenderLine();
                    if (PPU.Scanline == 241 && PPU.VblankNMIEnabled)
                    {
                        GameState.CPU.NMI();
                    }
                    cycles = 0;
                }
            }

            executeing = false;

            Step();
        }
示例#2
0
        private void RunOneLine()
        {
            while (cycles < PPU.CyclesPerLine)
            {
                cycles += GameState.CPU.Execute();
            }
            if (PPU.Scanline == 241 && PPU.VblankNMIEnabled)
            {
                GameState.CPU.NMI();
            }

            cycles = 0;

            PPU.RenderLine();
        }
示例#3
0
        private void BtnStep_Click(object sender, EventArgs e)
        {
            cycles += GameState.CPU.Execute();

            if (cycles >= PPU.CyclesPerLine)
            {
                PPU.RenderLine();
                if (PPU.Scanline == 241 && PPU.VblankNMIEnabled)
                {
                    GameState.CPU.NMI();
                }
                cycles = 0;
            }

            Step();
        }