Debugger: Added palette viewer
This commit is contained in:
parent
bb0c8b1f10
commit
0d0f5e6e58
10 changed files with 410 additions and 41 deletions
|
@ -74,8 +74,6 @@ namespace Mesen.GUI.Config
|
||||||
public XmlKeys OpenEventViewer = Keys.Control | Keys.E;
|
public XmlKeys OpenEventViewer = Keys.Control | Keys.E;
|
||||||
[ShortcutName("Open Memory Tools")]
|
[ShortcutName("Open Memory Tools")]
|
||||||
public XmlKeys OpenMemoryTools = Keys.Control | Keys.M;
|
public XmlKeys OpenMemoryTools = Keys.Control | Keys.M;
|
||||||
[ShortcutName("Open PPU Viewer")]
|
|
||||||
public XmlKeys OpenPpuViewer = Keys.Control | Keys.P;
|
|
||||||
[ShortcutName("Open Performance Profiler")]
|
[ShortcutName("Open Performance Profiler")]
|
||||||
public XmlKeys OpenProfiler = Keys.Control | Keys.Y;
|
public XmlKeys OpenProfiler = Keys.Control | Keys.Y;
|
||||||
[ShortcutName("Open Script Window")]
|
[ShortcutName("Open Script Window")]
|
||||||
|
@ -87,13 +85,13 @@ namespace Mesen.GUI.Config
|
||||||
[ShortcutName("Open Watch Window")]
|
[ShortcutName("Open Watch Window")]
|
||||||
public XmlKeys OpenWatchWindow = Keys.Control | Keys.W;
|
public XmlKeys OpenWatchWindow = Keys.Control | Keys.W;
|
||||||
|
|
||||||
[ShortcutName("Open Nametabler Viewer (Compact)")]
|
[ShortcutName("Open Tilemap Viewer")]
|
||||||
public XmlKeys OpenNametableViewer = Keys.Control | Keys.D1;
|
public XmlKeys OpenTilemapViewer = Keys.Control | Keys.D1;
|
||||||
[ShortcutName("Open CHR Viewer (Compact)")]
|
[ShortcutName("Open Tile Viewer")]
|
||||||
public XmlKeys OpenChrViewer = Keys.Control | Keys.D2;
|
public XmlKeys OpenTileViewer = Keys.Control | Keys.D2;
|
||||||
[ShortcutName("Open Sprite Viewer (Compact)")]
|
[ShortcutName("Open Sprite Viewer")]
|
||||||
public XmlKeys OpenSpriteViewer = Keys.Control | Keys.D3;
|
public XmlKeys OpenSpriteViewer = Keys.Control | Keys.D3;
|
||||||
[ShortcutName("Open Palette Viewer (Compact)")]
|
[ShortcutName("Open Palette Viewer")]
|
||||||
public XmlKeys OpenPaletteViewer = Keys.Control | Keys.D4;
|
public XmlKeys OpenPaletteViewer = Keys.Control | Keys.D4;
|
||||||
|
|
||||||
//Debugger window
|
//Debugger window
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace Mesen.GUI.Debugger
|
||||||
case DebugWindow.TraceLogger: frm = new frmTraceLogger(); frm.Icon = Properties.Resources.LogWindow; break;
|
case DebugWindow.TraceLogger: frm = new frmTraceLogger(); frm.Icon = Properties.Resources.LogWindow; break;
|
||||||
case DebugWindow.MemoryTools: frm = new frmMemoryTools(); frm.Icon = Properties.Resources.CheatCode; break;
|
case DebugWindow.MemoryTools: frm = new frmMemoryTools(); frm.Icon = Properties.Resources.CheatCode; break;
|
||||||
case DebugWindow.TilemapViewer: frm = new frmTilemapViewer(); frm.Icon = Properties.Resources.VideoOptions; break;
|
case DebugWindow.TilemapViewer: frm = new frmTilemapViewer(); frm.Icon = Properties.Resources.VideoOptions; break;
|
||||||
|
case DebugWindow.PaletteViewer: frm = new frmPaletteViewer(); frm.Icon = Properties.Resources.VideoFilter; break;
|
||||||
case DebugWindow.EventViewer: frm = new frmEventViewer(); frm.Icon = Properties.Resources.NesEventViewer; break;
|
case DebugWindow.EventViewer: frm = new frmEventViewer(); frm.Icon = Properties.Resources.NesEventViewer; break;
|
||||||
}
|
}
|
||||||
_openedWindows.Add(frm);
|
_openedWindows.Add(frm);
|
||||||
|
@ -119,6 +120,7 @@ namespace Mesen.GUI.Debugger
|
||||||
MemoryTools,
|
MemoryTools,
|
||||||
TraceLogger,
|
TraceLogger,
|
||||||
TilemapViewer,
|
TilemapViewer,
|
||||||
|
PaletteViewer,
|
||||||
EventViewer
|
EventViewer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
92
UI/Debugger/PpuViewer/frmPaletteViewer.Designer.cs
generated
Normal file
92
UI/Debugger/PpuViewer/frmPaletteViewer.Designer.cs
generated
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
namespace Mesen.GUI.Debugger
|
||||||
|
{
|
||||||
|
partial class frmPaletteViewer
|
||||||
|
{
|
||||||
|
/// <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 Windows Form 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.picPalette = new Mesen.GUI.Controls.ctrlMesenPictureBox();
|
||||||
|
this.ctrlScanlineCycleSelect = new Mesen.GUI.Debugger.Controls.ctrlScanlineCycleSelect();
|
||||||
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.picPalette)).BeginInit();
|
||||||
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// picPalette
|
||||||
|
//
|
||||||
|
this.picPalette.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
|
||||||
|
this.picPalette.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.picPalette.MinimumSize = new System.Drawing.Size(256, 256);
|
||||||
|
this.picPalette.Name = "picPalette";
|
||||||
|
this.picPalette.Size = new System.Drawing.Size(256, 256);
|
||||||
|
this.picPalette.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.picPalette.TabIndex = 0;
|
||||||
|
this.picPalette.TabStop = false;
|
||||||
|
//
|
||||||
|
// ctrlScanlineCycleSelect
|
||||||
|
//
|
||||||
|
this.ctrlScanlineCycleSelect.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.ctrlScanlineCycleSelect.Location = new System.Drawing.Point(0, 263);
|
||||||
|
this.ctrlScanlineCycleSelect.Name = "ctrlScanlineCycleSelect";
|
||||||
|
this.ctrlScanlineCycleSelect.Size = new System.Drawing.Size(485, 28);
|
||||||
|
this.ctrlScanlineCycleSelect.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// tableLayoutPanel1
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel1.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.picPalette, 0, 0);
|
||||||
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
|
this.tableLayoutPanel1.RowCount = 2;
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(485, 263);
|
||||||
|
this.tableLayoutPanel1.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// frmPaletteViewer
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(485, 291);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
|
this.Controls.Add(this.ctrlScanlineCycleSelect);
|
||||||
|
this.Name = "frmPaletteViewer";
|
||||||
|
this.Text = "Tilemap Viewer";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.picPalette)).EndInit();
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private GUI.Controls.ctrlMesenPictureBox picPalette;
|
||||||
|
private Controls.ctrlScanlineCycleSelect ctrlScanlineCycleSelect;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
|
}
|
||||||
|
}
|
107
UI/Debugger/PpuViewer/frmPaletteViewer.cs
Normal file
107
UI/Debugger/PpuViewer/frmPaletteViewer.cs
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
using Mesen.GUI.Forms;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Mesen.GUI.Debugger
|
||||||
|
{
|
||||||
|
public partial class frmPaletteViewer : BaseForm
|
||||||
|
{
|
||||||
|
private NotificationListener _notifListener;
|
||||||
|
private byte[] _cgRam;
|
||||||
|
private Bitmap _paletteImage;
|
||||||
|
|
||||||
|
public frmPaletteViewer()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLoad(EventArgs e)
|
||||||
|
{
|
||||||
|
base.OnLoad(e);
|
||||||
|
if(DesignMode) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_notifListener = new NotificationListener();
|
||||||
|
_notifListener.OnNotification += OnNotificationReceived;
|
||||||
|
|
||||||
|
_paletteImage = new Bitmap(256, 256, PixelFormat.Format32bppArgb);
|
||||||
|
picPalette.Image = _paletteImage;
|
||||||
|
|
||||||
|
ctrlScanlineCycleSelect.Initialize(241, 0);
|
||||||
|
|
||||||
|
RefreshData();
|
||||||
|
RefreshViewer();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnFormClosed(e);
|
||||||
|
_notifListener?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnNotificationReceived(NotificationEventArgs e)
|
||||||
|
{
|
||||||
|
switch(e.NotificationType) {
|
||||||
|
case ConsoleNotificationType.ViewerRefresh:
|
||||||
|
if(e.Parameter.ToInt32() == ctrlScanlineCycleSelect.ViewerId) {
|
||||||
|
RefreshData();
|
||||||
|
this.BeginInvoke((Action)(() => {
|
||||||
|
this.RefreshViewer();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshData()
|
||||||
|
{
|
||||||
|
_cgRam = DebugApi.GetMemoryState(SnesMemoryType.CGRam);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshViewer()
|
||||||
|
{
|
||||||
|
Func<int, uint> to8Bit = (int color) => { return (uint)((color << 3) + (color >> 2)); };
|
||||||
|
Func<int, uint> toArgb = (int rgb555) => {
|
||||||
|
uint b = to8Bit(rgb555 >> 10);
|
||||||
|
uint g = to8Bit((rgb555 >> 5) & 0x1F);
|
||||||
|
uint r = to8Bit(rgb555 & 0x1F);
|
||||||
|
|
||||||
|
return (0xFF000000 | (r << 16) | (g << 8) | b);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
UInt32[] argbPalette = new UInt32[256];
|
||||||
|
for(int i = 0; i < 256; i++) {
|
||||||
|
argbPalette[i] = toArgb(_cgRam[i * 2] | _cgRam[i * 2 + 1] << 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
using(Graphics g = Graphics.FromImage(_paletteImage)) {
|
||||||
|
GCHandle handle = GCHandle.Alloc(argbPalette, GCHandleType.Pinned);
|
||||||
|
Bitmap source = new Bitmap(16, 16, 16 * 4, PixelFormat.Format32bppArgb, handle.AddrOfPinnedObject());
|
||||||
|
try {
|
||||||
|
g.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||||
|
g.SmoothingMode = SmoothingMode.None;
|
||||||
|
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||||
|
|
||||||
|
g.ScaleTransform(16, 16);
|
||||||
|
g.DrawImage(source, 0, 0);
|
||||||
|
} finally {
|
||||||
|
handle.Free();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
picPalette.Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
123
UI/Debugger/PpuViewer/frmPaletteViewer.resx
Normal file
123
UI/Debugger/PpuViewer/frmPaletteViewer.resx
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
<?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>
|
||||||
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
|
@ -25,21 +25,27 @@ namespace Mesen.GUI.Debugger
|
||||||
public frmTilemapViewer()
|
public frmTilemapViewer()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
if(!this.DesignMode) {
|
protected override void OnLoad(EventArgs e)
|
||||||
_options.BgMode = 0;
|
{
|
||||||
|
base.OnLoad(e);
|
||||||
_notifListener = new NotificationListener();
|
if(DesignMode) {
|
||||||
_notifListener.OnNotification += OnNotificationReceived;
|
return;
|
||||||
|
|
||||||
_tilemapImage = new Bitmap(512, 512, PixelFormat.Format32bppArgb);
|
|
||||||
picTilemap.Image = _tilemapImage;
|
|
||||||
|
|
||||||
ctrlScanlineCycleSelect.Initialize(241, 0);
|
|
||||||
|
|
||||||
RefreshData();
|
|
||||||
RefreshViewer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_options.BgMode = 0;
|
||||||
|
|
||||||
|
_notifListener = new NotificationListener();
|
||||||
|
_notifListener.OnNotification += OnNotificationReceived;
|
||||||
|
|
||||||
|
_tilemapImage = new Bitmap(512, 512, PixelFormat.Format32bppArgb);
|
||||||
|
picTilemap.Image = _tilemapImage;
|
||||||
|
|
||||||
|
ctrlScanlineCycleSelect.Initialize(241, 0);
|
||||||
|
|
||||||
|
RefreshData();
|
||||||
|
RefreshViewer();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnFormClosed(FormClosedEventArgs e)
|
protected override void OnFormClosed(FormClosedEventArgs e)
|
||||||
|
|
|
@ -48,14 +48,13 @@ namespace Mesen.GUI.Debugger
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenEventViewer)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenEventViewer)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenMemoryTools)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenMemoryTools)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenProfiler)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenProfiler)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenPpuViewer)),
|
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenScriptWindow)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenScriptWindow)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenTextHooker)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenTextHooker)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenTraceLogger)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenTraceLogger)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenWatchWindow)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenWatchWindow)),
|
||||||
|
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenNametableViewer)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenTilemapViewer)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenChrViewer)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenTileViewer)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenSpriteViewer)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenSpriteViewer)),
|
||||||
GetMember(nameof(DebuggerShortcutsConfig.OpenPaletteViewer)),
|
GetMember(nameof(DebuggerShortcutsConfig.OpenPaletteViewer)),
|
||||||
};
|
};
|
||||||
|
|
59
UI/Forms/frmMain.Designer.cs
generated
59
UI/Forms/frmMain.Designer.cs
generated
|
@ -135,6 +135,9 @@
|
||||||
this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem();
|
this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.pnlRenderer = new System.Windows.Forms.Panel();
|
this.pnlRenderer = new System.Windows.Forms.Panel();
|
||||||
this.ctrlRecentGames = new Mesen.GUI.Controls.ctrlRecentGames();
|
this.ctrlRecentGames = new Mesen.GUI.Controls.ctrlRecentGames();
|
||||||
|
this.mnuPaletteViewer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.mnuMain.SuspendLayout();
|
this.mnuMain.SuspendLayout();
|
||||||
this.pnlRenderer.SuspendLayout();
|
this.pnlRenderer.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
|
@ -245,7 +248,7 @@
|
||||||
this.mnuPause.Enabled = false;
|
this.mnuPause.Enabled = false;
|
||||||
this.mnuPause.Image = global::Mesen.GUI.Properties.Resources.MediaPause;
|
this.mnuPause.Image = global::Mesen.GUI.Properties.Resources.MediaPause;
|
||||||
this.mnuPause.Name = "mnuPause";
|
this.mnuPause.Name = "mnuPause";
|
||||||
this.mnuPause.Size = new System.Drawing.Size(152, 22);
|
this.mnuPause.Size = new System.Drawing.Size(139, 22);
|
||||||
this.mnuPause.Text = "Pause";
|
this.mnuPause.Text = "Pause";
|
||||||
//
|
//
|
||||||
// mnuReset
|
// mnuReset
|
||||||
|
@ -253,7 +256,7 @@
|
||||||
this.mnuReset.Enabled = false;
|
this.mnuReset.Enabled = false;
|
||||||
this.mnuReset.Image = global::Mesen.GUI.Properties.Resources.Refresh;
|
this.mnuReset.Image = global::Mesen.GUI.Properties.Resources.Refresh;
|
||||||
this.mnuReset.Name = "mnuReset";
|
this.mnuReset.Name = "mnuReset";
|
||||||
this.mnuReset.Size = new System.Drawing.Size(152, 22);
|
this.mnuReset.Size = new System.Drawing.Size(139, 22);
|
||||||
this.mnuReset.Text = "Reset";
|
this.mnuReset.Text = "Reset";
|
||||||
//
|
//
|
||||||
// mnuPowerCycle
|
// mnuPowerCycle
|
||||||
|
@ -261,19 +264,19 @@
|
||||||
this.mnuPowerCycle.Enabled = false;
|
this.mnuPowerCycle.Enabled = false;
|
||||||
this.mnuPowerCycle.Image = global::Mesen.GUI.Properties.Resources.PowerCycle;
|
this.mnuPowerCycle.Image = global::Mesen.GUI.Properties.Resources.PowerCycle;
|
||||||
this.mnuPowerCycle.Name = "mnuPowerCycle";
|
this.mnuPowerCycle.Name = "mnuPowerCycle";
|
||||||
this.mnuPowerCycle.Size = new System.Drawing.Size(152, 22);
|
this.mnuPowerCycle.Size = new System.Drawing.Size(139, 22);
|
||||||
this.mnuPowerCycle.Text = "Power Cycle";
|
this.mnuPowerCycle.Text = "Power Cycle";
|
||||||
//
|
//
|
||||||
// toolStripMenuItem24
|
// toolStripMenuItem24
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem24.Name = "toolStripMenuItem24";
|
this.toolStripMenuItem24.Name = "toolStripMenuItem24";
|
||||||
this.toolStripMenuItem24.Size = new System.Drawing.Size(149, 6);
|
this.toolStripMenuItem24.Size = new System.Drawing.Size(136, 6);
|
||||||
//
|
//
|
||||||
// mnuPowerOff
|
// mnuPowerOff
|
||||||
//
|
//
|
||||||
this.mnuPowerOff.Image = global::Mesen.GUI.Properties.Resources.MediaStop;
|
this.mnuPowerOff.Image = global::Mesen.GUI.Properties.Resources.MediaStop;
|
||||||
this.mnuPowerOff.Name = "mnuPowerOff";
|
this.mnuPowerOff.Name = "mnuPowerOff";
|
||||||
this.mnuPowerOff.Size = new System.Drawing.Size(152, 22);
|
this.mnuPowerOff.Size = new System.Drawing.Size(139, 22);
|
||||||
this.mnuPowerOff.Text = "Power Off";
|
this.mnuPowerOff.Text = "Power Off";
|
||||||
//
|
//
|
||||||
// optionsToolStripMenuItem
|
// optionsToolStripMenuItem
|
||||||
|
@ -311,7 +314,7 @@
|
||||||
this.mnuShowFPS});
|
this.mnuShowFPS});
|
||||||
this.mnuEmulationSpeed.Image = global::Mesen.GUI.Properties.Resources.Speed;
|
this.mnuEmulationSpeed.Image = global::Mesen.GUI.Properties.Resources.Speed;
|
||||||
this.mnuEmulationSpeed.Name = "mnuEmulationSpeed";
|
this.mnuEmulationSpeed.Name = "mnuEmulationSpeed";
|
||||||
this.mnuEmulationSpeed.Size = new System.Drawing.Size(152, 22);
|
this.mnuEmulationSpeed.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuEmulationSpeed.Text = "Speed";
|
this.mnuEmulationSpeed.Text = "Speed";
|
||||||
this.mnuEmulationSpeed.DropDownOpening += new System.EventHandler(this.mnuEmulationSpeed_DropDownOpening);
|
this.mnuEmulationSpeed.DropDownOpening += new System.EventHandler(this.mnuEmulationSpeed_DropDownOpening);
|
||||||
//
|
//
|
||||||
|
@ -399,7 +402,7 @@
|
||||||
this.mnuFullscreen});
|
this.mnuFullscreen});
|
||||||
this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen;
|
this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen;
|
||||||
this.mnuVideoScale.Name = "mnuVideoScale";
|
this.mnuVideoScale.Name = "mnuVideoScale";
|
||||||
this.mnuVideoScale.Size = new System.Drawing.Size(152, 22);
|
this.mnuVideoScale.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuVideoScale.Text = "Video Size";
|
this.mnuVideoScale.Text = "Video Size";
|
||||||
this.mnuVideoScale.DropDownOpening += new System.EventHandler(this.mnuVideoScale_DropDownOpening);
|
this.mnuVideoScale.DropDownOpening += new System.EventHandler(this.mnuVideoScale_DropDownOpening);
|
||||||
//
|
//
|
||||||
|
@ -485,7 +488,7 @@
|
||||||
this.mnuBilinearInterpolation});
|
this.mnuBilinearInterpolation});
|
||||||
this.mnuVideoFilter.Image = global::Mesen.GUI.Properties.Resources.VideoFilter;
|
this.mnuVideoFilter.Image = global::Mesen.GUI.Properties.Resources.VideoFilter;
|
||||||
this.mnuVideoFilter.Name = "mnuVideoFilter";
|
this.mnuVideoFilter.Name = "mnuVideoFilter";
|
||||||
this.mnuVideoFilter.Size = new System.Drawing.Size(152, 22);
|
this.mnuVideoFilter.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuVideoFilter.Text = "Video Filter";
|
this.mnuVideoFilter.Text = "Video Filter";
|
||||||
this.mnuVideoFilter.DropDownOpening += new System.EventHandler(this.mnuVideoFilter_DropDownOpening);
|
this.mnuVideoFilter.DropDownOpening += new System.EventHandler(this.mnuVideoFilter_DropDownOpening);
|
||||||
//
|
//
|
||||||
|
@ -672,7 +675,7 @@
|
||||||
this.mnuRegionPal});
|
this.mnuRegionPal});
|
||||||
this.mnuRegion.Image = global::Mesen.GUI.Properties.Resources.WebBrowser;
|
this.mnuRegion.Image = global::Mesen.GUI.Properties.Resources.WebBrowser;
|
||||||
this.mnuRegion.Name = "mnuRegion";
|
this.mnuRegion.Name = "mnuRegion";
|
||||||
this.mnuRegion.Size = new System.Drawing.Size(152, 22);
|
this.mnuRegion.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuRegion.Text = "Region";
|
this.mnuRegion.Text = "Region";
|
||||||
this.mnuRegion.DropDownOpening += new System.EventHandler(this.mnuRegion_DropDownOpening);
|
this.mnuRegion.DropDownOpening += new System.EventHandler(this.mnuRegion_DropDownOpening);
|
||||||
//
|
//
|
||||||
|
@ -702,13 +705,13 @@
|
||||||
// toolStripMenuItem4
|
// toolStripMenuItem4
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||||
this.toolStripMenuItem4.Size = new System.Drawing.Size(149, 6);
|
this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 6);
|
||||||
//
|
//
|
||||||
// mnuAudioConfig
|
// mnuAudioConfig
|
||||||
//
|
//
|
||||||
this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio;
|
this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio;
|
||||||
this.mnuAudioConfig.Name = "mnuAudioConfig";
|
this.mnuAudioConfig.Name = "mnuAudioConfig";
|
||||||
this.mnuAudioConfig.Size = new System.Drawing.Size(152, 22);
|
this.mnuAudioConfig.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuAudioConfig.Text = "Audio";
|
this.mnuAudioConfig.Text = "Audio";
|
||||||
this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click);
|
this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click);
|
||||||
//
|
//
|
||||||
|
@ -716,7 +719,7 @@
|
||||||
//
|
//
|
||||||
this.mnuInputConfig.Image = global::Mesen.GUI.Properties.Resources.Controller;
|
this.mnuInputConfig.Image = global::Mesen.GUI.Properties.Resources.Controller;
|
||||||
this.mnuInputConfig.Name = "mnuInputConfig";
|
this.mnuInputConfig.Name = "mnuInputConfig";
|
||||||
this.mnuInputConfig.Size = new System.Drawing.Size(152, 22);
|
this.mnuInputConfig.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuInputConfig.Text = "Input";
|
this.mnuInputConfig.Text = "Input";
|
||||||
this.mnuInputConfig.Click += new System.EventHandler(this.mnuInputConfig_Click);
|
this.mnuInputConfig.Click += new System.EventHandler(this.mnuInputConfig_Click);
|
||||||
//
|
//
|
||||||
|
@ -724,7 +727,7 @@
|
||||||
//
|
//
|
||||||
this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.VideoOptions;
|
this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.VideoOptions;
|
||||||
this.mnuVideoConfig.Name = "mnuVideoConfig";
|
this.mnuVideoConfig.Name = "mnuVideoConfig";
|
||||||
this.mnuVideoConfig.Size = new System.Drawing.Size(152, 22);
|
this.mnuVideoConfig.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuVideoConfig.Text = "Video";
|
this.mnuVideoConfig.Text = "Video";
|
||||||
this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click);
|
this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click);
|
||||||
//
|
//
|
||||||
|
@ -732,20 +735,20 @@
|
||||||
//
|
//
|
||||||
this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches;
|
this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches;
|
||||||
this.mnuEmulationConfig.Name = "mnuEmulationConfig";
|
this.mnuEmulationConfig.Name = "mnuEmulationConfig";
|
||||||
this.mnuEmulationConfig.Size = new System.Drawing.Size(152, 22);
|
this.mnuEmulationConfig.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuEmulationConfig.Text = "Emulation";
|
this.mnuEmulationConfig.Text = "Emulation";
|
||||||
this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click);
|
this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem3
|
// toolStripMenuItem3
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||||
this.toolStripMenuItem3.Size = new System.Drawing.Size(149, 6);
|
this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 6);
|
||||||
//
|
//
|
||||||
// mnuPreferences
|
// mnuPreferences
|
||||||
//
|
//
|
||||||
this.mnuPreferences.Image = global::Mesen.GUI.Properties.Resources.Settings;
|
this.mnuPreferences.Image = global::Mesen.GUI.Properties.Resources.Settings;
|
||||||
this.mnuPreferences.Name = "mnuPreferences";
|
this.mnuPreferences.Name = "mnuPreferences";
|
||||||
this.mnuPreferences.Size = new System.Drawing.Size(152, 22);
|
this.mnuPreferences.Size = new System.Drawing.Size(135, 22);
|
||||||
this.mnuPreferences.Text = "Preferences";
|
this.mnuPreferences.Text = "Preferences";
|
||||||
this.mnuPreferences.Click += new System.EventHandler(this.mnuPreferences_Click);
|
this.mnuPreferences.Click += new System.EventHandler(this.mnuPreferences_Click);
|
||||||
//
|
//
|
||||||
|
@ -847,7 +850,10 @@
|
||||||
this.mnuDebugger,
|
this.mnuDebugger,
|
||||||
this.mnuMemoryTools,
|
this.mnuMemoryTools,
|
||||||
this.mnuTraceLogger,
|
this.mnuTraceLogger,
|
||||||
|
this.toolStripMenuItem12,
|
||||||
this.mnuTilemapViewer,
|
this.mnuTilemapViewer,
|
||||||
|
this.mnuPaletteViewer,
|
||||||
|
this.toolStripMenuItem22,
|
||||||
this.mnuEventViewer});
|
this.mnuEventViewer});
|
||||||
this.debugToolStripMenuItem.Name = "debugToolStripMenuItem";
|
this.debugToolStripMenuItem.Name = "debugToolStripMenuItem";
|
||||||
this.debugToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
|
this.debugToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
|
||||||
|
@ -959,6 +965,24 @@
|
||||||
this.ctrlRecentGames.TabIndex = 1;
|
this.ctrlRecentGames.TabIndex = 1;
|
||||||
this.ctrlRecentGames.Visible = false;
|
this.ctrlRecentGames.Visible = false;
|
||||||
//
|
//
|
||||||
|
// mnuPaletteViewer
|
||||||
|
//
|
||||||
|
this.mnuPaletteViewer.Image = global::Mesen.GUI.Properties.Resources.VideoFilter;
|
||||||
|
this.mnuPaletteViewer.Name = "mnuPaletteViewer";
|
||||||
|
this.mnuPaletteViewer.Size = new System.Drawing.Size(155, 22);
|
||||||
|
this.mnuPaletteViewer.Text = "Palette Viewer";
|
||||||
|
this.mnuPaletteViewer.Click += new System.EventHandler(this.mnuPaletteViewer_Click);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem12
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem12.Name = "toolStripMenuItem12";
|
||||||
|
this.toolStripMenuItem12.Size = new System.Drawing.Size(152, 6);
|
||||||
|
//
|
||||||
|
// toolStripMenuItem22
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem22.Name = "toolStripMenuItem22";
|
||||||
|
this.toolStripMenuItem22.Size = new System.Drawing.Size(152, 6);
|
||||||
|
//
|
||||||
// frmMain
|
// frmMain
|
||||||
//
|
//
|
||||||
this.AllowDrop = true;
|
this.AllowDrop = true;
|
||||||
|
@ -1089,5 +1113,8 @@
|
||||||
private System.Windows.Forms.ToolStripMenuItem mnuSoundRecorder;
|
private System.Windows.Forms.ToolStripMenuItem mnuSoundRecorder;
|
||||||
private System.Windows.Forms.ToolStripMenuItem mnuWaveRecord;
|
private System.Windows.Forms.ToolStripMenuItem mnuWaveRecord;
|
||||||
private System.Windows.Forms.ToolStripMenuItem mnuWaveStop;
|
private System.Windows.Forms.ToolStripMenuItem mnuWaveStop;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem12;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem mnuPaletteViewer;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem22;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -183,7 +183,8 @@ namespace Mesen.GUI.Forms
|
||||||
mnuDebugger.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenDebugger));
|
mnuDebugger.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenDebugger));
|
||||||
mnuMemoryTools.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenMemoryTools));
|
mnuMemoryTools.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenMemoryTools));
|
||||||
mnuEventViewer.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenEventViewer));
|
mnuEventViewer.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenEventViewer));
|
||||||
mnuTilemapViewer.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenPpuViewer));
|
mnuTilemapViewer.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenTilemapViewer));
|
||||||
|
mnuPaletteViewer.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenPaletteViewer));
|
||||||
mnuTraceLogger.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenTraceLogger));
|
mnuTraceLogger.InitShortcut(this, nameof(DebuggerShortcutsConfig.OpenTraceLogger));
|
||||||
|
|
||||||
mnuNoneFilter.Click += (s, e) => { _shortcuts.SetVideoFilter(VideoFilterType.None); };
|
mnuNoneFilter.Click += (s, e) => { _shortcuts.SetVideoFilter(VideoFilterType.None); };
|
||||||
|
@ -291,6 +292,11 @@ namespace Mesen.GUI.Forms
|
||||||
DebugWindowManager.OpenDebugWindow(DebugWindow.TilemapViewer);
|
DebugWindowManager.OpenDebugWindow(DebugWindow.TilemapViewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void mnuPaletteViewer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DebugWindowManager.OpenDebugWindow(DebugWindow.PaletteViewer);
|
||||||
|
}
|
||||||
|
|
||||||
private void mnuEventViewer_Click(object sender, EventArgs e)
|
private void mnuEventViewer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
DebugWindowManager.OpenDebugWindow(DebugWindow.EventViewer);
|
DebugWindowManager.OpenDebugWindow(DebugWindow.EventViewer);
|
||||||
|
|
|
@ -420,6 +420,12 @@
|
||||||
<Compile Include="Debugger\PpuViewer\ctrlScanlineCycleSelect.designer.cs">
|
<Compile Include="Debugger\PpuViewer\ctrlScanlineCycleSelect.designer.cs">
|
||||||
<DependentUpon>ctrlScanlineCycleSelect.cs</DependentUpon>
|
<DependentUpon>ctrlScanlineCycleSelect.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Debugger\PpuViewer\frmPaletteViewer.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Debugger\PpuViewer\frmPaletteViewer.Designer.cs">
|
||||||
|
<DependentUpon>frmPaletteViewer.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Debugger\PpuViewer\frmTilemapViewer.cs">
|
<Compile Include="Debugger\PpuViewer\frmTilemapViewer.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -709,6 +715,9 @@
|
||||||
<EmbeddedResource Include="Debugger\PpuViewer\ctrlScanlineCycleSelect.resx">
|
<EmbeddedResource Include="Debugger\PpuViewer\ctrlScanlineCycleSelect.resx">
|
||||||
<DependentUpon>ctrlScanlineCycleSelect.cs</DependentUpon>
|
<DependentUpon>ctrlScanlineCycleSelect.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Debugger\PpuViewer\frmPaletteViewer.resx">
|
||||||
|
<DependentUpon>frmPaletteViewer.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Debugger\PpuViewer\frmTilemapViewer.resx">
|
<EmbeddedResource Include="Debugger\PpuViewer\frmTilemapViewer.resx">
|
||||||
<DependentUpon>frmTilemapViewer.cs</DependentUpon>
|
<DependentUpon>frmTilemapViewer.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
Loading…
Add table
Reference in a new issue