From bf15393a3cdf08647701e3acebba3aca36e819d2 Mon Sep 17 00:00:00 2001 From: zeromus Date: Mon, 3 Dec 2012 18:21:05 +0000 Subject: [PATCH] snesgfxdebugger-add easier toggle for multiple BG layer visibility --- .../SNESGraphicsDebugger.Designer.cs | 124 ++++++++++-------- .../SNESTools/SNESGraphicsDebugger.cs | 35 ++++- .../SNESTools/SNESGraphicsDebugger.resx | 3 + 3 files changed, 104 insertions(+), 58 deletions(-) diff --git a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.Designer.cs b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.Designer.cs index 9e11af8f10..da10d1f88d 100644 --- a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.Designer.cs +++ b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.Designer.cs @@ -72,7 +72,7 @@ this.radioButton3 = new System.Windows.Forms.RadioButton(); this.radioButton13 = new System.Windows.Forms.RadioButton(); this.radioButton2 = new System.Windows.Forms.RadioButton(); - this.label41 = new System.Windows.Forms.Label(); + this.lblEnPrio3 = new System.Windows.Forms.Label(); this.txtOBSELT1OfsDescr = new System.Windows.Forms.TextBox(); this.checkEN1_OBJ = new System.Windows.Forms.CheckBox(); this.label30 = new System.Windows.Forms.Label(); @@ -87,16 +87,16 @@ this.checkEN3_OBJ = new System.Windows.Forms.CheckBox(); this.checkEN2_OBJ = new System.Windows.Forms.CheckBox(); this.txtOBSELSizeDescr = new System.Windows.Forms.TextBox(); - this.label40 = new System.Windows.Forms.Label(); + this.lblEnPrio2 = new System.Windows.Forms.Label(); this.label28 = new System.Windows.Forms.Label(); - this.label39 = new System.Windows.Forms.Label(); + this.lblEnPrio1 = new System.Windows.Forms.Label(); this.label20 = new System.Windows.Forms.Label(); this.checkScreenExtbg = new System.Windows.Forms.CheckBox(); this.label38 = new System.Windows.Forms.Label(); this.label21 = new System.Windows.Forms.Label(); this.txtScreenCGADSUB_Half = new System.Windows.Forms.CheckBox(); this.checkScreenHires = new System.Windows.Forms.CheckBox(); - this.label37 = new System.Windows.Forms.Label(); + this.lblEnPrio0 = new System.Windows.Forms.Label(); this.label18391 = new System.Windows.Forms.Label(); this.checkEN0_OBJ = new System.Windows.Forms.CheckBox(); this.checkScreenOverscan = new System.Windows.Forms.CheckBox(); @@ -576,7 +576,7 @@ this.groupBox2.Controls.Add(this.label26); this.groupBox2.Controls.Add(this.txtOBSELT1OfsBits); this.groupBox2.Controls.Add(this.groupBox8); - this.groupBox2.Controls.Add(this.label41); + this.groupBox2.Controls.Add(this.lblEnPrio3); this.groupBox2.Controls.Add(this.txtOBSELT1OfsDescr); this.groupBox2.Controls.Add(this.checkEN1_OBJ); this.groupBox2.Controls.Add(this.label30); @@ -591,16 +591,16 @@ this.groupBox2.Controls.Add(this.checkEN3_OBJ); this.groupBox2.Controls.Add(this.checkEN2_OBJ); this.groupBox2.Controls.Add(this.txtOBSELSizeDescr); - this.groupBox2.Controls.Add(this.label40); + this.groupBox2.Controls.Add(this.lblEnPrio2); this.groupBox2.Controls.Add(this.label28); - this.groupBox2.Controls.Add(this.label39); + this.groupBox2.Controls.Add(this.lblEnPrio1); this.groupBox2.Controls.Add(this.label20); this.groupBox2.Controls.Add(this.checkScreenExtbg); this.groupBox2.Controls.Add(this.label38); this.groupBox2.Controls.Add(this.label21); this.groupBox2.Controls.Add(this.txtScreenCGADSUB_Half); this.groupBox2.Controls.Add(this.checkScreenHires); - this.groupBox2.Controls.Add(this.label37); + this.groupBox2.Controls.Add(this.lblEnPrio0); this.groupBox2.Controls.Add(this.label18391); this.groupBox2.Controls.Add(this.checkEN0_OBJ); this.groupBox2.Controls.Add(this.checkScreenOverscan); @@ -829,14 +829,17 @@ this.radioButton2.Text = "BG2"; this.radioButton2.UseVisualStyleBackColor = true; // - // label41 + // lblEnPrio3 // - this.label41.AutoSize = true; - this.label41.Location = new System.Drawing.Point(4, 161); - this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(49, 13); - this.label41.TabIndex = 101; - this.label41.Text = "EN.Prio3"; + this.lblEnPrio3.AutoSize = true; + this.lblEnPrio3.ForeColor = System.Drawing.Color.Blue; + this.lblEnPrio3.Location = new System.Drawing.Point(3, 161); + this.lblEnPrio3.Name = "lblEnPrio3"; + this.lblEnPrio3.Size = new System.Drawing.Size(49, 13); + this.lblEnPrio3.TabIndex = 101; + this.lblEnPrio3.Text = "EN.Prio3"; + this.lblEnPrio3.Click += new System.EventHandler(this.lblEnPrio3_Click); + this.lblEnPrio3.DoubleClick += new System.EventHandler(this.lblEnPrio3_Click); // // txtOBSELT1OfsDescr // @@ -976,14 +979,17 @@ this.txtOBSELSizeDescr.TabIndex = 48; this.txtOBSELSizeDescr.Text = "64x32, 32x32"; // - // label40 + // lblEnPrio2 // - this.label40.AutoSize = true; - this.label40.Location = new System.Drawing.Point(4, 146); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(49, 13); - this.label40.TabIndex = 93; - this.label40.Text = "EN.Prio2"; + this.lblEnPrio2.AutoSize = true; + this.lblEnPrio2.ForeColor = System.Drawing.Color.Blue; + this.lblEnPrio2.Location = new System.Drawing.Point(3, 146); + this.lblEnPrio2.Name = "lblEnPrio2"; + this.lblEnPrio2.Size = new System.Drawing.Size(49, 13); + this.lblEnPrio2.TabIndex = 93; + this.lblEnPrio2.Text = "EN.Prio2"; + this.lblEnPrio2.Click += new System.EventHandler(this.lblEnPrio2_Click); + this.lblEnPrio2.DoubleClick += new System.EventHandler(this.lblEnPrio2_Click); // // label28 // @@ -994,14 +1000,17 @@ this.label28.TabIndex = 47; this.label28.Text = "Size"; // - // label39 + // lblEnPrio1 // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(162, 130); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(49, 13); - this.label39.TabIndex = 92; - this.label39.Text = "EN.Prio1"; + this.lblEnPrio1.AutoSize = true; + this.lblEnPrio1.ForeColor = System.Drawing.Color.Blue; + this.lblEnPrio1.Location = new System.Drawing.Point(162, 130); + this.lblEnPrio1.Name = "lblEnPrio1"; + this.lblEnPrio1.Size = new System.Drawing.Size(49, 13); + this.lblEnPrio1.TabIndex = 92; + this.lblEnPrio1.Text = "EN.Prio1"; + this.lblEnPrio1.Click += new System.EventHandler(this.lblEnPrio1_Click); + this.lblEnPrio1.DoubleClick += new System.EventHandler(this.lblEnPrio1_Click); // // label20 // @@ -1025,7 +1034,7 @@ // label38 // this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(228, 131); + this.label38.Location = new System.Drawing.Point(229, 131); this.label38.Name = "label38"; this.label38.Size = new System.Drawing.Size(26, 13); this.label38.TabIndex = 91; @@ -1044,7 +1053,7 @@ // this.txtScreenCGADSUB_Half.AutoSize = true; this.txtScreenCGADSUB_Half.Enabled = false; - this.txtScreenCGADSUB_Half.Location = new System.Drawing.Point(213, 131); + this.txtScreenCGADSUB_Half.Location = new System.Drawing.Point(214, 131); this.txtScreenCGADSUB_Half.Name = "txtScreenCGADSUB_Half"; this.txtScreenCGADSUB_Half.Size = new System.Drawing.Size(15, 14); this.txtScreenCGADSUB_Half.TabIndex = 90; @@ -1060,14 +1069,17 @@ this.checkScreenHires.TabIndex = 24; this.checkScreenHires.UseVisualStyleBackColor = true; // - // label37 + // lblEnPrio0 // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(162, 115); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(49, 13); - this.label37.TabIndex = 89; - this.label37.Text = "EN.Prio0"; + this.lblEnPrio0.AutoSize = true; + this.lblEnPrio0.ForeColor = System.Drawing.Color.Blue; + this.lblEnPrio0.Location = new System.Drawing.Point(162, 115); + this.lblEnPrio0.Name = "lblEnPrio0"; + this.lblEnPrio0.Size = new System.Drawing.Size(49, 13); + this.lblEnPrio0.TabIndex = 89; + this.lblEnPrio0.Text = "EN.Prio0"; + this.lblEnPrio0.Click += new System.EventHandler(this.lblEnPrio0_Click); + this.lblEnPrio0.DoubleClick += new System.EventHandler(this.lblEnPrio0_Click); // // label18391 // @@ -1178,7 +1190,7 @@ // // txtScreenCGADSUB_AddSub_Descr // - this.txtScreenCGADSUB_AddSub_Descr.Location = new System.Drawing.Point(233, 112); + this.txtScreenCGADSUB_AddSub_Descr.Location = new System.Drawing.Point(234, 112); this.txtScreenCGADSUB_AddSub_Descr.Multiline = true; this.txtScreenCGADSUB_AddSub_Descr.Name = "txtScreenCGADSUB_AddSub_Descr"; this.txtScreenCGADSUB_AddSub_Descr.ReadOnly = true; @@ -1198,7 +1210,7 @@ // txtScreenCGADSUB_AddSub // this.txtScreenCGADSUB_AddSub.BackColor = System.Drawing.Color.LightGreen; - this.txtScreenCGADSUB_AddSub.Location = new System.Drawing.Point(212, 112); + this.txtScreenCGADSUB_AddSub.Location = new System.Drawing.Point(213, 112); this.txtScreenCGADSUB_AddSub.Multiline = true; this.txtScreenCGADSUB_AddSub.Name = "txtScreenCGADSUB_AddSub"; this.txtScreenCGADSUB_AddSub.ReadOnly = true; @@ -1209,7 +1221,7 @@ // label36 // this.label36.AutoSize = true; - this.label36.Location = new System.Drawing.Point(205, 96); + this.label36.Location = new System.Drawing.Point(206, 96); this.label36.Name = "label36"; this.label36.Size = new System.Drawing.Size(59, 13); this.label36.TabIndex = 82; @@ -1447,7 +1459,7 @@ // label25 // this.label25.AutoSize = true; - this.label25.Location = new System.Drawing.Point(228, 64); + this.label25.Location = new System.Drawing.Point(229, 64); this.label25.Name = "label25"; this.label25.Size = new System.Drawing.Size(61, 13); this.label25.TabIndex = 44; @@ -1456,7 +1468,7 @@ // txtScreenCGWSEL_MathFixed // this.txtScreenCGWSEL_MathFixed.BackColor = System.Drawing.Color.LightGreen; - this.txtScreenCGWSEL_MathFixed.Location = new System.Drawing.Point(212, 62); + this.txtScreenCGWSEL_MathFixed.Location = new System.Drawing.Point(213, 62); this.txtScreenCGWSEL_MathFixed.Multiline = true; this.txtScreenCGWSEL_MathFixed.Name = "txtScreenCGWSEL_MathFixed"; this.txtScreenCGWSEL_MathFixed.ReadOnly = true; @@ -1467,7 +1479,7 @@ // label2893719831 // this.label2893719831.AutoSize = true; - this.label2893719831.Location = new System.Drawing.Point(228, 45); + this.label2893719831.Location = new System.Drawing.Point(229, 45); this.label2893719831.Name = "label2893719831"; this.label2893719831.Size = new System.Drawing.Size(52, 13); this.label2893719831.TabIndex = 42; @@ -1476,7 +1488,7 @@ // txtScreenCGWSEL_ColorSubMask // this.txtScreenCGWSEL_ColorSubMask.BackColor = System.Drawing.Color.LightGreen; - this.txtScreenCGWSEL_ColorSubMask.Location = new System.Drawing.Point(212, 43); + this.txtScreenCGWSEL_ColorSubMask.Location = new System.Drawing.Point(213, 43); this.txtScreenCGWSEL_ColorSubMask.Multiline = true; this.txtScreenCGWSEL_ColorSubMask.Name = "txtScreenCGWSEL_ColorSubMask"; this.txtScreenCGWSEL_ColorSubMask.ReadOnly = true; @@ -1487,7 +1499,7 @@ // label23 // this.label23.AutoSize = true; - this.label23.Location = new System.Drawing.Point(228, 27); + this.label23.Location = new System.Drawing.Point(229, 27); this.label23.Name = "label23"; this.label23.Size = new System.Drawing.Size(56, 13); this.label23.TabIndex = 40; @@ -1496,7 +1508,7 @@ // txtScreenCGWSEL_ColorMask // this.txtScreenCGWSEL_ColorMask.BackColor = System.Drawing.Color.LightGreen; - this.txtScreenCGWSEL_ColorMask.Location = new System.Drawing.Point(212, 25); + this.txtScreenCGWSEL_ColorMask.Location = new System.Drawing.Point(213, 25); this.txtScreenCGWSEL_ColorMask.Multiline = true; this.txtScreenCGWSEL_ColorMask.Name = "txtScreenCGWSEL_ColorMask"; this.txtScreenCGWSEL_ColorMask.ReadOnly = true; @@ -1507,7 +1519,7 @@ // label22 // this.label22.AutoSize = true; - this.label22.Location = new System.Drawing.Point(205, 10); + this.label22.Location = new System.Drawing.Point(206, 10); this.label22.Name = "label22"; this.label22.Size = new System.Drawing.Size(53, 13); this.label22.TabIndex = 32; @@ -1516,7 +1528,7 @@ // label27 // this.label27.AutoSize = true; - this.label27.Location = new System.Drawing.Point(228, 81); + this.label27.Location = new System.Drawing.Point(229, 81); this.label27.Name = "label27"; this.label27.Size = new System.Drawing.Size(59, 13); this.label27.TabIndex = 31; @@ -1526,7 +1538,7 @@ // this.checkScreenCGWSEL_DirectColor.AutoSize = true; this.checkScreenCGWSEL_DirectColor.Enabled = false; - this.checkScreenCGWSEL_DirectColor.Location = new System.Drawing.Point(213, 81); + this.checkScreenCGWSEL_DirectColor.Location = new System.Drawing.Point(214, 81); this.checkScreenCGWSEL_DirectColor.Name = "checkScreenCGWSEL_DirectColor"; this.checkScreenCGWSEL_DirectColor.Size = new System.Drawing.Size(15, 14); this.checkScreenCGWSEL_DirectColor.TabIndex = 30; @@ -2157,7 +2169,7 @@ this.tpTile.Location = new System.Drawing.Point(4, 22); this.tpTile.Name = "tpTile"; this.tpTile.Padding = new System.Windows.Forms.Padding(3); - this.tpTile.Size = new System.Drawing.Size(206, 92); + this.tpTile.Size = new System.Drawing.Size(206, 94); this.tpTile.TabIndex = 1; this.tpTile.Text = "Tile"; this.tpTile.UseVisualStyleBackColor = true; @@ -2276,7 +2288,7 @@ this.tpMapEntry.Controls.Add(this.viewerMapEntryTile); this.tpMapEntry.Location = new System.Drawing.Point(4, 22); this.tpMapEntry.Name = "tpMapEntry"; - this.tpMapEntry.Size = new System.Drawing.Size(206, 92); + this.tpMapEntry.Size = new System.Drawing.Size(206, 94); this.tpMapEntry.TabIndex = 2; this.tpMapEntry.Text = "Map Entry"; this.tpMapEntry.UseVisualStyleBackColor = true; @@ -2859,13 +2871,13 @@ private System.Windows.Forms.TextBox txtScreenCGADSUB_AddSub_Descr; private System.Windows.Forms.Label label38; private System.Windows.Forms.CheckBox txtScreenCGADSUB_Half; - private System.Windows.Forms.Label label37; + private System.Windows.Forms.Label lblEnPrio0; private System.Windows.Forms.CheckBox checkEN0_OBJ; private System.Windows.Forms.CheckBox checkEN0_BG4; private System.Windows.Forms.CheckBox checkEN0_BG3; private System.Windows.Forms.CheckBox checkEN0_BG2; private System.Windows.Forms.CheckBox checkEN0_BG1; - private System.Windows.Forms.Label label41; + private System.Windows.Forms.Label lblEnPrio3; private System.Windows.Forms.CheckBox checkEN1_OBJ; private System.Windows.Forms.CheckBox checkEN1_BG4; private System.Windows.Forms.CheckBox checkEN1_BG3; @@ -2873,8 +2885,8 @@ private System.Windows.Forms.CheckBox checkEN1_BG1; private System.Windows.Forms.CheckBox checkEN3_OBJ; private System.Windows.Forms.CheckBox checkEN2_OBJ; - private System.Windows.Forms.Label label40; - private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label lblEnPrio2; + private System.Windows.Forms.Label lblEnPrio1; private System.Windows.Forms.TextBox txtBGPaletteInfo; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.Label labelClipboard; diff --git a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.cs b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.cs index ec9e008451..a19686487d 100644 --- a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.cs +++ b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.cs @@ -8,6 +8,9 @@ //TODO - use custom checkboxes for register-viewing checkboxes to make them green and checked //TODO - make freeze actually save the info caches, and re-render in realtime, so that you can pick something you want to see animate without having to hover your mouse just right. also add a checkbox to do the literal freeze (stop it from updating) //TODO - sprite wrapping is not correct +//TODO - add "scroll&screen" checkbox which changes BG1/2/3/4 display modes to render scrolled and limited to 256x224 (for matching obj screen) +// alternatively - add "BG1 Screen" as a complement to BG1 +//TODO - make Sprites mode respect priority toggles //DEFERRED: //. 256bpp modes (difficult to use) @@ -1367,12 +1370,40 @@ namespace BizHawk.MultiClient Global.MainForm.SyncCoreInputComm(); } + private void lblEnPrio0_Click(object sender, EventArgs e) + { + bool any = checkEN0_OBJ.Checked || checkEN0_BG1.Checked || checkEN0_BG2.Checked || checkEN0_BG3.Checked || checkEN0_BG4.Checked; + bool all = checkEN0_OBJ.Checked && checkEN0_BG1.Checked && checkEN0_BG2.Checked && checkEN0_BG3.Checked && checkEN0_BG4.Checked; + bool newval; + if (all) newval = false; + else newval = true; + checkEN0_OBJ.Checked = checkEN0_BG1.Checked = checkEN0_BG2.Checked = checkEN0_BG3.Checked = checkEN0_BG4.Checked = newval; + } - } + private void lblEnPrio1_Click(object sender, EventArgs e) + { + bool any = checkEN1_OBJ.Checked || checkEN1_BG1.Checked || checkEN1_BG2.Checked || checkEN1_BG3.Checked || checkEN1_BG4.Checked; + bool all = checkEN1_OBJ.Checked && checkEN1_BG1.Checked && checkEN1_BG2.Checked && checkEN1_BG3.Checked && checkEN1_BG4.Checked; + bool newval; + if (all) newval = false; + else newval = true; + checkEN1_OBJ.Checked = checkEN1_BG1.Checked = checkEN1_BG2.Checked = checkEN1_BG3.Checked = checkEN1_BG4.Checked = newval; + } -} + private void lblEnPrio2_Click(object sender, EventArgs e) + { + checkEN2_OBJ.Checked ^= true; + } + + private void lblEnPrio3_Click(object sender, EventArgs e) + { + checkEN3_OBJ.Checked ^= true; + } + + } //class SNESGraphicsDebugger +} //namespace BizHawk.MultiClient static class ControlExtensions diff --git a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.resx b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.resx index e795b29e7a..a0deffec77 100644 --- a/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.resx +++ b/BizHawk.MultiClient/SNESTools/SNESGraphicsDebugger.resx @@ -123,6 +123,9 @@ 126, 17 + + 126, 17 + Colors can be converted from the snes 555 format to PC standard 888 in several ways. Snes9x really didnt make any effort to make sense;