From 463747bfeaa0140a2416bfb5770129f978283dc9 Mon Sep 17 00:00:00 2001 From: "andres.delikat" Date: Sat, 27 Aug 2011 23:11:47 +0000 Subject: [PATCH] NES NameTable Viewer - implement mouse over data except for TileID --- .../NEStools/NESNameTableViewer.Designer.cs | 33 +++++++-------- .../NEStools/NESNameTableViewer.cs | 41 +++++++++++++++++++ BizHawk.MultiClient/NEStools/NESPPU.cs | 4 +- 3 files changed, 60 insertions(+), 18 deletions(-) diff --git a/BizHawk.MultiClient/NEStools/NESNameTableViewer.Designer.cs b/BizHawk.MultiClient/NEStools/NESNameTableViewer.Designer.cs index 48f6f41baa..a822ca3490 100644 --- a/BizHawk.MultiClient/NEStools/NESNameTableViewer.Designer.cs +++ b/BizHawk.MultiClient/NEStools/NESNameTableViewer.Designer.cs @@ -41,7 +41,6 @@ this.rbNametableSW = new System.Windows.Forms.RadioButton(); this.rbNametableSE = new System.Windows.Forms.RadioButton(); this.rbNametableAll = new System.Windows.Forms.RadioButton(); - this.NameTableView = new BizHawk.MultiClient.NameTableViewer(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.groupBox4 = new System.Windows.Forms.GroupBox(); @@ -51,6 +50,7 @@ this.TileIDLabel = new System.Windows.Forms.Label(); this.XYLabel = new System.Windows.Forms.Label(); this.PPUAddressLabel = new System.Windows.Forms.Label(); + this.NameTableView = new BizHawk.MultiClient.NameTableViewer(); this.groupBox1.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.groupBox2.SuspendLayout(); @@ -73,7 +73,7 @@ this.optionsToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(668, 24); + this.menuStrip1.Size = new System.Drawing.Size(679, 24); this.menuStrip1.TabIndex = 1; this.menuStrip1.Text = "menuStrip1"; // @@ -177,15 +177,6 @@ this.rbNametableAll.UseVisualStyleBackColor = true; this.rbNametableAll.CheckedChanged += new System.EventHandler(this.rbNametable_CheckedChanged); // - // NameTableView - // - this.NameTableView.BackColor = System.Drawing.Color.Black; - this.NameTableView.Location = new System.Drawing.Point(17, 19); - this.NameTableView.Name = "NameTableView"; - this.NameTableView.Size = new System.Drawing.Size(512, 480); - this.NameTableView.TabIndex = 0; - this.NameTableView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.NameTableView_MouseMove); - // // groupBox2 // this.groupBox2.Controls.Add(this.rbNametableNW); @@ -220,7 +211,7 @@ this.groupBox4.Controls.Add(this.label1); this.groupBox4.Location = new System.Drawing.Point(563, 179); this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(99, 100); + this.groupBox4.Size = new System.Drawing.Size(108, 100); this.groupBox4.TabIndex = 13; this.groupBox4.TabStop = false; this.groupBox4.Text = "Properties"; @@ -255,7 +246,7 @@ // TileIDLabel // this.TileIDLabel.AutoSize = true; - this.TileIDLabel.Location = new System.Drawing.Point(66, 26); + this.TileIDLabel.Location = new System.Drawing.Point(64, 26); this.TileIDLabel.Name = "TileIDLabel"; this.TileIDLabel.Size = new System.Drawing.Size(22, 13); this.TileIDLabel.TabIndex = 3; @@ -264,7 +255,7 @@ // XYLabel // this.XYLabel.AutoSize = true; - this.XYLabel.Location = new System.Drawing.Point(66, 43); + this.XYLabel.Location = new System.Drawing.Point(64, 43); this.XYLabel.Name = "XYLabel"; this.XYLabel.Size = new System.Drawing.Size(22, 13); this.XYLabel.TabIndex = 4; @@ -273,17 +264,27 @@ // PPUAddressLabel // this.PPUAddressLabel.AutoSize = true; - this.PPUAddressLabel.Location = new System.Drawing.Point(66, 60); + this.PPUAddressLabel.Location = new System.Drawing.Point(64, 60); this.PPUAddressLabel.Name = "PPUAddressLabel"; this.PPUAddressLabel.Size = new System.Drawing.Size(22, 13); this.PPUAddressLabel.TabIndex = 5; this.PPUAddressLabel.Text = " "; // + // NameTableView + // + this.NameTableView.BackColor = System.Drawing.Color.Black; + this.NameTableView.Location = new System.Drawing.Point(17, 19); + this.NameTableView.Name = "NameTableView"; + this.NameTableView.Size = new System.Drawing.Size(512, 480); + this.NameTableView.TabIndex = 0; + this.NameTableView.MouseLeave += new System.EventHandler(this.NameTableView_MouseLeave); + this.NameTableView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.NameTableView_MouseMove); + // // NESNameTableViewer // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(668, 561); + this.ClientSize = new System.Drawing.Size(679, 561); this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox2); diff --git a/BizHawk.MultiClient/NEStools/NESNameTableViewer.cs b/BizHawk.MultiClient/NEStools/NESNameTableViewer.cs index 613e4e885c..685e64fbef 100644 --- a/BizHawk.MultiClient/NEStools/NESNameTableViewer.cs +++ b/BizHawk.MultiClient/NEStools/NESNameTableViewer.cs @@ -172,7 +172,48 @@ namespace BizHawk.MultiClient private void NameTableView_MouseMove(object sender, MouseEventArgs e) { + int TileX, TileY, NameTable; + if (NameTableView.Which == NameTableViewer.WhichNametable.NT_ALL) + { + TileX = e.X / 8; + TileY = e.Y / 8; + NameTable = (TileX / 32) + ((TileY / 30) * 2); + } + else + { + switch (NameTableView.Which) + { + default: + case NameTableViewer.WhichNametable.NT_2000: + NameTable = 0; + break; + case NameTableViewer.WhichNametable.NT_2400: + NameTable = 1; + break; + case NameTableViewer.WhichNametable.NT_2800: + NameTable = 2; + break; + case NameTableViewer.WhichNametable.NT_2C00: + NameTable = 3; + break; + } + TileX = e.X / 16; + TileY = e.Y / 16; + } + + XYLabel.Text = TileX.ToString() + " : " + TileY.ToString(); + int PPUAddress = 0x2000 + (NameTable * 0x400) + ((TileY % 30) * 32) + (TileX % 32); + PPUAddressLabel.Text = String.Format("{0:X4}", PPUAddress); + int TileID = 0; //TODO + TileIDLabel.Text = String.Format("{0:X2}", TileID); + } + + private void NameTableView_MouseLeave(object sender, EventArgs e) + { + XYLabel.Text = ""; + PPUAddressLabel.Text = ""; + TileIDLabel.Text = ""; } } } diff --git a/BizHawk.MultiClient/NEStools/NESPPU.cs b/BizHawk.MultiClient/NEStools/NESPPU.cs index 833c1da025..75682bad02 100644 --- a/BizHawk.MultiClient/NEStools/NESPPU.cs +++ b/BizHawk.MultiClient/NEStools/NESPPU.cs @@ -152,8 +152,8 @@ namespace BizHawk.MultiClient { if (!this.IsHandleCreated || this.IsDisposed) return; if (!(Global.Emulator is NES)) return; - NES.PPU ppu = (Global.Emulator as NES).ppu; - ppu.PPUViewCallback = Callback; + //NES.PPU ppu = (Global.Emulator as NES).ppu; + Nes.ppu.PPUViewCallback = Callback; } private void NESPPU_Load(object sender, EventArgs e)