NES PPU - Palette Viewer - show details on mouse over. Note: value is currently messed up, due to an implementation flaw in the Palette object
This commit is contained in:
parent
def79375dd
commit
ea21d73ed8
|
@ -31,14 +31,19 @@
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.PalettesGroup = new System.Windows.Forms.GroupBox();
|
this.PalettesGroup = new System.Windows.Forms.GroupBox();
|
||||||
this.PaletteView = new BizHawk.MultiClient.PaletteViewer();
|
this.PaletteView = new BizHawk.MultiClient.PaletteViewer();
|
||||||
|
this.DetailsBox = new System.Windows.Forms.GroupBox();
|
||||||
|
this.SectionLabel = new System.Windows.Forms.Label();
|
||||||
|
this.AddressLabel = new System.Windows.Forms.Label();
|
||||||
|
this.ValueLabel = new System.Windows.Forms.Label();
|
||||||
this.PalettesGroup.SuspendLayout();
|
this.PalettesGroup.SuspendLayout();
|
||||||
|
this.DetailsBox.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Location = new System.Drawing.Point(12, 26);
|
this.groupBox1.Location = new System.Drawing.Point(12, 26);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.Size = new System.Drawing.Size(415, 199);
|
this.groupBox1.Size = new System.Drawing.Size(281, 199);
|
||||||
this.groupBox1.TabIndex = 0;
|
this.groupBox1.TabIndex = 0;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = "Pattern Tables";
|
this.groupBox1.Text = "Pattern Tables";
|
||||||
|
@ -48,7 +53,7 @@
|
||||||
this.PalettesGroup.Controls.Add(this.PaletteView);
|
this.PalettesGroup.Controls.Add(this.PaletteView);
|
||||||
this.PalettesGroup.Location = new System.Drawing.Point(12, 262);
|
this.PalettesGroup.Location = new System.Drawing.Point(12, 262);
|
||||||
this.PalettesGroup.Name = "PalettesGroup";
|
this.PalettesGroup.Name = "PalettesGroup";
|
||||||
this.PalettesGroup.Size = new System.Drawing.Size(415, 84);
|
this.PalettesGroup.Size = new System.Drawing.Size(281, 66);
|
||||||
this.PalettesGroup.TabIndex = 1;
|
this.PalettesGroup.TabIndex = 1;
|
||||||
this.PalettesGroup.TabStop = false;
|
this.PalettesGroup.TabStop = false;
|
||||||
this.PalettesGroup.Text = "Palettes";
|
this.PalettesGroup.Text = "Palettes";
|
||||||
|
@ -56,16 +61,59 @@
|
||||||
// PaletteView
|
// PaletteView
|
||||||
//
|
//
|
||||||
this.PaletteView.BackColor = System.Drawing.Color.White;
|
this.PaletteView.BackColor = System.Drawing.Color.White;
|
||||||
this.PaletteView.Location = new System.Drawing.Point(69, 35);
|
this.PaletteView.Location = new System.Drawing.Point(6, 19);
|
||||||
this.PaletteView.Name = "PaletteView";
|
this.PaletteView.Name = "PaletteView";
|
||||||
this.PaletteView.Size = new System.Drawing.Size(257, 34);
|
this.PaletteView.Size = new System.Drawing.Size(257, 34);
|
||||||
this.PaletteView.TabIndex = 0;
|
this.PaletteView.TabIndex = 0;
|
||||||
|
this.PaletteView.MouseLeave += new System.EventHandler(this.PaletteView_MouseLeave);
|
||||||
|
this.PaletteView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.PaletteView_MouseMove);
|
||||||
|
this.PaletteView.MouseEnter += new System.EventHandler(this.PaletteView_MouseEnter);
|
||||||
|
//
|
||||||
|
// DetailsBox
|
||||||
|
//
|
||||||
|
this.DetailsBox.Controls.Add(this.ValueLabel);
|
||||||
|
this.DetailsBox.Controls.Add(this.AddressLabel);
|
||||||
|
this.DetailsBox.Controls.Add(this.SectionLabel);
|
||||||
|
this.DetailsBox.Location = new System.Drawing.Point(300, 26);
|
||||||
|
this.DetailsBox.Name = "DetailsBox";
|
||||||
|
this.DetailsBox.Size = new System.Drawing.Size(177, 129);
|
||||||
|
this.DetailsBox.TabIndex = 2;
|
||||||
|
this.DetailsBox.TabStop = false;
|
||||||
|
this.DetailsBox.Text = "Details";
|
||||||
|
//
|
||||||
|
// SectionLabel
|
||||||
|
//
|
||||||
|
this.SectionLabel.AutoSize = true;
|
||||||
|
this.SectionLabel.Location = new System.Drawing.Point(6, 26);
|
||||||
|
this.SectionLabel.Name = "SectionLabel";
|
||||||
|
this.SectionLabel.Size = new System.Drawing.Size(35, 13);
|
||||||
|
this.SectionLabel.TabIndex = 0;
|
||||||
|
this.SectionLabel.Text = "label1";
|
||||||
|
//
|
||||||
|
// AddressLabel
|
||||||
|
//
|
||||||
|
this.AddressLabel.AutoSize = true;
|
||||||
|
this.AddressLabel.Location = new System.Drawing.Point(6, 49);
|
||||||
|
this.AddressLabel.Name = "AddressLabel";
|
||||||
|
this.AddressLabel.Size = new System.Drawing.Size(35, 13);
|
||||||
|
this.AddressLabel.TabIndex = 1;
|
||||||
|
this.AddressLabel.Text = "label1";
|
||||||
|
//
|
||||||
|
// ValueLabel
|
||||||
|
//
|
||||||
|
this.ValueLabel.AutoSize = true;
|
||||||
|
this.ValueLabel.Location = new System.Drawing.Point(6, 73);
|
||||||
|
this.ValueLabel.Name = "ValueLabel";
|
||||||
|
this.ValueLabel.Size = new System.Drawing.Size(35, 13);
|
||||||
|
this.ValueLabel.TabIndex = 2;
|
||||||
|
this.ValueLabel.Text = "label1";
|
||||||
//
|
//
|
||||||
// NESPPU
|
// NESPPU
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(443, 359);
|
this.ClientSize = new System.Drawing.Size(504, 359);
|
||||||
|
this.Controls.Add(this.DetailsBox);
|
||||||
this.Controls.Add(this.PalettesGroup);
|
this.Controls.Add(this.PalettesGroup);
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||||
|
@ -73,6 +121,8 @@
|
||||||
this.Text = "PPU Viewer";
|
this.Text = "PPU Viewer";
|
||||||
this.Load += new System.EventHandler(this.NESPPU_Load);
|
this.Load += new System.EventHandler(this.NESPPU_Load);
|
||||||
this.PalettesGroup.ResumeLayout(false);
|
this.PalettesGroup.ResumeLayout(false);
|
||||||
|
this.DetailsBox.ResumeLayout(false);
|
||||||
|
this.DetailsBox.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,5 +132,9 @@
|
||||||
private System.Windows.Forms.GroupBox groupBox1;
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
private System.Windows.Forms.GroupBox PalettesGroup;
|
private System.Windows.Forms.GroupBox PalettesGroup;
|
||||||
private PaletteViewer PaletteView;
|
private PaletteViewer PaletteView;
|
||||||
|
private System.Windows.Forms.GroupBox DetailsBox;
|
||||||
|
private System.Windows.Forms.Label ValueLabel;
|
||||||
|
private System.Windows.Forms.Label AddressLabel;
|
||||||
|
private System.Windows.Forms.Label SectionLabel;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,6 +6,7 @@ using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using System.Globalization;
|
||||||
using BizHawk.Emulation.Consoles.Nintendo;
|
using BizHawk.Emulation.Consoles.Nintendo;
|
||||||
|
|
||||||
namespace BizHawk.MultiClient
|
namespace BizHawk.MultiClient
|
||||||
|
@ -59,6 +60,41 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
LoadConfigSettings();
|
LoadConfigSettings();
|
||||||
Nes = Global.Emulator as NES;
|
Nes = Global.Emulator as NES;
|
||||||
|
ClearDetails();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ClearDetails()
|
||||||
|
{
|
||||||
|
SectionLabel.Text = "";
|
||||||
|
AddressLabel.Text = "";
|
||||||
|
ValueLabel.Text = "";
|
||||||
|
//TODO: more info labels
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PaletteView_MouseLeave(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ClearDetails();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PaletteView_MouseEnter(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SectionLabel.Text = "Section: Palette";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PaletteView_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
int baseAddr = 0x3F00;
|
||||||
|
if (e.Y > 16)
|
||||||
|
baseAddr += 16;
|
||||||
|
int column = (e.X - PaletteView.Location.X) / 16;
|
||||||
|
int addr = column + baseAddr;
|
||||||
|
AddressLabel.Text = "Address: 0x" + String.Format("{0:X4}", addr, NumberStyles.HexNumber);
|
||||||
|
int val;
|
||||||
|
if (baseAddr == 0x3F00)
|
||||||
|
val = PaletteView.bgPalettes[column].GetValue();
|
||||||
|
else
|
||||||
|
val = PaletteView.spritePalettes[column].GetValue();
|
||||||
|
ValueLabel.Text = "Color: 0x" + String.Format("{0:X2}", val, NumberStyles.HexNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
value = val | (int)0xFF000000;
|
value = val | (int)0xFF000000;
|
||||||
}
|
}
|
||||||
color = Color.FromArgb(value);
|
color = Color.FromArgb(value); //TODO: value should be unprocessed! then do all calculations on this line
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color GetColor()
|
public Color GetColor()
|
||||||
|
|
Loading…
Reference in New Issue