PCE CDL - some cleanups like icons and shortcut keys on menus, Recent menu, autoload, other misc tool options

This commit is contained in:
adelikat 2014-04-13 01:05:23 +00:00
parent 7f37535cd5
commit aaeb2c9cdd
4 changed files with 337 additions and 147 deletions

View File

@ -385,6 +385,10 @@ namespace BizHawk.Client.Common
public bool PCEBGViewerAutoload = false; public bool PCEBGViewerAutoload = false;
public int PCEBGViewerRefreshRate = 16; public int PCEBGViewerRefreshRate = 16;
// PCE CDL settings
public ToolDialogSettings PceCdlSettings = new ToolDialogSettings();
public RecentFiles RecentPceCdlFiles = new RecentFiles(8);
#region Cheats Dialog #region Cheats Dialog
public ToolDialogSettings CheatsSettings = new ToolDialogSettings(); public ToolDialogSettings CheatsSettings = new ToolDialogSettings();

View File

@ -344,6 +344,11 @@ namespace BizHawk.Client.EmuHawk
GlobalWin.Tools.Load<PceBgViewer>(); GlobalWin.Tools.Load<PceBgViewer>();
} }
if (Global.Config.RecentPceCdlFiles.AutoLoad && Global.Emulator is PCEngine)
{
GlobalWin.Tools.Load<PCECDL>();
}
if (Global.Config.AutoLoadSNESGraphicsDebugger && Global.Emulator is LibsnesCore) if (Global.Config.AutoLoadSNESGraphicsDebugger && Global.Emulator is LibsnesCore)
{ {
GlobalWin.Tools.Load<SNESGraphicsDebugger>(); GlobalWin.Tools.Load<SNESGraphicsDebugger>();

View File

@ -29,121 +29,219 @@
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PCECDL)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PCECDL));
this.checkBox1 = new System.Windows.Forms.CheckBox(); this.LoggingActiveCheckbox = new System.Windows.Forms.CheckBox();
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.menuStrip1 = new MenuStripEx();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.NewMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.OpenMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveAsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.unionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AppendMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.disassembleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.RecentSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.textBox1 = new System.Windows.Forms.TextBox(); this.noneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.ClearMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DisassembleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.OptionsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.CdlTextbox = new System.Windows.Forms.TextBox();
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// checkBox1 // LoggingActiveCheckbox
// //
this.checkBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.LoggingActiveCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.checkBox1.AutoSize = true; this.LoggingActiveCheckbox.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(12, 244); this.LoggingActiveCheckbox.Location = new System.Drawing.Point(12, 244);
this.checkBox1.Name = "checkBox1"; this.LoggingActiveCheckbox.Name = "LoggingActiveCheckbox";
this.checkBox1.Size = new System.Drawing.Size(101, 17); this.LoggingActiveCheckbox.Size = new System.Drawing.Size(101, 17);
this.checkBox1.TabIndex = 1; this.LoggingActiveCheckbox.TabIndex = 1;
this.checkBox1.Text = "Loging is Active"; this.LoggingActiveCheckbox.Text = "Loging is Active";
this.checkBox1.UseVisualStyleBackColor = true; this.LoggingActiveCheckbox.UseVisualStyleBackColor = true;
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); this.LoggingActiveCheckbox.CheckedChanged += new System.EventHandler(this.LoggingActiveCheckbox_CheckedChanged);
// //
// menuStrip1 // menuStrip1
// //
this.menuStrip1.ClickThrough = true;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem}); this.FileSubMenu,
this.OptionsSubMenu});
this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(292, 24); this.menuStrip1.Size = new System.Drawing.Size(292, 24);
this.menuStrip1.TabIndex = 2; this.menuStrip1.TabIndex = 2;
this.menuStrip1.Text = "menuStrip1"; this.menuStrip1.Text = "menuStrip1";
// //
// fileToolStripMenuItem // FileSubMenu
// //
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem, this.NewMenuItem,
this.clearToolStripMenuItem, this.OpenMenuItem,
this.loadToolStripMenuItem, this.SaveMenuItem,
this.saveToolStripMenuItem, this.SaveAsMenuItem,
this.unionToolStripMenuItem, this.AppendMenuItem,
this.disassembleToolStripMenuItem}); this.RecentSubMenu,
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.toolStripSeparator2,
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.ClearMenuItem,
this.fileToolStripMenuItem.Text = "&File"; this.DisassembleMenuItem,
this.toolStripSeparator1,
this.ExitMenuItem});
this.FileSubMenu.Name = "FileSubMenu";
this.FileSubMenu.Size = new System.Drawing.Size(37, 20);
this.FileSubMenu.Text = "&File";
// //
// newToolStripMenuItem // NewMenuItem
// //
this.newToolStripMenuItem.Name = "newToolStripMenuItem"; this.NewMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.NewFile;
this.newToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.NewMenuItem.Name = "NewMenuItem";
this.newToolStripMenuItem.Text = "&New"; this.NewMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); this.NewMenuItem.Size = new System.Drawing.Size(195, 22);
this.NewMenuItem.Text = "&New";
this.NewMenuItem.Click += new System.EventHandler(this.NewMenuItem_Click);
// //
// clearToolStripMenuItem // OpenMenuItem
// //
this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; this.OpenMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile;
this.clearToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.OpenMenuItem.Name = "OpenMenuItem";
this.clearToolStripMenuItem.Text = "&Clear"; this.OpenMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click); this.OpenMenuItem.Size = new System.Drawing.Size(195, 22);
this.OpenMenuItem.Text = "&Open...";
this.OpenMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click);
// //
// loadToolStripMenuItem // SaveMenuItem
// //
this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; this.SaveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs;
this.loadToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.SaveMenuItem.Name = "SaveMenuItem";
this.loadToolStripMenuItem.Text = "&Load..."; this.SaveMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click); this.SaveMenuItem.Size = new System.Drawing.Size(195, 22);
this.SaveMenuItem.Text = "&Save";
this.SaveMenuItem.Click += new System.EventHandler(this.SaveMenuItem_Click);
// //
// saveToolStripMenuItem // SaveAsMenuItem
// //
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; this.SaveAsMenuItem.Name = "SaveAsMenuItem";
this.saveToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.SaveAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
this.saveToolStripMenuItem.Text = "&Save..."; | System.Windows.Forms.Keys.S)));
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); this.SaveAsMenuItem.Size = new System.Drawing.Size(195, 22);
this.SaveAsMenuItem.Text = "&Save As...";
this.SaveAsMenuItem.Click += new System.EventHandler(this.SaveAsMenuItem_Click);
// //
// unionToolStripMenuItem // AppendMenuItem
// //
this.unionToolStripMenuItem.Name = "unionToolStripMenuItem"; this.AppendMenuItem.Name = "AppendMenuItem";
this.unionToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.AppendMenuItem.Size = new System.Drawing.Size(195, 22);
this.unionToolStripMenuItem.Text = "&Union..."; this.AppendMenuItem.Text = "&Append File...";
this.unionToolStripMenuItem.Click += new System.EventHandler(this.unionToolStripMenuItem_Click); this.AppendMenuItem.Click += new System.EventHandler(this.AppendMenuItem_Click);
// //
// disassembleToolStripMenuItem // RecentSubMenu
// //
this.disassembleToolStripMenuItem.Name = "disassembleToolStripMenuItem"; this.RecentSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.disassembleToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.noneToolStripMenuItem});
this.disassembleToolStripMenuItem.Text = "&Disassemble..."; this.RecentSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent;
this.disassembleToolStripMenuItem.Click += new System.EventHandler(this.disassembleToolStripMenuItem_Click); this.RecentSubMenu.Name = "RecentSubMenu";
this.RecentSubMenu.Size = new System.Drawing.Size(195, 22);
this.RecentSubMenu.Text = "Recent";
this.RecentSubMenu.DropDownOpened += new System.EventHandler(this.RecentSubMenu_DropDownOpened);
// //
// textBox1 // noneToolStripMenuItem
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.noneToolStripMenuItem.Name = "noneToolStripMenuItem";
this.noneToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
this.noneToolStripMenuItem.Text = "None";
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(192, 6);
//
// ClearMenuItem
//
this.ClearMenuItem.Name = "ClearMenuItem";
this.ClearMenuItem.Size = new System.Drawing.Size(195, 22);
this.ClearMenuItem.Text = "&Clear";
this.ClearMenuItem.Click += new System.EventHandler(this.ClearMenuItem_Click);
//
// DisassembleMenuItem
//
this.DisassembleMenuItem.Name = "DisassembleMenuItem";
this.DisassembleMenuItem.Size = new System.Drawing.Size(195, 22);
this.DisassembleMenuItem.Text = "&Disassemble...";
this.DisassembleMenuItem.Click += new System.EventHandler(this.DisassembleMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6);
//
// ExitMenuItem
//
this.ExitMenuItem.Name = "ExitMenuItem";
this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4";
this.ExitMenuItem.Size = new System.Drawing.Size(195, 22);
this.ExitMenuItem.Text = "&Close";
this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click);
//
// OptionsSubMenu
//
this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.SaveWindowPositionMenuItem,
this.AlwaysOnTopMenuItem,
this.FloatingWindowMenuItem});
this.OptionsSubMenu.Name = "OptionsSubMenu";
this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20);
this.OptionsSubMenu.Text = "&Options";
this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened);
//
// SaveWindowPositionMenuItem
//
this.SaveWindowPositionMenuItem.Name = "SaveWindowPositionMenuItem";
this.SaveWindowPositionMenuItem.Size = new System.Drawing.Size(191, 22);
this.SaveWindowPositionMenuItem.Text = "Save Window Position";
this.SaveWindowPositionMenuItem.Click += new System.EventHandler(this.SaveWindowPositionMenuItem_Click);
//
// AlwaysOnTopMenuItem
//
this.AlwaysOnTopMenuItem.Name = "AlwaysOnTopMenuItem";
this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(191, 22);
this.AlwaysOnTopMenuItem.Text = "&Always On Top";
this.AlwaysOnTopMenuItem.Click += new System.EventHandler(this.AlwaysOnTopMenuItem_Click);
//
// CdlTextbox
//
this.CdlTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(0, 27); this.CdlTextbox.Location = new System.Drawing.Point(0, 27);
this.textBox1.Multiline = true; this.CdlTextbox.Multiline = true;
this.textBox1.Name = "textBox1"; this.CdlTextbox.Name = "CdlTextbox";
this.textBox1.ReadOnly = true; this.CdlTextbox.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(292, 211); this.CdlTextbox.Size = new System.Drawing.Size(292, 211);
this.textBox1.TabIndex = 3; this.CdlTextbox.TabIndex = 3;
//
// FloatingWindowMenuItem
//
this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem";
this.FloatingWindowMenuItem.Size = new System.Drawing.Size(191, 22);
this.FloatingWindowMenuItem.Text = "&Floating Window";
this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click);
// //
// PCECDL // PCECDL
// //
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(292, 273); this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.textBox1); this.Controls.Add(this.CdlTextbox);
this.Controls.Add(this.checkBox1); this.Controls.Add(this.LoggingActiveCheckbox);
this.Controls.Add(this.menuStrip1); this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1; this.MainMenuStrip = this.menuStrip1;
this.Name = "PCECDL"; this.Name = "PCECDL";
this.Text = "Code Data Logger"; this.Text = "Code Data Logger";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PCECDL_FormClosing); this.Load += new System.EventHandler(this.PCECDL_Load);
this.menuStrip1.ResumeLayout(false); this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout(); this.menuStrip1.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
@ -153,16 +251,26 @@
#endregion #endregion
private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.CheckBox LoggingActiveCheckbox;
private System.Windows.Forms.MenuStrip menuStrip1; private MenuStripEx menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem FileSubMenu;
private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ClearMenuItem;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem OpenMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem SaveAsMenuItem;
private System.Windows.Forms.ToolStripMenuItem unionToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem AppendMenuItem;
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem NewMenuItem;
private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox CdlTextbox;
private System.Windows.Forms.ToolStripMenuItem disassembleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem DisassembleMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem ExitMenuItem;
private System.Windows.Forms.ToolStripMenuItem SaveMenuItem;
private System.Windows.Forms.ToolStripMenuItem RecentSubMenu;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem OptionsSubMenu;
private System.Windows.Forms.ToolStripMenuItem SaveWindowPositionMenuItem;
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;
private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem;
} }
} }

View File

@ -1,28 +1,28 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.PCEngine;
using BizHawk.Emulation.Cores.Components.H6280;
using System.IO; using System.IO;
using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Components.H6280;
using BizHawk.Emulation.Cores.PCEngine;
namespace BizHawk.Client.EmuHawk namespace BizHawk.Client.EmuHawk
{ {
public partial class PCECDL : Form, IToolForm public partial class PCECDL : Form, IToolForm
{ {
PCEngine emu; // TODO
CodeDataLog CDL; // Loading doesn't work
// Save
// Save Window position and size
// Restore settings
private PCEngine _emu;
private CodeDataLog _cdl;
public PCECDL() public PCECDL()
{ {
InitializeComponent(); InitializeComponent();
TopMost = Global.Config.PceCdlSettings.TopMost;
Restart(); Restart();
} }
@ -35,30 +35,30 @@ namespace BizHawk.Client.EmuHawk
{ {
if (Global.Emulator is PCEngine) if (Global.Emulator is PCEngine)
{ {
emu = (PCEngine)Global.Emulator; _emu = (PCEngine)Global.Emulator;
checkBox1.Checked = emu.Cpu.CDLLoggingActive; LoggingActiveCheckbox.Checked = _emu.Cpu.CDLLoggingActive;
CDL = emu.Cpu.CDL; _cdl = _emu.Cpu.CDL;
emu.InitCDLMappings(); _emu.InitCDLMappings();
UpdateDisplay(); UpdateDisplay();
} }
else else
{ {
emu = null; _emu = null;
Close(); Close();
} }
} }
void UpdateDisplay() private void UpdateDisplay()
{ {
List<string> Lines = new List<string>(); var lines = new List<string>();
if (CDL == null) if (_cdl == null)
{ {
Lines.Add("No CDL loaded."); lines.Add("No CDL loaded.");
} }
else else
{ {
Lines.Add("CDL contains the following domains:"); lines.Add("CDL contains the following domains:");
foreach (var kvp in CDL) foreach (var kvp in _cdl)
{ {
int total = 0; int total = 0;
unsafe unsafe
@ -70,14 +70,18 @@ namespace BizHawk.Client.EmuHawk
while (src < end) while (src < end)
{ {
if (*src++ != 0) if (*src++ != 0)
{
total++; total++;
}
} }
} }
} }
Lines.Add(string.Format("Domain {0} Size {1} Mapped {2}%", kvp.Key, kvp.Value.Length, total / (float) kvp.Value.Length * 100f));
lines.Add(string.Format("Domain {0} Size {1} Mapped {2}%", kvp.Key, kvp.Value.Length, total / (float) kvp.Value.Length * 100f));
} }
} }
textBox1.Lines = Lines.ToArray();
CdlTextbox.Lines = lines.ToArray();
} }
public bool AskSave() public bool AskSave()
@ -90,18 +94,47 @@ namespace BizHawk.Client.EmuHawk
get { return false; } get { return false; }
} }
private void newToolStripMenuItem_Click(object sender, EventArgs e) private void LoadFileFromRecent(string path)
{
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
var newCDL = CodeDataLog.Load(fs);
if (!newCDL.CheckConsistency(_emu.Cpu.Mappings))
{
MessageBox.Show(this, "CDL file does not match emulator's current memory map!");
}
else
{
_cdl = newCDL;
_emu.Cpu.CDL = _cdl;
UpdateDisplay();
}
}
}
#region Events
private void RecentSubMenu_DropDownOpened(object sender, EventArgs e)
{
RecentSubMenu.DropDownItems.Clear();
RecentSubMenu.DropDownItems.AddRange(
ToolHelpers.GenerateRecentMenu(Global.Config.RecentPceCdlFiles, LoadFileFromRecent));
RecentSubMenu.DropDownItems.Add(
ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentPceCdlFiles));
}
private void NewMenuItem_Click(object sender, EventArgs e)
{ {
var result = MessageBox.Show(this, "OK to create new CDL?", "Query", MessageBoxButtons.YesNo); var result = MessageBox.Show(this, "OK to create new CDL?", "Query", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) if (result == DialogResult.Yes)
{ {
CDL = CodeDataLog.Create(emu.Cpu.Mappings); _cdl = CodeDataLog.Create(_emu.Cpu.Mappings);
emu.Cpu.CDL = CDL; _emu.Cpu.CDL = _cdl;
UpdateDisplay(); UpdateDisplay();
} }
} }
private void loadToolStripMenuItem_Click(object sender, EventArgs e) private void OpenMenuItem_Click(object sender, EventArgs e)
{ {
var result = MessageBox.Show(this, "OK to load new CDL?", "Query", MessageBoxButtons.YesNo); var result = MessageBox.Show(this, "OK to load new CDL?", "Query", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) if (result == DialogResult.Yes)
@ -110,27 +143,33 @@ namespace BizHawk.Client.EmuHawk
result = ofd.ShowDialog(this); result = ofd.ShowDialog(this);
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
using (FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)) using (var fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read))
{ {
var newCDL = CodeDataLog.Load(fs); var newCDL = CodeDataLog.Load(fs);
if (!newCDL.CheckConsistency(emu.Cpu.Mappings)) if (!newCDL.CheckConsistency(_emu.Cpu.Mappings))
{ {
MessageBox.Show(this, "CDL file does not match emulator's current memory map!"); MessageBox.Show(this, "CDL file does not match emulator's current memory map!");
} }
else else
{ {
CDL = newCDL; _cdl = newCDL;
emu.Cpu.CDL = CDL; _emu.Cpu.CDL = _cdl;
UpdateDisplay(); UpdateDisplay();
Global.Config.RecentPceCdlFiles.Add(ofd.FileName);
} }
} }
} }
} }
} }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) private void SaveMenuItem_Click(object sender, EventArgs e)
{ {
if (CDL == null) // TODO
}
private void SaveAsMenuItem_Click(object sender, EventArgs e)
{
if (_cdl == null)
{ {
MessageBox.Show(this, "Cannot save with no CDL loaded!", "Alert"); MessageBox.Show(this, "Cannot save with no CDL loaded!", "Alert");
} }
@ -140,17 +179,18 @@ namespace BizHawk.Client.EmuHawk
var result = sfd.ShowDialog(this); var result = sfd.ShowDialog(this);
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write)) using (var fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write))
{ {
CDL.Save(fs); _cdl.Save(fs);
Global.Config.RecentPceCdlFiles.Add(sfd.FileName);
} }
} }
} }
} }
private void unionToolStripMenuItem_Click(object sender, EventArgs e) private void AppendMenuItem_Click(object sender, EventArgs e)
{ {
if (CDL == null) if (_cdl == null)
{ {
MessageBox.Show(this, "Cannot union with no CDL loaded!", "Alert"); MessageBox.Show(this, "Cannot union with no CDL loaded!", "Alert");
} }
@ -160,24 +200,19 @@ namespace BizHawk.Client.EmuHawk
var result = ofd.ShowDialog(this); var result = ofd.ShowDialog(this);
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
using (FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)) using (var fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read))
{ {
var newCDL = CodeDataLog.Load(fs); var newCDL = CodeDataLog.Load(fs);
CDL.LogicalOrFrom(newCDL); _cdl.LogicalOrFrom(newCDL);
UpdateDisplay(); UpdateDisplay();
} }
} }
} }
} }
private void PCECDL_FormClosing(object sender, FormClosingEventArgs e) private void ClearMenuItem_Click(object sender, EventArgs e)
{ {
if (_cdl == null)
}
private void clearToolStripMenuItem_Click(object sender, EventArgs e)
{
if (CDL == null)
{ {
MessageBox.Show(this, "Cannot clear with no CDL loaded!", "Alert"); MessageBox.Show(this, "Cannot clear with no CDL loaded!", "Alert");
} }
@ -186,25 +221,15 @@ namespace BizHawk.Client.EmuHawk
var result = MessageBox.Show(this, "OK to clear CDL?", "Query", MessageBoxButtons.YesNo); var result = MessageBox.Show(this, "OK to clear CDL?", "Query", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) if (result == DialogResult.Yes)
{ {
CDL.ClearData(); _cdl.ClearData();
UpdateDisplay(); UpdateDisplay();
} }
} }
} }
private void checkBox1_CheckedChanged(object sender, EventArgs e) private void DisassembleMenuItem_Click(object sender, EventArgs e)
{ {
if (checkBox1.Checked && CDL == null) if (_cdl == null)
{
MessageBox.Show(this, "Cannot log with no CDL loaded!", "Alert");
checkBox1.Checked = false;
}
emu.Cpu.CDLLoggingActive = checkBox1.Checked;
}
private void disassembleToolStripMenuItem_Click(object sender, EventArgs e)
{
if (CDL == null)
{ {
MessageBox.Show(this, "Cannot disassemble with no CDL loaded!", "Alert"); MessageBox.Show(this, "Cannot disassemble with no CDL loaded!", "Alert");
} }
@ -214,12 +239,60 @@ namespace BizHawk.Client.EmuHawk
var result = sfd.ShowDialog(this); var result = sfd.ShowDialog(this);
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write)) using (var fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write))
{ {
CDL.Disassemble(fs, Global.Emulator.MemoryDomains); _cdl.Disassemble(fs, Global.Emulator.MemoryDomains);
} }
} }
} }
} }
private void ExitMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e)
{
SaveWindowPositionMenuItem.Checked = Global.Config.PceCdlSettings.SaveWindowPosition;
TopMost = AlwaysOnTopMenuItem.Checked = Global.Config.PceCdlSettings.TopMost;
FloatingWindowMenuItem.Checked = Global.Config.PceCdlSettings.FloatingWindow;
}
private void SaveWindowPositionMenuItem_Click(object sender, EventArgs e)
{
Global.Config.PceCdlSettings.SaveWindowPosition ^= true;
}
private void AlwaysOnTopMenuItem_Click(object sender, EventArgs e)
{
Global.Config.PceCdlSettings.TopMost ^= true;
}
private void FloatingWindowMenuItem_Click(object sender, EventArgs e)
{
Global.Config.PceCdlSettings.FloatingWindow ^= true;
}
private void PCECDL_Load(object sender, EventArgs e)
{
if (Global.Config.RecentPceCdlFiles.AutoLoad)
{
LoadFileFromRecent(Global.Config.RecentPceCdlFiles.MostRecent);
}
}
private void LoggingActiveCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (LoggingActiveCheckbox.Checked && _cdl == null)
{
MessageBox.Show(this, "Cannot log with no CDL loaded!", "Alert");
LoggingActiveCheckbox.Checked = false;
}
_emu.Cpu.CDLLoggingActive = LoggingActiveCheckbox.Checked;
}
#endregion
} }
} }