From 638cddff6517ba355e260a6a4dd7871e5a216e31 Mon Sep 17 00:00:00 2001 From: Sour Date: Tue, 27 Mar 2018 19:46:15 -0400 Subject: [PATCH] Debugger: Added options to select what data is imported from dbg/mlb files --- GUI.NET/Config/DebugInfo.cs | 15 + GUI.NET/Debugger/DbgImporter.cs | 23 +- GUI.NET/Debugger/MesenLabelFile.cs | 20 +- GUI.NET/Debugger/frmDebugger.Designer.cs | 75 ++--- GUI.NET/Debugger/frmDebugger.cs | 7 + .../Debugger/frmImportSettings.Designer.cs | 265 ++++++++++++++++++ GUI.NET/Debugger/frmImportSettings.cs | 35 +++ GUI.NET/Debugger/frmImportSettings.resx | 123 ++++++++ GUI.NET/GUI.NET.csproj | 9 + 9 files changed, 526 insertions(+), 46 deletions(-) create mode 100644 GUI.NET/Debugger/frmImportSettings.Designer.cs create mode 100644 GUI.NET/Debugger/frmImportSettings.cs create mode 100644 GUI.NET/Debugger/frmImportSettings.resx diff --git a/GUI.NET/Config/DebugInfo.cs b/GUI.NET/Config/DebugInfo.cs index e0c3d996..3f83862f 100644 --- a/GUI.NET/Config/DebugInfo.cs +++ b/GUI.NET/Config/DebugInfo.cs @@ -284,6 +284,7 @@ namespace Mesen.GUI.Config public int AssemblerZoom = 100; public DebuggerShortcutsConfig Shortcuts = new DebuggerShortcutsConfig(); + public DebugImportConfig ImportConfig = new DebugImportConfig(); public DebugInfo() { @@ -323,6 +324,20 @@ namespace Mesen.GUI.Config } } + public class DebugImportConfig + { + public bool DbgImportRamLabels = true; + public bool DbgImportPrgRomLabels = true; + public bool DbgImportComments = true; + + public bool MlbImportInternalRamLabels = true; + public bool MlbImportWorkRamLabels = true; + public bool MlbImportSaveRamLabels = true; + public bool MlbImportRegisterLabels = true; + public bool MlbImportPrgRomLabels = true; + public bool MlbImportComments = true; + } + public enum ScriptStartupBehavior { ShowTutorial = 0, diff --git a/GUI.NET/Debugger/DbgImporter.cs b/GUI.NET/Debugger/DbgImporter.cs index b48d1756..6dc86b14 100644 --- a/GUI.NET/Debugger/DbgImporter.cs +++ b/GUI.NET/Debugger/DbgImporter.cs @@ -7,6 +7,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; +using Mesen.GUI.Config; using Mesen.GUI.Forms; namespace Mesen.GUI.Debugger @@ -440,9 +441,6 @@ namespace Mesen.GUI.Debugger LoadFileData(basePath); - LoadLabels(); - LoadComments(); - int prgSize = InteropEmu.DebugGetMemorySize(DebugMemoryType.PrgRom); if(prgSize > 0) { byte[] cdlFile = new byte[prgSize]; @@ -493,11 +491,24 @@ namespace Mesen.GUI.Debugger } } - LabelManager.SetLabels(_romLabels.Values); - LabelManager.SetLabels(_ramLabels.Values); + LoadLabels(); + + int labelCount = 0; + + DebugImportConfig config = ConfigManager.Config.DebugInfo.ImportConfig; + if(config.DbgImportComments) { + LoadComments(); + } + if(config.DbgImportPrgRomLabels) { + LabelManager.SetLabels(_romLabels.Values); + labelCount += _romLabels.Count; + } + if(config.DbgImportRamLabels) { + LabelManager.SetLabels(_ramLabels.Values); + labelCount += _ramLabels.Count; + } if(!silent) { - int labelCount = _romLabels.Count + _ramLabels.Count; if(_errorCount > 0) { _errorCount -= _filesNotFound.Count; string message = $"Import completed with {labelCount} labels imported"; diff --git a/GUI.NET/Debugger/MesenLabelFile.cs b/GUI.NET/Debugger/MesenLabelFile.cs index ad1e5b7c..808d1827 100644 --- a/GUI.NET/Debugger/MesenLabelFile.cs +++ b/GUI.NET/Debugger/MesenLabelFile.cs @@ -1,4 +1,5 @@ -using System; +using Mesen.GUI.Config; +using System; using System.Collections.Generic; using System.Globalization; using System.IO; @@ -21,6 +22,8 @@ namespace Mesen.GUI.Debugger { AddressType.WorkRam, new Dictionary() } }; + DebugImportConfig config = ConfigManager.Config.DebugInfo.ImportConfig; + char[] separator = new char[1] { ':' }; foreach(string row in File.ReadAllLines(path, Encoding.UTF8)) { string[] rowData = row.Split(separator, 4); @@ -29,17 +32,18 @@ namespace Mesen.GUI.Debugger continue; } AddressType type; + bool importLabel = false; switch(rowData[0][0]) { - case 'G': type = AddressType.Register; break; - case 'R': type = AddressType.InternalRam; break; - case 'P': type = AddressType.PrgRom; break; - case 'S': type = AddressType.SaveRam; break; - case 'W': type = AddressType.WorkRam; break; + case 'G': type = AddressType.Register; importLabel = config.MlbImportRegisterLabels; break; + case 'R': type = AddressType.InternalRam; importLabel = config.MlbImportInternalRamLabels; break; + case 'P': type = AddressType.PrgRom; importLabel = config.MlbImportPrgRomLabels; break; + case 'S': type = AddressType.SaveRam; importLabel = config.MlbImportSaveRamLabels; break; + case 'W': type = AddressType.WorkRam; importLabel = config.MlbImportWorkRamLabels; break; default: continue; } uint address; - if(UInt32.TryParse(rowData[1], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out address)) { + if(importLabel && UInt32.TryParse(rowData[1], NumberStyles.HexNumber, CultureInfo.InvariantCulture, out address)) { CodeLabel codeLabel; if(!labels[type].TryGetValue(address, out codeLabel)) { codeLabel = new CodeLabel(); @@ -50,7 +54,7 @@ namespace Mesen.GUI.Debugger labels[type][address] = codeLabel; } - if(rowData.Length > 3) { + if(rowData.Length > 3 && config.MlbImportComments) { codeLabel.Comment = rowData[3].Replace("\\n", "\n"); } codeLabel.Label = rowData[2].Replace("\\n", "\n").Replace("\n", ""); diff --git a/GUI.NET/Debugger/frmDebugger.Designer.cs b/GUI.NET/Debugger/frmDebugger.Designer.cs index adda7bfb..8d5ca096 100644 --- a/GUI.NET/Debugger/frmDebugger.Designer.cs +++ b/GUI.NET/Debugger/frmDebugger.Designer.cs @@ -163,8 +163,8 @@ namespace Mesen.GUI.Debugger this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.mnuApuViewer = new System.Windows.Forms.ToolStripMenuItem(); this.mnuAssembler = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuMemoryViewer = new System.Windows.Forms.ToolStripMenuItem(); this.mnuEventViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuMemoryViewer = new System.Windows.Forms.ToolStripMenuItem(); this.mnuPpuViewer = new System.Windows.Forms.ToolStripMenuItem(); this.mnuScriptWindow = new System.Windows.Forms.ToolStripMenuItem(); this.mnuTraceLogger = new System.Windows.Forms.ToolStripMenuItem(); @@ -192,6 +192,7 @@ namespace Mesen.GUI.Debugger this.ctrlPpuMemoryMapping = new Mesen.GUI.Debugger.Controls.ctrlMemoryMapping(); this.ctrlCpuMemoryMapping = new Mesen.GUI.Debugger.Controls.ctrlMemoryMapping(); this.tsToolbar = new Mesen.GUI.Controls.ctrlMesenToolStrip(); + this.mnuImportSettings = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); this.splitContainer.Panel1.SuspendLayout(); this.splitContainer.Panel2.SuspendLayout(); @@ -239,7 +240,7 @@ namespace Mesen.GUI.Debugger this.splitContainer.Panel2.Controls.Add(this.tableLayoutPanel10); this.splitContainer.Panel2MinSize = 100; this.splitContainer.Size = new System.Drawing.Size(1075, 576); - this.splitContainer.SplitterDistance = 404; + this.splitContainer.SplitterDistance = 401; this.splitContainer.SplitterWidth = 7; this.splitContainer.TabIndex = 1; this.splitContainer.TabStop = false; @@ -262,7 +263,7 @@ namespace Mesen.GUI.Debugger // this.ctrlSplitContainerTop.Panel2.Controls.Add(this.tlpFunctionLabelLists); this.ctrlSplitContainerTop.Panel2MinSize = 150; - this.ctrlSplitContainerTop.Size = new System.Drawing.Size(1075, 404); + this.ctrlSplitContainerTop.Size = new System.Drawing.Size(1075, 401); this.ctrlSplitContainerTop.SplitterDistance = 750; this.ctrlSplitContainerTop.SplitterWidth = 7; this.ctrlSplitContainerTop.TabIndex = 3; @@ -284,7 +285,7 @@ namespace Mesen.GUI.Debugger this.tlpTop.Name = "tlpTop"; this.tlpTop.RowCount = 1; this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tlpTop.Size = new System.Drawing.Size(750, 404); + this.tlpTop.Size = new System.Drawing.Size(750, 401); this.tlpTop.TabIndex = 2; // // ctrlConsoleStatus @@ -293,7 +294,7 @@ namespace Mesen.GUI.Debugger this.ctrlConsoleStatus.Location = new System.Drawing.Point(292, 0); this.ctrlConsoleStatus.Margin = new System.Windows.Forms.Padding(0); this.ctrlConsoleStatus.Name = "ctrlConsoleStatus"; - this.ctrlConsoleStatus.Size = new System.Drawing.Size(458, 404); + this.ctrlConsoleStatus.Size = new System.Drawing.Size(458, 401); this.ctrlConsoleStatus.TabIndex = 3; this.ctrlConsoleStatus.OnGotoLocation += new System.EventHandler(this.ctrlConsoleStatus_OnGotoLocation); // @@ -305,7 +306,7 @@ namespace Mesen.GUI.Debugger this.panel1.Location = new System.Drawing.Point(3, 0); this.panel1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(286, 404); + this.panel1.Size = new System.Drawing.Size(286, 401); this.panel1.TabIndex = 5; // // ctrlSourceViewer @@ -314,7 +315,7 @@ namespace Mesen.GUI.Debugger this.ctrlSourceViewer.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlSourceViewer.Location = new System.Drawing.Point(0, 0); this.ctrlSourceViewer.Name = "ctrlSourceViewer"; - this.ctrlSourceViewer.Size = new System.Drawing.Size(286, 404); + this.ctrlSourceViewer.Size = new System.Drawing.Size(286, 401); this.ctrlSourceViewer.SymbolProvider = null; this.ctrlSourceViewer.TabIndex = 7; this.ctrlSourceViewer.Visible = false; @@ -328,7 +329,7 @@ namespace Mesen.GUI.Debugger this.ctrlDebuggerCode.Location = new System.Drawing.Point(0, 0); this.ctrlDebuggerCode.Name = "ctrlDebuggerCode"; this.ctrlDebuggerCode.ShowMemoryValues = false; - this.ctrlDebuggerCode.Size = new System.Drawing.Size(286, 404); + this.ctrlDebuggerCode.Size = new System.Drawing.Size(286, 401); this.ctrlDebuggerCode.SymbolProvider = null; this.ctrlDebuggerCode.TabIndex = 2; this.ctrlDebuggerCode.OnEditCode += new Mesen.GUI.Debugger.ctrlDebuggerCode.AssemblerEventHandler(this.ctrlDebuggerCode_OnEditCode); @@ -342,7 +343,7 @@ namespace Mesen.GUI.Debugger this.panel2.Location = new System.Drawing.Point(292, 0); this.panel2.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1, 404); + this.panel2.Size = new System.Drawing.Size(1, 401); this.panel2.TabIndex = 6; // // ctrlSourceViewerSplit @@ -351,7 +352,7 @@ namespace Mesen.GUI.Debugger this.ctrlSourceViewerSplit.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlSourceViewerSplit.Location = new System.Drawing.Point(0, 0); this.ctrlSourceViewerSplit.Name = "ctrlSourceViewerSplit"; - this.ctrlSourceViewerSplit.Size = new System.Drawing.Size(1, 404); + this.ctrlSourceViewerSplit.Size = new System.Drawing.Size(1, 401); this.ctrlSourceViewerSplit.SymbolProvider = null; this.ctrlSourceViewerSplit.TabIndex = 8; this.ctrlSourceViewerSplit.Visible = false; @@ -365,7 +366,7 @@ namespace Mesen.GUI.Debugger this.ctrlDebuggerCodeSplit.Location = new System.Drawing.Point(0, 0); this.ctrlDebuggerCodeSplit.Name = "ctrlDebuggerCodeSplit"; this.ctrlDebuggerCodeSplit.ShowMemoryValues = false; - this.ctrlDebuggerCodeSplit.Size = new System.Drawing.Size(1, 404); + this.ctrlDebuggerCodeSplit.Size = new System.Drawing.Size(1, 401); this.ctrlDebuggerCodeSplit.SymbolProvider = null; this.ctrlDebuggerCodeSplit.TabIndex = 4; this.ctrlDebuggerCodeSplit.Visible = false; @@ -385,16 +386,16 @@ namespace Mesen.GUI.Debugger this.tlpFunctionLabelLists.RowCount = 2; this.tlpFunctionLabelLists.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tlpFunctionLabelLists.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tlpFunctionLabelLists.Size = new System.Drawing.Size(318, 404); + this.tlpFunctionLabelLists.Size = new System.Drawing.Size(318, 401); this.tlpFunctionLabelLists.TabIndex = 5; // // grpLabels // this.grpLabels.Controls.Add(this.ctrlLabelList); this.grpLabels.Dock = System.Windows.Forms.DockStyle.Fill; - this.grpLabels.Location = new System.Drawing.Point(3, 205); + this.grpLabels.Location = new System.Drawing.Point(3, 203); this.grpLabels.Name = "grpLabels"; - this.grpLabels.Size = new System.Drawing.Size(312, 196); + this.grpLabels.Size = new System.Drawing.Size(312, 195); this.grpLabels.TabIndex = 6; this.grpLabels.TabStop = false; this.grpLabels.Text = "Labels"; @@ -404,7 +405,7 @@ namespace Mesen.GUI.Debugger this.ctrlLabelList.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlLabelList.Location = new System.Drawing.Point(3, 16); this.ctrlLabelList.Name = "ctrlLabelList"; - this.ctrlLabelList.Size = new System.Drawing.Size(306, 177); + this.ctrlLabelList.Size = new System.Drawing.Size(306, 176); this.ctrlLabelList.TabIndex = 0; this.ctrlLabelList.OnFindOccurrence += new System.EventHandler(this.ctrlLabelList_OnFindOccurrence); this.ctrlLabelList.OnLabelSelected += new System.EventHandler(this.ctrlLabelList_OnLabelSelected); @@ -415,7 +416,7 @@ namespace Mesen.GUI.Debugger this.grpFunctions.Dock = System.Windows.Forms.DockStyle.Fill; this.grpFunctions.Location = new System.Drawing.Point(3, 3); this.grpFunctions.Name = "grpFunctions"; - this.grpFunctions.Size = new System.Drawing.Size(312, 196); + this.grpFunctions.Size = new System.Drawing.Size(312, 194); this.grpFunctions.TabIndex = 5; this.grpFunctions.TabStop = false; this.grpFunctions.Text = "Functions"; @@ -425,7 +426,7 @@ namespace Mesen.GUI.Debugger this.ctrlFunctionList.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlFunctionList.Location = new System.Drawing.Point(3, 16); this.ctrlFunctionList.Name = "ctrlFunctionList"; - this.ctrlFunctionList.Size = new System.Drawing.Size(306, 177); + this.ctrlFunctionList.Size = new System.Drawing.Size(306, 175); this.ctrlFunctionList.TabIndex = 0; this.ctrlFunctionList.OnFindOccurrence += new System.EventHandler(this.ctrlFunctionList_OnFindOccurrence); this.ctrlFunctionList.OnFunctionSelected += new System.EventHandler(this.ctrlFunctionList_OnFunctionSelected); @@ -456,7 +457,7 @@ namespace Mesen.GUI.Debugger this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel10.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel10.Size = new System.Drawing.Size(1075, 165); + this.tableLayoutPanel10.Size = new System.Drawing.Size(1075, 168); this.tableLayoutPanel10.TabIndex = 0; // // grpWatch @@ -465,7 +466,7 @@ namespace Mesen.GUI.Debugger 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(352, 159); + this.grpWatch.Size = new System.Drawing.Size(352, 162); this.grpWatch.TabIndex = 2; this.grpWatch.TabStop = false; this.grpWatch.Text = "Watch"; @@ -475,7 +476,7 @@ namespace Mesen.GUI.Debugger 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(346, 140); + this.ctrlWatch.Size = new System.Drawing.Size(346, 143); this.ctrlWatch.TabIndex = 0; // // grpBreakpoints @@ -484,7 +485,7 @@ namespace Mesen.GUI.Debugger this.grpBreakpoints.Dock = System.Windows.Forms.DockStyle.Fill; this.grpBreakpoints.Location = new System.Drawing.Point(361, 3); this.grpBreakpoints.Name = "grpBreakpoints"; - this.grpBreakpoints.Size = new System.Drawing.Size(352, 159); + this.grpBreakpoints.Size = new System.Drawing.Size(352, 162); this.grpBreakpoints.TabIndex = 3; this.grpBreakpoints.TabStop = false; this.grpBreakpoints.Text = "Breakpoints"; @@ -494,7 +495,7 @@ namespace Mesen.GUI.Debugger 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(346, 140); + this.ctrlBreakpoints.Size = new System.Drawing.Size(346, 143); this.ctrlBreakpoints.TabIndex = 0; this.ctrlBreakpoints.BreakpointNavigation += new System.EventHandler(this.ctrlBreakpoints_BreakpointNavigation); // @@ -504,7 +505,7 @@ namespace Mesen.GUI.Debugger this.grpCallstack.Dock = System.Windows.Forms.DockStyle.Fill; this.grpCallstack.Location = new System.Drawing.Point(719, 3); this.grpCallstack.Name = "grpCallstack"; - this.grpCallstack.Size = new System.Drawing.Size(353, 159); + this.grpCallstack.Size = new System.Drawing.Size(353, 162); this.grpCallstack.TabIndex = 4; this.grpCallstack.TabStop = false; this.grpCallstack.Text = "Call Stack"; @@ -514,7 +515,7 @@ namespace Mesen.GUI.Debugger this.ctrlCallstack.Dock = System.Windows.Forms.DockStyle.Fill; this.ctrlCallstack.Location = new System.Drawing.Point(3, 16); this.ctrlCallstack.Name = "ctrlCallstack"; - this.ctrlCallstack.Size = new System.Drawing.Size(347, 140); + this.ctrlCallstack.Size = new System.Drawing.Size(347, 143); this.ctrlCallstack.TabIndex = 0; this.ctrlCallstack.FunctionSelected += new System.EventHandler(this.ctrlCallstack_FunctionSelected); // @@ -589,6 +590,7 @@ namespace Mesen.GUI.Debugger this.mnuWorkspace.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuImportLabels, this.mnuExportLabels, + this.mnuImportSettings, this.toolStripMenuItem16, this.mnuResetWorkspace, this.mnuResetLabels, @@ -1438,14 +1440,6 @@ namespace Mesen.GUI.Debugger this.mnuAssembler.Text = "Assembler"; this.mnuAssembler.Click += new System.EventHandler(this.mnuAssembler_Click); // - // mnuMemoryViewer - // - this.mnuMemoryViewer.Image = global::Mesen.GUI.Properties.Resources.CheatCode; - this.mnuMemoryViewer.Name = "mnuMemoryViewer"; - this.mnuMemoryViewer.Size = new System.Drawing.Size(171, 22); - this.mnuMemoryViewer.Text = "Memory Tools"; - this.mnuMemoryViewer.Click += new System.EventHandler(this.mnuMemoryViewer_Click); - // // mnuEventViewer // this.mnuEventViewer.Image = global::Mesen.GUI.Properties.Resources.NesEventViewer; @@ -1454,6 +1448,14 @@ namespace Mesen.GUI.Debugger this.mnuEventViewer.Text = "Event Viewer"; this.mnuEventViewer.Click += new System.EventHandler(this.mnuEventViewer_Click); // + // mnuMemoryViewer + // + this.mnuMemoryViewer.Image = global::Mesen.GUI.Properties.Resources.CheatCode; + this.mnuMemoryViewer.Name = "mnuMemoryViewer"; + this.mnuMemoryViewer.Size = new System.Drawing.Size(171, 22); + this.mnuMemoryViewer.Text = "Memory Tools"; + this.mnuMemoryViewer.Click += new System.EventHandler(this.mnuMemoryViewer_Click); + // // mnuPpuViewer // this.mnuPpuViewer.Image = global::Mesen.GUI.Properties.Resources.Video; @@ -1668,6 +1670,14 @@ namespace Mesen.GUI.Debugger this.tsToolbar.Text = "toolStrip1"; this.tsToolbar.Visible = false; // + // mnuImportSettings + // + this.mnuImportSettings.Image = global::Mesen.GUI.Properties.Resources.Cog; + this.mnuImportSettings.Name = "mnuImportSettings"; + this.mnuImportSettings.Size = new System.Drawing.Size(207, 22); + this.mnuImportSettings.Text = "Import Settings"; + this.mnuImportSettings.Click += new System.EventHandler(this.mnuImportSettings_Click); + // // frmDebugger // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1875,5 +1885,6 @@ namespace Mesen.GUI.Debugger private System.Windows.Forms.ToolStripMenuItem mnuPreferences; private System.Windows.Forms.ToolStripMenuItem mnuBreakOn; private System.Windows.Forms.ToolStripMenuItem mnuCopyComments; + private System.Windows.Forms.ToolStripMenuItem mnuImportSettings; } } \ No newline at end of file diff --git a/GUI.NET/Debugger/frmDebugger.cs b/GUI.NET/Debugger/frmDebugger.cs index 6d701fde..7de2391c 100644 --- a/GUI.NET/Debugger/frmDebugger.cs +++ b/GUI.NET/Debugger/frmDebugger.cs @@ -1400,5 +1400,12 @@ namespace Mesen.GUI.Debugger frm.ShowDialog(sender, this); } } + + private void mnuImportSettings_Click(object sender, EventArgs e) + { + using(frmImportSettings frm = new frmImportSettings()) { + frm.ShowDialog(sender, this); + } + } } } diff --git a/GUI.NET/Debugger/frmImportSettings.Designer.cs b/GUI.NET/Debugger/frmImportSettings.Designer.cs new file mode 100644 index 00000000..ed7c9d40 --- /dev/null +++ b/GUI.NET/Debugger/frmImportSettings.Designer.cs @@ -0,0 +1,265 @@ +namespace Mesen.GUI.Debugger +{ + partial class frmImportSettings + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.chkDbgImportComments = new System.Windows.Forms.CheckBox(); + this.chkDbgImportPrgRomLabels = new System.Windows.Forms.CheckBox(); + this.chkDbgImportRamLabels = new System.Windows.Forms.CheckBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.chkMlbImportPrgRomLabels = new System.Windows.Forms.CheckBox(); + this.chkMlbImportWorkRamLabels = new System.Windows.Forms.CheckBox(); + this.chkMlbImportInternalRamLabels = new System.Windows.Forms.CheckBox(); + this.chkMlbImportComments = new System.Windows.Forms.CheckBox(); + this.chkMlbImportSaveRamLabels = new System.Windows.Forms.CheckBox(); + this.chkDbgImportRegisterLabels = new System.Windows.Forms.CheckBox(); + this.tableLayoutPanel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.SuspendLayout(); + // + // baseConfigPanel + // + this.baseConfigPanel.Location = new System.Drawing.Point(0, 164); + this.baseConfigPanel.Size = new System.Drawing.Size(419, 29); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.groupBox2, 1, 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 = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(419, 164); + this.tableLayoutPanel1.TabIndex = 2; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tableLayoutPanel2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(3, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(203, 158); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "DBG files (CA65/CC65 integration)"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.chkDbgImportComments, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.chkDbgImportPrgRomLabels, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.chkDbgImportRamLabels, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 16); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 4; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(197, 139); + this.tableLayoutPanel2.TabIndex = 0; + // + // chkDbgImportComments + // + this.chkDbgImportComments.AutoSize = true; + this.chkDbgImportComments.Location = new System.Drawing.Point(3, 49); + this.chkDbgImportComments.Name = "chkDbgImportComments"; + this.chkDbgImportComments.Size = new System.Drawing.Size(106, 17); + this.chkDbgImportComments.TabIndex = 2; + this.chkDbgImportComments.Text = "Import comments"; + this.chkDbgImportComments.UseVisualStyleBackColor = true; + // + // chkDbgImportPrgRomLabels + // + this.chkDbgImportPrgRomLabels.AutoSize = true; + this.chkDbgImportPrgRomLabels.Location = new System.Drawing.Point(3, 26); + this.chkDbgImportPrgRomLabels.Name = "chkDbgImportPrgRomLabels"; + this.chkDbgImportPrgRomLabels.Size = new System.Drawing.Size(139, 17); + this.chkDbgImportPrgRomLabels.TabIndex = 1; + this.chkDbgImportPrgRomLabels.Text = "Import PRG ROM labels"; + this.chkDbgImportPrgRomLabels.UseVisualStyleBackColor = true; + // + // chkDbgImportRamLabels + // + this.chkDbgImportRamLabels.AutoSize = true; + this.chkDbgImportRamLabels.Location = new System.Drawing.Point(3, 3); + this.chkDbgImportRamLabels.Name = "chkDbgImportRamLabels"; + this.chkDbgImportRamLabels.Size = new System.Drawing.Size(112, 17); + this.chkDbgImportRamLabels.TabIndex = 0; + this.chkDbgImportRamLabels.Text = "Import RAM labels"; + this.chkDbgImportRamLabels.UseVisualStyleBackColor = true; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.tableLayoutPanel3); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(212, 3); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(204, 158); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "MLB files (ASM6f integration)"; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 1; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Controls.Add(this.chkMlbImportPrgRomLabels, 0, 4); + this.tableLayoutPanel3.Controls.Add(this.chkMlbImportWorkRamLabels, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.chkMlbImportInternalRamLabels, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.chkMlbImportComments, 0, 5); + this.tableLayoutPanel3.Controls.Add(this.chkMlbImportSaveRamLabels, 0, 2); + this.tableLayoutPanel3.Controls.Add(this.chkDbgImportRegisterLabels, 0, 3); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 16); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 7; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + 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(198, 139); + this.tableLayoutPanel3.TabIndex = 1; + // + // chkMlbImportPrgRomLabels + // + this.chkMlbImportPrgRomLabels.AutoSize = true; + this.chkMlbImportPrgRomLabels.Location = new System.Drawing.Point(3, 95); + this.chkMlbImportPrgRomLabels.Name = "chkMlbImportPrgRomLabels"; + this.chkMlbImportPrgRomLabels.Size = new System.Drawing.Size(139, 17); + this.chkMlbImportPrgRomLabels.TabIndex = 4; + this.chkMlbImportPrgRomLabels.Text = "Import PRG ROM labels"; + this.chkMlbImportPrgRomLabels.UseVisualStyleBackColor = true; + // + // chkMlbImportWorkRamLabels + // + this.chkMlbImportWorkRamLabels.AutoSize = true; + this.chkMlbImportWorkRamLabels.Location = new System.Drawing.Point(3, 26); + this.chkMlbImportWorkRamLabels.Name = "chkMlbImportWorkRamLabels"; + this.chkMlbImportWorkRamLabels.Size = new System.Drawing.Size(141, 17); + this.chkMlbImportWorkRamLabels.TabIndex = 3; + this.chkMlbImportWorkRamLabels.Text = "Import Work RAM labels"; + this.chkMlbImportWorkRamLabels.UseVisualStyleBackColor = true; + // + // chkMlbImportInternalRamLabels + // + this.chkMlbImportInternalRamLabels.AutoSize = true; + this.chkMlbImportInternalRamLabels.Location = new System.Drawing.Point(3, 3); + this.chkMlbImportInternalRamLabels.Name = "chkMlbImportInternalRamLabels"; + this.chkMlbImportInternalRamLabels.Size = new System.Drawing.Size(112, 17); + this.chkMlbImportInternalRamLabels.TabIndex = 0; + this.chkMlbImportInternalRamLabels.Text = "Import RAM labels"; + this.chkMlbImportInternalRamLabels.UseVisualStyleBackColor = true; + // + // chkMlbImportComments + // + this.chkMlbImportComments.AutoSize = true; + this.chkMlbImportComments.Location = new System.Drawing.Point(3, 118); + this.chkMlbImportComments.Name = "chkMlbImportComments"; + this.chkMlbImportComments.Size = new System.Drawing.Size(106, 17); + this.chkMlbImportComments.TabIndex = 2; + this.chkMlbImportComments.Text = "Import comments"; + this.chkMlbImportComments.UseVisualStyleBackColor = true; + // + // chkMlbImportSaveRamLabels + // + this.chkMlbImportSaveRamLabels.AutoSize = true; + this.chkMlbImportSaveRamLabels.Location = new System.Drawing.Point(3, 49); + this.chkMlbImportSaveRamLabels.Name = "chkMlbImportSaveRamLabels"; + this.chkMlbImportSaveRamLabels.Size = new System.Drawing.Size(140, 17); + this.chkMlbImportSaveRamLabels.TabIndex = 1; + this.chkMlbImportSaveRamLabels.Text = "Import Save RAM labels"; + this.chkMlbImportSaveRamLabels.UseVisualStyleBackColor = true; + // + // chkDbgImportRegisterLabels + // + this.chkDbgImportRegisterLabels.AutoSize = true; + this.chkDbgImportRegisterLabels.Location = new System.Drawing.Point(3, 72); + this.chkDbgImportRegisterLabels.Name = "chkDbgImportRegisterLabels"; + this.chkDbgImportRegisterLabels.Size = new System.Drawing.Size(127, 17); + this.chkDbgImportRegisterLabels.TabIndex = 5; + this.chkDbgImportRegisterLabels.Text = "Import Register labels"; + this.chkDbgImportRegisterLabels.UseVisualStyleBackColor = true; + // + // frmImportSettings + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(419, 193); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "frmImportSettings"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Import Settings"; + this.Controls.SetChildIndex(this.baseConfigPanel, 0); + this.Controls.SetChildIndex(this.tableLayoutPanel1, 0); + this.tableLayoutPanel1.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.CheckBox chkDbgImportRamLabels; + private System.Windows.Forms.CheckBox chkDbgImportComments; + private System.Windows.Forms.CheckBox chkDbgImportPrgRomLabels; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.CheckBox chkMlbImportPrgRomLabels; + private System.Windows.Forms.CheckBox chkMlbImportWorkRamLabels; + private System.Windows.Forms.CheckBox chkMlbImportInternalRamLabels; + private System.Windows.Forms.CheckBox chkMlbImportComments; + private System.Windows.Forms.CheckBox chkMlbImportSaveRamLabels; + private System.Windows.Forms.CheckBox chkDbgImportRegisterLabels; + } +} \ No newline at end of file diff --git a/GUI.NET/Debugger/frmImportSettings.cs b/GUI.NET/Debugger/frmImportSettings.cs new file mode 100644 index 00000000..ba4439c6 --- /dev/null +++ b/GUI.NET/Debugger/frmImportSettings.cs @@ -0,0 +1,35 @@ +using Mesen.GUI.Config; +using Mesen.GUI.Forms; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Mesen.GUI.Debugger +{ + public partial class frmImportSettings : BaseConfigForm + { + public frmImportSettings() + { + InitializeComponent(); + + Entity = ConfigManager.Config.DebugInfo.ImportConfig; + + AddBinding("DbgImportRamLabels", chkDbgImportRamLabels); + AddBinding("DbgImportPrgRomLabels", chkDbgImportPrgRomLabels); + AddBinding("DbgImportComments", chkDbgImportComments); + + AddBinding("MlbImportInternalRamLabels", chkMlbImportInternalRamLabels); + AddBinding("MlbImportWorkRamLabels", chkMlbImportWorkRamLabels); + AddBinding("MlbImportSaveRamLabels", chkMlbImportSaveRamLabels); + AddBinding("MlbImportRegisterLabels", chkDbgImportRegisterLabels); + AddBinding("MlbImportPrgRomLabels", chkMlbImportPrgRomLabels); + AddBinding("MlbImportComments", chkMlbImportComments); + } + } +} diff --git a/GUI.NET/Debugger/frmImportSettings.resx b/GUI.NET/Debugger/frmImportSettings.resx new file mode 100644 index 00000000..8766f298 --- /dev/null +++ b/GUI.NET/Debugger/frmImportSettings.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/GUI.NET/GUI.NET.csproj b/GUI.NET/GUI.NET.csproj index 62aec5eb..c6d1dd3c 100644 --- a/GUI.NET/GUI.NET.csproj +++ b/GUI.NET/GUI.NET.csproj @@ -655,6 +655,12 @@ frmDbgShortcutGetKey.cs + + Form + + + frmImportSettings.cs + Form @@ -1356,6 +1362,9 @@ frmDbgShortcutGetKey.cs + + frmImportSettings.cs + frmOpCodeTooltip.cs