Debugger: Added CPU/PPU status frames
This commit is contained in:
parent
98d72d55b5
commit
337416f3a5
7 changed files with 836 additions and 22 deletions
574
UI/Debugger/Controls/ctrlConsoleStatus.Designer.cs
generated
Normal file
574
UI/Debugger/Controls/ctrlConsoleStatus.Designer.cs
generated
Normal file
|
@ -0,0 +1,574 @@
|
|||
namespace Mesen.GUI.Debugger.Controls
|
||||
{
|
||||
partial class ctrlConsoleStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if(disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.grpCpu = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lblA = new System.Windows.Forms.Label();
|
||||
this.txtA = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.txtX = new System.Windows.Forms.TextBox();
|
||||
this.txtY = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.txtD = new System.Windows.Forms.TextBox();
|
||||
this.txtDB = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.txtPC = new System.Windows.Forms.TextBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.txtP = new System.Windows.Forms.TextBox();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.chkDecimal = new System.Windows.Forms.CheckBox();
|
||||
this.chkInterrupt = new System.Windows.Forms.CheckBox();
|
||||
this.chkCarry = new System.Windows.Forms.CheckBox();
|
||||
this.chkZero = new System.Windows.Forms.CheckBox();
|
||||
this.chkIndex = new System.Windows.Forms.CheckBox();
|
||||
this.chkMemory = new System.Windows.Forms.CheckBox();
|
||||
this.chkNegative = new System.Windows.Forms.CheckBox();
|
||||
this.chkOverflow = new System.Windows.Forms.CheckBox();
|
||||
this.chkEmulation = new System.Windows.Forms.CheckBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.txtS = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.txtStack = new System.Windows.Forms.TextBox();
|
||||
this.chkNmi = new System.Windows.Forms.CheckBox();
|
||||
this.chkIrq = new System.Windows.Forms.CheckBox();
|
||||
this.grpPpu = new System.Windows.Forms.GroupBox();
|
||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.txtScanline = new System.Windows.Forms.TextBox();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.txtCycle = new System.Windows.Forms.TextBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.txtHClocks = new System.Windows.Forms.TextBox();
|
||||
this.grpCpu.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.grpPpu.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// grpCpu
|
||||
//
|
||||
this.grpCpu.Controls.Add(this.tableLayoutPanel1);
|
||||
this.grpCpu.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.grpCpu.Location = new System.Drawing.Point(0, 0);
|
||||
this.grpCpu.Name = "grpCpu";
|
||||
this.grpCpu.Size = new System.Drawing.Size(342, 146);
|
||||
this.grpCpu.TabIndex = 0;
|
||||
this.grpCpu.TabStop = false;
|
||||
this.grpCpu.Text = "CPU";
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 8;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 2, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lblA, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtA, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label2, 4, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtX, 3, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtY, 5, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtD, 1, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtDB, 3, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label6, 6, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtPC, 7, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label7, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtP, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 2, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkEmulation, 1, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label4, 2, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtS, 7, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label5, 6, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtStack, 6, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkNmi, 1, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chkIrq, 2, 4);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 5;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(336, 127);
|
||||
this.tableLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(79, 6);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(17, 13);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "X:";
|
||||
//
|
||||
// lblA
|
||||
//
|
||||
this.lblA.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.lblA.AutoSize = true;
|
||||
this.lblA.Location = new System.Drawing.Point(3, 6);
|
||||
this.lblA.Name = "lblA";
|
||||
this.lblA.Size = new System.Drawing.Size(17, 13);
|
||||
this.lblA.TabIndex = 0;
|
||||
this.lblA.Text = "A:";
|
||||
//
|
||||
// txtA
|
||||
//
|
||||
this.txtA.Location = new System.Drawing.Point(27, 3);
|
||||
this.txtA.Name = "txtA";
|
||||
this.txtA.Size = new System.Drawing.Size(42, 20);
|
||||
this.txtA.TabIndex = 1;
|
||||
this.txtA.Text = "DDDD";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(158, 6);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(17, 13);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "Y:";
|
||||
//
|
||||
// txtX
|
||||
//
|
||||
this.txtX.Location = new System.Drawing.Point(110, 3);
|
||||
this.txtX.Name = "txtX";
|
||||
this.txtX.Size = new System.Drawing.Size(42, 20);
|
||||
this.txtX.TabIndex = 4;
|
||||
//
|
||||
// txtY
|
||||
//
|
||||
this.txtY.Location = new System.Drawing.Point(181, 3);
|
||||
this.txtY.Name = "txtY";
|
||||
this.txtY.Size = new System.Drawing.Size(42, 20);
|
||||
this.txtY.TabIndex = 5;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(3, 32);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(18, 13);
|
||||
this.label3.TabIndex = 6;
|
||||
this.label3.Text = "D:";
|
||||
//
|
||||
// txtD
|
||||
//
|
||||
this.txtD.Location = new System.Drawing.Point(27, 29);
|
||||
this.txtD.Name = "txtD";
|
||||
this.txtD.Size = new System.Drawing.Size(42, 20);
|
||||
this.txtD.TabIndex = 7;
|
||||
this.txtD.Text = "FFFF";
|
||||
//
|
||||
// txtDB
|
||||
//
|
||||
this.txtDB.Location = new System.Drawing.Point(110, 29);
|
||||
this.txtDB.Name = "txtDB";
|
||||
this.txtDB.Size = new System.Drawing.Size(25, 20);
|
||||
this.txtDB.TabIndex = 9;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(244, 6);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(24, 13);
|
||||
this.label6.TabIndex = 12;
|
||||
this.label6.Text = "PC:";
|
||||
//
|
||||
// txtPC
|
||||
//
|
||||
this.txtPC.Location = new System.Drawing.Point(274, 3);
|
||||
this.txtPC.Name = "txtPC";
|
||||
this.txtPC.Size = new System.Drawing.Size(56, 20);
|
||||
this.txtPC.TabIndex = 13;
|
||||
this.txtPC.Text = "DDDDDD";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(3, 58);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(17, 13);
|
||||
this.label7.TabIndex = 14;
|
||||
this.label7.Text = "P:";
|
||||
//
|
||||
// txtP
|
||||
//
|
||||
this.txtP.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.txtP.Location = new System.Drawing.Point(27, 55);
|
||||
this.txtP.Name = "txtP";
|
||||
this.txtP.Size = new System.Drawing.Size(25, 20);
|
||||
this.txtP.TabIndex = 15;
|
||||
this.txtP.Text = "DD";
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 5;
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 4);
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 40F));
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkDecimal, 0, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkInterrupt, 1, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkCarry, 3, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkZero, 2, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkIndex, 3, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkMemory, 2, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkNegative, 0, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.chkOverflow, 1, 0);
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(79, 55);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 2;
|
||||
this.tableLayoutPanel1.SetRowSpan(this.tableLayoutPanel2, 2);
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(159, 46);
|
||||
this.tableLayoutPanel2.TabIndex = 16;
|
||||
//
|
||||
// chkDecimal
|
||||
//
|
||||
this.chkDecimal.AutoSize = true;
|
||||
this.chkDecimal.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkDecimal.Name = "chkDecimal";
|
||||
this.chkDecimal.Size = new System.Drawing.Size(34, 17);
|
||||
this.chkDecimal.TabIndex = 25;
|
||||
this.chkDecimal.Text = "D";
|
||||
this.chkDecimal.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkInterrupt
|
||||
//
|
||||
this.chkInterrupt.AutoSize = true;
|
||||
this.chkInterrupt.Location = new System.Drawing.Point(43, 26);
|
||||
this.chkInterrupt.Name = "chkInterrupt";
|
||||
this.chkInterrupt.Size = new System.Drawing.Size(29, 17);
|
||||
this.chkInterrupt.TabIndex = 24;
|
||||
this.chkInterrupt.Text = "I";
|
||||
this.chkInterrupt.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkCarry
|
||||
//
|
||||
this.chkCarry.AutoSize = true;
|
||||
this.chkCarry.Location = new System.Drawing.Point(123, 26);
|
||||
this.chkCarry.Name = "chkCarry";
|
||||
this.chkCarry.Size = new System.Drawing.Size(33, 17);
|
||||
this.chkCarry.TabIndex = 23;
|
||||
this.chkCarry.Text = "C";
|
||||
this.chkCarry.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkZero
|
||||
//
|
||||
this.chkZero.AutoSize = true;
|
||||
this.chkZero.Location = new System.Drawing.Point(82, 26);
|
||||
this.chkZero.Name = "chkZero";
|
||||
this.chkZero.Size = new System.Drawing.Size(33, 17);
|
||||
this.chkZero.TabIndex = 21;
|
||||
this.chkZero.Text = "Z";
|
||||
this.chkZero.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkIndex
|
||||
//
|
||||
this.chkIndex.AutoSize = true;
|
||||
this.chkIndex.Location = new System.Drawing.Point(123, 3);
|
||||
this.chkIndex.Name = "chkIndex";
|
||||
this.chkIndex.Size = new System.Drawing.Size(33, 17);
|
||||
this.chkIndex.TabIndex = 18;
|
||||
this.chkIndex.Text = "X";
|
||||
this.chkIndex.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkMemory
|
||||
//
|
||||
this.chkMemory.AutoSize = true;
|
||||
this.chkMemory.Location = new System.Drawing.Point(82, 3);
|
||||
this.chkMemory.Name = "chkMemory";
|
||||
this.chkMemory.Size = new System.Drawing.Size(35, 17);
|
||||
this.chkMemory.TabIndex = 19;
|
||||
this.chkMemory.Text = "M";
|
||||
this.chkMemory.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkNegative
|
||||
//
|
||||
this.chkNegative.AutoSize = true;
|
||||
this.chkNegative.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkNegative.Name = "chkNegative";
|
||||
this.chkNegative.Size = new System.Drawing.Size(34, 17);
|
||||
this.chkNegative.TabIndex = 17;
|
||||
this.chkNegative.Text = "N";
|
||||
this.chkNegative.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkOverflow
|
||||
//
|
||||
this.chkOverflow.AutoSize = true;
|
||||
this.chkOverflow.Location = new System.Drawing.Point(43, 3);
|
||||
this.chkOverflow.Name = "chkOverflow";
|
||||
this.chkOverflow.Size = new System.Drawing.Size(33, 17);
|
||||
this.chkOverflow.TabIndex = 20;
|
||||
this.chkOverflow.Text = "V";
|
||||
this.chkOverflow.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkEmulation
|
||||
//
|
||||
this.chkEmulation.AutoSize = true;
|
||||
this.chkEmulation.Location = new System.Drawing.Point(27, 81);
|
||||
this.chkEmulation.Name = "chkEmulation";
|
||||
this.chkEmulation.Size = new System.Drawing.Size(33, 17);
|
||||
this.chkEmulation.TabIndex = 22;
|
||||
this.chkEmulation.Text = "E";
|
||||
this.chkEmulation.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(79, 32);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(25, 13);
|
||||
this.label4.TabIndex = 8;
|
||||
this.label4.Text = "DB:";
|
||||
//
|
||||
// txtS
|
||||
//
|
||||
this.txtS.Location = new System.Drawing.Point(274, 29);
|
||||
this.txtS.Name = "txtS";
|
||||
this.txtS.Size = new System.Drawing.Size(42, 20);
|
||||
this.txtS.TabIndex = 11;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(244, 32);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(17, 13);
|
||||
this.label5.TabIndex = 10;
|
||||
this.label5.Text = "S:";
|
||||
//
|
||||
// txtStack
|
||||
//
|
||||
this.txtStack.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.txtStack, 2);
|
||||
this.txtStack.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.txtStack.Location = new System.Drawing.Point(244, 55);
|
||||
this.txtStack.Multiline = true;
|
||||
this.txtStack.Name = "txtStack";
|
||||
this.txtStack.ReadOnly = true;
|
||||
this.tableLayoutPanel1.SetRowSpan(this.txtStack, 3);
|
||||
this.txtStack.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txtStack.Size = new System.Drawing.Size(89, 69);
|
||||
this.txtStack.TabIndex = 23;
|
||||
//
|
||||
// chkNmi
|
||||
//
|
||||
this.chkNmi.AutoSize = true;
|
||||
this.chkNmi.Location = new System.Drawing.Point(27, 107);
|
||||
this.chkNmi.Name = "chkNmi";
|
||||
this.chkNmi.Size = new System.Drawing.Size(46, 17);
|
||||
this.chkNmi.TabIndex = 27;
|
||||
this.chkNmi.Text = "NMI";
|
||||
this.chkNmi.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkIrq
|
||||
//
|
||||
this.chkIrq.AutoSize = true;
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.chkIrq, 2);
|
||||
this.chkIrq.Location = new System.Drawing.Point(79, 107);
|
||||
this.chkIrq.Name = "chkIrq";
|
||||
this.chkIrq.Size = new System.Drawing.Size(45, 17);
|
||||
this.chkIrq.TabIndex = 26;
|
||||
this.chkIrq.Text = "IRQ";
|
||||
this.chkIrq.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// grpPpu
|
||||
//
|
||||
this.grpPpu.Controls.Add(this.tableLayoutPanel3);
|
||||
this.grpPpu.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.grpPpu.Location = new System.Drawing.Point(0, 146);
|
||||
this.grpPpu.Name = "grpPpu";
|
||||
this.grpPpu.Size = new System.Drawing.Size(342, 47);
|
||||
this.grpPpu.TabIndex = 1;
|
||||
this.grpPpu.TabStop = false;
|
||||
this.grpPpu.Text = "PPU";
|
||||
//
|
||||
// tableLayoutPanel3
|
||||
//
|
||||
this.tableLayoutPanel3.ColumnCount = 6;
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel3.Controls.Add(this.txtScanline, 0, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.label8, 0, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.label9, 2, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.txtCycle, 3, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.label10, 4, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.txtHClocks, 5, 0);
|
||||
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 16);
|
||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
||||
this.tableLayoutPanel3.RowCount = 2;
|
||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel3.Size = new System.Drawing.Size(336, 28);
|
||||
this.tableLayoutPanel3.TabIndex = 0;
|
||||
//
|
||||
// txtScanline
|
||||
//
|
||||
this.txtScanline.Location = new System.Drawing.Point(60, 3);
|
||||
this.txtScanline.Name = "txtScanline";
|
||||
this.txtScanline.Size = new System.Drawing.Size(33, 20);
|
||||
this.txtScanline.TabIndex = 3;
|
||||
this.txtScanline.Text = "555";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(3, 6);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(51, 13);
|
||||
this.label8.TabIndex = 1;
|
||||
this.label8.Text = "Scanline:";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(99, 6);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(36, 13);
|
||||
this.label9.TabIndex = 2;
|
||||
this.label9.Text = "Cycle:";
|
||||
//
|
||||
// txtCycle
|
||||
//
|
||||
this.txtCycle.Location = new System.Drawing.Point(141, 3);
|
||||
this.txtCycle.Name = "txtCycle";
|
||||
this.txtCycle.Size = new System.Drawing.Size(33, 20);
|
||||
this.txtCycle.TabIndex = 4;
|
||||
this.txtCycle.Text = "555";
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(180, 6);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(53, 13);
|
||||
this.label10.TabIndex = 5;
|
||||
this.label10.Text = "H Clocks:";
|
||||
//
|
||||
// txtHClocks
|
||||
//
|
||||
this.txtHClocks.Location = new System.Drawing.Point(239, 3);
|
||||
this.txtHClocks.Name = "txtHClocks";
|
||||
this.txtHClocks.Size = new System.Drawing.Size(33, 20);
|
||||
this.txtHClocks.TabIndex = 6;
|
||||
this.txtHClocks.Text = "555";
|
||||
//
|
||||
// ctrlConsoleStatus
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.grpPpu);
|
||||
this.Controls.Add(this.grpCpu);
|
||||
this.Name = "ctrlConsoleStatus";
|
||||
this.Size = new System.Drawing.Size(342, 220);
|
||||
this.grpCpu.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.PerformLayout();
|
||||
this.grpPpu.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox grpCpu;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label lblA;
|
||||
private System.Windows.Forms.TextBox txtA;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox txtX;
|
||||
private System.Windows.Forms.TextBox txtY;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox txtD;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.TextBox txtDB;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox txtS;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox txtPC;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.TextBox txtP;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.CheckBox chkEmulation;
|
||||
private System.Windows.Forms.CheckBox chkDecimal;
|
||||
private System.Windows.Forms.CheckBox chkInterrupt;
|
||||
private System.Windows.Forms.CheckBox chkCarry;
|
||||
private System.Windows.Forms.CheckBox chkZero;
|
||||
private System.Windows.Forms.CheckBox chkIndex;
|
||||
private System.Windows.Forms.CheckBox chkMemory;
|
||||
private System.Windows.Forms.CheckBox chkNegative;
|
||||
private System.Windows.Forms.CheckBox chkOverflow;
|
||||
private System.Windows.Forms.TextBox txtStack;
|
||||
private System.Windows.Forms.CheckBox chkNmi;
|
||||
private System.Windows.Forms.CheckBox chkIrq;
|
||||
private System.Windows.Forms.GroupBox grpPpu;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||
private System.Windows.Forms.TextBox txtScanline;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.TextBox txtCycle;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.TextBox txtHClocks;
|
||||
}
|
||||
}
|
85
UI/Debugger/Controls/ctrlConsoleStatus.cs
Normal file
85
UI/Debugger/Controls/ctrlConsoleStatus.cs
Normal file
|
@ -0,0 +1,85 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Mesen.GUI.Controls;
|
||||
using Mesen.GUI.Forms;
|
||||
|
||||
namespace Mesen.GUI.Debugger.Controls
|
||||
{
|
||||
public partial class ctrlConsoleStatus : BaseControl
|
||||
{
|
||||
private EntityBinder _cpuBinder = new EntityBinder();
|
||||
private DebugState _lastState;
|
||||
|
||||
public ctrlConsoleStatus()
|
||||
{
|
||||
InitializeComponent();
|
||||
if(IsDesignMode) {
|
||||
return;
|
||||
}
|
||||
|
||||
_cpuBinder.Entity = new CpuState();
|
||||
_cpuBinder.AddBinding("A", txtA);
|
||||
_cpuBinder.AddBinding("X", txtX);
|
||||
_cpuBinder.AddBinding("Y", txtY);
|
||||
_cpuBinder.AddBinding("D", txtD);
|
||||
_cpuBinder.AddBinding("DBR", txtDB);
|
||||
_cpuBinder.AddBinding("SP", txtS);
|
||||
_cpuBinder.AddBinding("PS", txtP);
|
||||
|
||||
_cpuBinder.AddBinding("NmiFlag", chkNmi);
|
||||
}
|
||||
|
||||
public void UpdateStatus(DebugState state)
|
||||
{
|
||||
_lastState = state;
|
||||
|
||||
_cpuBinder.Entity = state.Cpu;
|
||||
_cpuBinder.UpdateUI();
|
||||
|
||||
txtPC.Text = ((state.Cpu.K << 16) | state.Cpu.PC).ToString("X6");
|
||||
txtCycle.Text = state.Ppu.Cycle.ToString();
|
||||
txtScanline.Text = state.Ppu.Scanline.ToString();
|
||||
txtHClocks.Text = (state.Ppu.Cycle * 4).ToString();
|
||||
|
||||
UpdateCpuFlags();
|
||||
|
||||
chkIrq.Checked = state.Cpu.IrqSource != 0;
|
||||
UpdateStack();
|
||||
}
|
||||
|
||||
private void UpdateCpuFlags()
|
||||
{
|
||||
ProcFlags flags = _lastState.Cpu.PS;
|
||||
chkIndex.Checked = flags.HasFlag(ProcFlags.IndexMode8);
|
||||
chkCarry.Checked = flags.HasFlag(ProcFlags.Carry);
|
||||
chkDecimal.Checked = flags.HasFlag(ProcFlags.Decimal);
|
||||
chkInterrupt.Checked = flags.HasFlag(ProcFlags.IrqDisable);
|
||||
chkNegative.Checked = flags.HasFlag(ProcFlags.Negative);
|
||||
chkOverflow.Checked = flags.HasFlag(ProcFlags.Overflow);
|
||||
chkMemory.Checked = flags.HasFlag(ProcFlags.MemoryMode8);
|
||||
chkZero.Checked = flags.HasFlag(ProcFlags.Zero);
|
||||
}
|
||||
|
||||
private void UpdateStack()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(UInt32 i = (uint)_lastState.Cpu.SP + 1; (i & 0xFF) != 0; i++) {
|
||||
sb.Append("$");
|
||||
sb.Append(DebugApi.GetMemoryValue(SnesMemoryType.CpuMemory, i).ToString("X2"));
|
||||
sb.Append(", ");
|
||||
}
|
||||
string stack = sb.ToString();
|
||||
if(stack.Length > 2) {
|
||||
stack = stack.Substring(0, stack.Length - 2);
|
||||
}
|
||||
txtStack.Text = stack;
|
||||
}
|
||||
}
|
||||
}
|
120
UI/Debugger/Controls/ctrlConsoleStatus.resx
Normal file
120
UI/Debugger/Controls/ctrlConsoleStatus.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
48
UI/Debugger/frmDebugger.Designer.cs
generated
48
UI/Debugger/frmDebugger.Designer.cs
generated
|
@ -56,9 +56,10 @@
|
|||
this.mnuBreakIn = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mnuBreakOn = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ctrlSplitContainer = new Mesen.GUI.Controls.ctrlSplitContainer();
|
||||
this.ctrlStatus = new Mesen.GUI.Debugger.Controls.ctrlConsoleStatus();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.ctrlWatch = new Mesen.GUI.Debugger.ctrlWatch();
|
||||
this.grpWatch = new System.Windows.Forms.GroupBox();
|
||||
this.ctrlWatch = new Mesen.GUI.Debugger.ctrlWatch();
|
||||
this.grpBreakpoints = new System.Windows.Forms.GroupBox();
|
||||
this.ctrlBreakpoints = new Mesen.GUI.Debugger.Controls.ctrlBreakpoints();
|
||||
this.ctrlMesenMenuStrip1.SuspendLayout();
|
||||
|
@ -76,7 +77,7 @@
|
|||
this.ctrlDisassemblyView.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlDisassemblyView.Location = new System.Drawing.Point(0, 0);
|
||||
this.ctrlDisassemblyView.Name = "ctrlDisassemblyView";
|
||||
this.ctrlDisassemblyView.Size = new System.Drawing.Size(852, 439);
|
||||
this.ctrlDisassemblyView.Size = new System.Drawing.Size(484, 439);
|
||||
this.ctrlDisassemblyView.TabIndex = 0;
|
||||
//
|
||||
// ctrlMesenMenuStrip1
|
||||
|
@ -85,7 +86,7 @@
|
|||
this.debugToolStripMenuItem});
|
||||
this.ctrlMesenMenuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.ctrlMesenMenuStrip1.Name = "ctrlMesenMenuStrip1";
|
||||
this.ctrlMesenMenuStrip1.Size = new System.Drawing.Size(852, 24);
|
||||
this.ctrlMesenMenuStrip1.Size = new System.Drawing.Size(832, 24);
|
||||
this.ctrlMesenMenuStrip1.TabIndex = 1;
|
||||
this.ctrlMesenMenuStrip1.Text = "ctrlMesenMenuStrip1";
|
||||
//
|
||||
|
@ -267,14 +268,24 @@
|
|||
// ctrlSplitContainer.Panel1
|
||||
//
|
||||
this.ctrlSplitContainer.Panel1.Controls.Add(this.ctrlDisassemblyView);
|
||||
this.ctrlSplitContainer.Panel1.Controls.Add(this.ctrlStatus);
|
||||
//
|
||||
// ctrlSplitContainer.Panel2
|
||||
//
|
||||
this.ctrlSplitContainer.Panel2.Controls.Add(this.tableLayoutPanel1);
|
||||
this.ctrlSplitContainer.Size = new System.Drawing.Size(852, 620);
|
||||
this.ctrlSplitContainer.Size = new System.Drawing.Size(832, 620);
|
||||
this.ctrlSplitContainer.SplitterDistance = 439;
|
||||
this.ctrlSplitContainer.TabIndex = 2;
|
||||
//
|
||||
// ctrlStatus
|
||||
//
|
||||
this.ctrlStatus.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.ctrlStatus.Location = new System.Drawing.Point(484, 0);
|
||||
this.ctrlStatus.Name = "ctrlStatus";
|
||||
this.ctrlStatus.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||
this.ctrlStatus.Size = new System.Drawing.Size(348, 439);
|
||||
this.ctrlStatus.TabIndex = 1;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
|
@ -287,35 +298,35 @@
|
|||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 1;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(852, 177);
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(832, 177);
|
||||
this.tableLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// ctrlWatch
|
||||
//
|
||||
this.ctrlWatch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlWatch.Location = new System.Drawing.Point(3, 16);
|
||||
this.ctrlWatch.Name = "ctrlWatch";
|
||||
this.ctrlWatch.Size = new System.Drawing.Size(414, 152);
|
||||
this.ctrlWatch.TabIndex = 0;
|
||||
//
|
||||
// grpWatch
|
||||
//
|
||||
this.grpWatch.Controls.Add(this.ctrlWatch);
|
||||
this.grpWatch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpWatch.Location = new System.Drawing.Point(3, 3);
|
||||
this.grpWatch.Name = "grpWatch";
|
||||
this.grpWatch.Size = new System.Drawing.Size(420, 171);
|
||||
this.grpWatch.Size = new System.Drawing.Size(410, 171);
|
||||
this.grpWatch.TabIndex = 1;
|
||||
this.grpWatch.TabStop = false;
|
||||
this.grpWatch.Text = "Watch";
|
||||
//
|
||||
// ctrlWatch
|
||||
//
|
||||
this.ctrlWatch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlWatch.Location = new System.Drawing.Point(3, 16);
|
||||
this.ctrlWatch.Name = "ctrlWatch";
|
||||
this.ctrlWatch.Size = new System.Drawing.Size(404, 152);
|
||||
this.ctrlWatch.TabIndex = 0;
|
||||
//
|
||||
// grpBreakpoints
|
||||
//
|
||||
this.grpBreakpoints.Controls.Add(this.ctrlBreakpoints);
|
||||
this.grpBreakpoints.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grpBreakpoints.Location = new System.Drawing.Point(429, 3);
|
||||
this.grpBreakpoints.Location = new System.Drawing.Point(419, 3);
|
||||
this.grpBreakpoints.Name = "grpBreakpoints";
|
||||
this.grpBreakpoints.Size = new System.Drawing.Size(420, 171);
|
||||
this.grpBreakpoints.Size = new System.Drawing.Size(410, 171);
|
||||
this.grpBreakpoints.TabIndex = 2;
|
||||
this.grpBreakpoints.TabStop = false;
|
||||
this.grpBreakpoints.Text = "Breakpoints";
|
||||
|
@ -325,14 +336,14 @@
|
|||
this.ctrlBreakpoints.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlBreakpoints.Location = new System.Drawing.Point(3, 16);
|
||||
this.ctrlBreakpoints.Name = "ctrlBreakpoints";
|
||||
this.ctrlBreakpoints.Size = new System.Drawing.Size(414, 152);
|
||||
this.ctrlBreakpoints.Size = new System.Drawing.Size(404, 152);
|
||||
this.ctrlBreakpoints.TabIndex = 0;
|
||||
//
|
||||
// frmDebugger
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(852, 644);
|
||||
this.ClientSize = new System.Drawing.Size(832, 644);
|
||||
this.Controls.Add(this.ctrlSplitContainer);
|
||||
this.Controls.Add(this.ctrlMesenMenuStrip1);
|
||||
this.Name = "frmDebugger";
|
||||
|
@ -383,5 +394,6 @@
|
|||
private System.Windows.Forms.GroupBox grpWatch;
|
||||
private System.Windows.Forms.GroupBox grpBreakpoints;
|
||||
private Controls.ctrlBreakpoints ctrlBreakpoints;
|
||||
private Controls.ctrlConsoleStatus ctrlStatus;
|
||||
}
|
||||
}
|
|
@ -75,6 +75,7 @@ namespace Mesen.GUI.Debugger
|
|||
int activeAddress = (int)((state.Cpu.K << 16) | state.Cpu.PC);
|
||||
|
||||
this.BeginInvoke((MethodInvoker)(() => {
|
||||
ctrlStatus.UpdateStatus(state);
|
||||
ctrlDisassemblyView.SetActiveAddress(activeAddress);
|
||||
ctrlWatch.UpdateWatch(true);
|
||||
}));
|
||||
|
|
|
@ -133,6 +133,19 @@ namespace Mesen.GUI
|
|||
WaitingForIrq = 2
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum ProcFlags : byte
|
||||
{
|
||||
Carry = 0x01,
|
||||
Zero = 0x02,
|
||||
IrqDisable = 0x04,
|
||||
Decimal = 0x08,
|
||||
IndexMode8 = 0x10,
|
||||
MemoryMode8 = 0x20,
|
||||
Overflow = 0x40,
|
||||
Negative = 0x80
|
||||
}
|
||||
|
||||
public struct CpuState
|
||||
{
|
||||
public UInt64 CycleCount;
|
||||
|
@ -147,14 +160,14 @@ namespace Mesen.GUI
|
|||
|
||||
public byte K;
|
||||
public byte DBR;
|
||||
public byte PS;
|
||||
public ProcFlags PS;
|
||||
[MarshalAs(UnmanagedType.I1)] public bool EmulationMode;
|
||||
|
||||
[MarshalAs(UnmanagedType.I1)] bool NmiFlag;
|
||||
[MarshalAs(UnmanagedType.I1)] bool PrevNmiFlag;
|
||||
[MarshalAs(UnmanagedType.I1)] public bool NmiFlag;
|
||||
[MarshalAs(UnmanagedType.I1)] public bool PrevNmiFlag;
|
||||
public byte IrqSource;
|
||||
public byte PrevIrqSource;
|
||||
CpuStopState StopState;
|
||||
public CpuStopState StopState;
|
||||
};
|
||||
|
||||
public struct PpuState
|
||||
|
|
|
@ -302,6 +302,12 @@
|
|||
<Compile Include="Debugger\Controls\ctrlColorPicker.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Debugger\Controls\ctrlConsoleStatus.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Debugger\Controls\ctrlConsoleStatus.Designer.cs">
|
||||
<DependentUpon>ctrlConsoleStatus.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Debugger\Controls\ctrlDbgShortcuts.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
@ -513,6 +519,9 @@
|
|||
<EmbeddedResource Include="Debugger\Breakpoints\frmBreakpoint.resx">
|
||||
<DependentUpon>frmBreakpoint.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Debugger\Controls\ctrlConsoleStatus.resx">
|
||||
<DependentUpon>ctrlConsoleStatus.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Debugger\Controls\ctrlDbgShortcuts.resx">
|
||||
<DependentUpon>ctrlDbgShortcuts.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
Loading…
Add table
Reference in a new issue