From e5b3138d153164a51b163405d4ac019306209add Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 May 2014 15:30:18 +0000 Subject: [PATCH] Ram Watch, Ram Search - don't crash on out of range addresses (such as when the user leaves ram watch open and changes cores), highlight out of range addresses and warn user. On Ram Search - give the option to remove these addresses from the list. --- .../tools/RamSearchEngine.cs | 36 ++-- BizHawk.Client.Common/tools/Watch.cs | 12 +- .../tools/Watch/RamSearch.Designer.cs | 179 ++++++++++-------- .../tools/Watch/RamSearch.cs | 33 +++- .../tools/Watch/RamWatch.cs | 10 + 5 files changed, 168 insertions(+), 102 deletions(-) diff --git a/BizHawk.Client.Common/tools/RamSearchEngine.cs b/BizHawk.Client.Common/tools/RamSearchEngine.cs index 3344b738f8..a921d2ca92 100644 --- a/BizHawk.Client.Common/tools/RamSearchEngine.cs +++ b/BizHawk.Client.Common/tools/RamSearchEngine.cs @@ -44,6 +44,16 @@ namespace BizHawk.Client.Common #region API + public IEnumerable OutOfRangeAddress + { + get + { + return _watchList + .Where(watch => watch.Address >= Domain.Size) + .Select(watch => watch.Address); + } + } + public void Start() { _history.Clear(); @@ -730,7 +740,7 @@ namespace BizHawk.Client.Common { default: case Watch.WatchSize.Byte: - var theByte = _settings.Domain.PeekByte(addr); + var theByte = _settings.Domain.PeekByte(addr % Domain.Size); if (_settings.Type == Watch.DisplayType.Signed) { return (sbyte)theByte; @@ -741,7 +751,7 @@ namespace BizHawk.Client.Common } case Watch.WatchSize.Word: - var theWord = _settings.Domain.PeekWord(addr, _settings.BigEndian); + var theWord = _settings.Domain.PeekWord(addr % Domain.Size, _settings.BigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain if (_settings.Type == Watch.DisplayType.Signed) { return (short)theWord; @@ -752,7 +762,7 @@ namespace BizHawk.Client.Common } case Watch.WatchSize.DWord: - var theDWord = _settings.Domain.PeekDWord(addr, _settings.BigEndian); + var theDWord = _settings.Domain.PeekDWord(addr % Domain.Size, _settings.BigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain if (_settings.Type == Watch.DisplayType.Signed) { return (int)theDWord; @@ -803,7 +813,7 @@ namespace BizHawk.Client.Common public MiniByteWatch(MemoryDomain domain, int addr) { Address = addr; - _previous = domain.PeekByte(Address); + _previous = domain.PeekByte(Address % domain.Size); } public int Previous @@ -813,7 +823,7 @@ namespace BizHawk.Client.Common public void SetPreviousToCurrent(MemoryDomain domain, bool bigendian) { - _previous = domain.PeekByte(Address); + _previous = domain.PeekByte(Address % domain.Size); } } @@ -825,7 +835,7 @@ namespace BizHawk.Client.Common public MiniWordWatch(MemoryDomain domain, int addr, bool bigEndian) { Address = addr; - _previous = domain.PeekWord(Address, bigEndian); + _previous = domain.PeekWord(Address % domain.Size, bigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain } public int Previous @@ -847,7 +857,7 @@ namespace BizHawk.Client.Common public MiniDWordWatch(MemoryDomain domain, int addr, bool bigEndian) { Address = addr; - _previous = domain.PeekDWord(Address, bigEndian); + _previous = domain.PeekDWord(Address % domain.Size, bigEndian); // TODO: % size stil lisn't correct since it could be the last bytes of the domain } public int Previous @@ -877,7 +887,7 @@ namespace BizHawk.Client.Common public void SetPreviousToCurrent(MemoryDomain domain, bool bigendian) { - _previous = _prevFrame = domain.PeekByte(Address); + _previous = _prevFrame = domain.PeekByte(Address % domain.Size); } public int Previous @@ -892,7 +902,7 @@ namespace BizHawk.Client.Common public void Update(Watch.PreviousType type, MemoryDomain domain, bool bigendian) { - var value = domain.PeekByte(Address); + var value = domain.PeekByte(Address % domain.Size); if (value != _prevFrame) { @@ -934,7 +944,7 @@ namespace BizHawk.Client.Common public void SetPreviousToCurrent(MemoryDomain domain, bool bigendian) { - _previous = _prevFrame = domain.PeekWord(Address, bigendian); + _previous = _prevFrame = domain.PeekWord(Address % domain.Size, bigendian); // TODO: % size stil lisn't correct since it could be the last bytes of the domain } public int Previous @@ -949,7 +959,7 @@ namespace BizHawk.Client.Common public void Update(Watch.PreviousType type, MemoryDomain domain, bool bigendian) { - var value = domain.PeekWord(Address, bigendian); + var value = domain.PeekWord(Address % domain.Size, bigendian); // TODO: % size stil lisn't correct since it could be the last bytes of the domain if (value != Previous) { _changecount++; @@ -990,7 +1000,7 @@ namespace BizHawk.Client.Common public void SetPreviousToCurrent(MemoryDomain domain, bool bigendian) { - _previous = _prevFrame = domain.PeekDWord(Address, bigendian); + _previous = _prevFrame = domain.PeekDWord(Address % domain.Size, bigendian); // TODO: % size stil lisn't correct since it could be the last bytes of the domain } public int Previous @@ -1005,7 +1015,7 @@ namespace BizHawk.Client.Common public void Update(Watch.PreviousType type, MemoryDomain domain, bool bigendian) { - var value = domain.PeekDWord(Address, bigendian); + var value = domain.PeekDWord(Address % domain.Size, bigendian); // TODO: % size stil lisn't correct since it could be the last bytes of the domain if (value != Previous) { _changecount++; diff --git a/BizHawk.Client.Common/tools/Watch.cs b/BizHawk.Client.Common/tools/Watch.cs index 34382cf8e1..974dfb95f7 100644 --- a/BizHawk.Client.Common/tools/Watch.cs +++ b/BizHawk.Client.Common/tools/Watch.cs @@ -170,32 +170,32 @@ namespace BizHawk.Client.Common protected byte GetByte() { - return _domain.PeekByte(_address); + return _domain.PeekByte(_address % _domain.Size); } protected ushort GetWord() { - return _domain.PeekWord(_address, _bigEndian); + return _domain.PeekWord(_address % _domain.Size, _bigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain } protected uint GetDWord() { - return _domain.PeekDWord(_address, _bigEndian); + return _domain.PeekDWord(_address % _domain.Size, _bigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain } protected void PokeByte(byte val) { - _domain.PokeByte(_address, val); + _domain.PokeByte(_address % _domain.Size, val); } protected void PokeWord(ushort val) { - _domain.PokeWord(_address, val, _bigEndian); + _domain.PokeWord(_address % _domain.Size, val, _bigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain } protected void PokeDWord(uint val) { - _domain.PokeDWord(_address, val, _bigEndian); + _domain.PokeDWord(_address % _domain.Size, val, _bigEndian); // TODO: % size stil lisn't correct since it could be the last byte of the domain } public void ClearChangeCount() { _changecount = 0; } diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs index cb745b07b8..6a7b4d26e5 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs @@ -106,6 +106,7 @@ this.AutoloadDialogMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveWinPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.RestoreDefaultsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ColumnsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -143,6 +144,7 @@ this.RedoToolBarItem = new System.Windows.Forms.ToolStripButton(); this.RebootToolBarSeparator = new System.Windows.Forms.ToolStripSeparator(); this.RebootToolbarButton = new System.Windows.Forms.ToolStripButton(); + this.ErrorIconButton = new System.Windows.Forms.ToolStripButton(); this.ComparisonBox = new System.Windows.Forms.GroupBox(); this.DifferentByBox = new BizHawk.Client.EmuHawk.UnsignedIntegerBox(); this.DifferentByRadio = new System.Windows.Forms.RadioButton(); @@ -157,7 +159,6 @@ this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.DisplayTypeDropdown = new System.Windows.Forms.ComboBox(); - this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem(); SearchMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ListViewContextMenu.SuspendLayout(); this.menuStrip1.SuspendLayout(); @@ -170,7 +171,7 @@ // SearchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.search; SearchMenuItem.Name = "SearchMenuItem"; - SearchMenuItem.Size = new System.Drawing.Size(203, 22); + SearchMenuItem.Size = new System.Drawing.Size(215, 22); SearchMenuItem.Text = "&Search"; SearchMenuItem.Click += new System.EventHandler(this.SearchMenuItem_Click); // @@ -204,6 +205,7 @@ this.WatchListView.ItemCount = 0; this.WatchListView.Location = new System.Drawing.Point(9, 65); this.WatchListView.Name = "WatchListView"; + this.WatchListView.SelectAllInProgress = false; this.WatchListView.selectedItem = -1; this.WatchListView.Size = new System.Drawing.Size(230, 366); this.WatchListView.TabIndex = 1; @@ -259,14 +261,14 @@ this.ContextMenuSeparator3, this.ClearPreviewContextMenuItem}); this.ListViewContextMenu.Name = "contextMenuStrip1"; - this.ListViewContextMenu.Size = new System.Drawing.Size(204, 220); + this.ListViewContextMenu.Size = new System.Drawing.Size(216, 220); this.ListViewContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.ListViewContextMenu_Opening); // // DoSearchContextMenuItem // this.DoSearchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.search; this.DoSearchContextMenuItem.Name = "DoSearchContextMenuItem"; - this.DoSearchContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.DoSearchContextMenuItem.Size = new System.Drawing.Size(215, 22); this.DoSearchContextMenuItem.Text = "&Search"; this.DoSearchContextMenuItem.Click += new System.EventHandler(this.SearchMenuItem_Click); // @@ -274,21 +276,21 @@ // this.NewSearchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.NewSearchContextMenuItem.Name = "NewSearchContextMenuItem"; - this.NewSearchContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.NewSearchContextMenuItem.Size = new System.Drawing.Size(215, 22); this.NewSearchContextMenuItem.Text = "&Start New Search"; this.NewSearchContextMenuItem.Click += new System.EventHandler(this.NewSearchMenuMenuItem_Click); // // ContextMenuSeparator1 // this.ContextMenuSeparator1.Name = "ContextMenuSeparator1"; - this.ContextMenuSeparator1.Size = new System.Drawing.Size(200, 6); + this.ContextMenuSeparator1.Size = new System.Drawing.Size(212, 6); // // RemoveContextMenuItem // this.RemoveContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete; this.RemoveContextMenuItem.Name = "RemoveContextMenuItem"; this.RemoveContextMenuItem.ShortcutKeyDisplayString = "Del"; - this.RemoveContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.RemoveContextMenuItem.Size = new System.Drawing.Size(215, 22); this.RemoveContextMenuItem.Text = "Remove Selected"; this.RemoveContextMenuItem.Click += new System.EventHandler(this.RemoveMenuItem_Click); // @@ -297,7 +299,7 @@ this.AddToRamWatchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.FindHS; this.AddToRamWatchContextMenuItem.Name = "AddToRamWatchContextMenuItem"; this.AddToRamWatchContextMenuItem.ShortcutKeyDisplayString = "Ctrl+R"; - this.AddToRamWatchContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.AddToRamWatchContextMenuItem.Size = new System.Drawing.Size(215, 22); this.AddToRamWatchContextMenuItem.Text = "Add to Ram Watch"; this.AddToRamWatchContextMenuItem.Click += new System.EventHandler(this.AddToRamWatchMenuItem_Click); // @@ -306,7 +308,7 @@ this.PokeContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.PokeContextMenuItem.Name = "PokeContextMenuItem"; this.PokeContextMenuItem.ShortcutKeyDisplayString = "Ctrl+P"; - this.PokeContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.PokeContextMenuItem.Size = new System.Drawing.Size(215, 22); this.PokeContextMenuItem.Text = "Poke Address"; this.PokeContextMenuItem.Click += new System.EventHandler(this.PokeAddressMenuItem_Click); // @@ -315,7 +317,7 @@ this.FreezeContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.FreezeContextMenuItem.Name = "FreezeContextMenuItem"; this.FreezeContextMenuItem.ShortcutKeyDisplayString = "Ctrl+F"; - this.FreezeContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.FreezeContextMenuItem.Size = new System.Drawing.Size(215, 22); this.FreezeContextMenuItem.Text = "Freeze Address"; this.FreezeContextMenuItem.Click += new System.EventHandler(this.FreezeAddressMenuItem_Click); // @@ -323,31 +325,31 @@ // this.UnfreezeAllContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Unfreeze; this.UnfreezeAllContextMenuItem.Name = "UnfreezeAllContextMenuItem"; - this.UnfreezeAllContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.UnfreezeAllContextMenuItem.Size = new System.Drawing.Size(215, 22); this.UnfreezeAllContextMenuItem.Text = "Unfreeze &All"; this.UnfreezeAllContextMenuItem.Click += new System.EventHandler(this.UnfreezeAllContextMenuItem_Click); // // ContextMenuSeparator2 // this.ContextMenuSeparator2.Name = "ContextMenuSeparator2"; - this.ContextMenuSeparator2.Size = new System.Drawing.Size(200, 6); + this.ContextMenuSeparator2.Size = new System.Drawing.Size(212, 6); // // ViewInHexEditorContextMenuItem // this.ViewInHexEditorContextMenuItem.Name = "ViewInHexEditorContextMenuItem"; - this.ViewInHexEditorContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.ViewInHexEditorContextMenuItem.Size = new System.Drawing.Size(215, 22); this.ViewInHexEditorContextMenuItem.Text = "View in Hex Editor"; this.ViewInHexEditorContextMenuItem.Click += new System.EventHandler(this.ViewInHexEditorContextMenuItem_Click); // // ContextMenuSeparator3 // this.ContextMenuSeparator3.Name = "ContextMenuSeparator3"; - this.ContextMenuSeparator3.Size = new System.Drawing.Size(200, 6); + this.ContextMenuSeparator3.Size = new System.Drawing.Size(212, 6); // // ClearPreviewContextMenuItem // this.ClearPreviewContextMenuItem.Name = "ClearPreviewContextMenuItem"; - this.ClearPreviewContextMenuItem.Size = new System.Drawing.Size(203, 22); + this.ClearPreviewContextMenuItem.Size = new System.Drawing.Size(215, 22); this.ClearPreviewContextMenuItem.Text = "&Clear Preview"; this.ClearPreviewContextMenuItem.Click += new System.EventHandler(this.ClearPreviewContextMenuItem_Click); // @@ -378,7 +380,7 @@ this.toolStripSeparator4, this.exitToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.fileToolStripMenuItem.Text = "&File"; this.fileToolStripMenuItem.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); // @@ -387,7 +389,7 @@ this.OpenMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenMenuItem.Name = "OpenMenuItem"; this.OpenMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.OpenMenuItem.Size = new System.Drawing.Size(193, 22); + this.OpenMenuItem.Size = new System.Drawing.Size(195, 22); this.OpenMenuItem.Text = "&Open..."; this.OpenMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click); // @@ -396,7 +398,7 @@ this.SaveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMenuItem.Name = "SaveMenuItem"; this.SaveMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveMenuItem.Size = new System.Drawing.Size(193, 22); + this.SaveMenuItem.Size = new System.Drawing.Size(195, 22); this.SaveMenuItem.Text = "&Save"; this.SaveMenuItem.Click += new System.EventHandler(this.SaveMenuItem_Click); // @@ -405,14 +407,14 @@ this.SaveAsMenuItem.Name = "SaveAsMenuItem"; this.SaveAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveAsMenuItem.Size = new System.Drawing.Size(193, 22); + this.SaveAsMenuItem.Size = new System.Drawing.Size(195, 22); this.SaveAsMenuItem.Text = "Save As..."; this.SaveAsMenuItem.Click += new System.EventHandler(this.SaveAsMenuItem_Click); // // AppendFileMenuItem // this.AppendFileMenuItem.Name = "AppendFileMenuItem"; - this.AppendFileMenuItem.Size = new System.Drawing.Size(193, 22); + this.AppendFileMenuItem.Size = new System.Drawing.Size(195, 22); this.AppendFileMenuItem.Text = "&Append File..."; this.AppendFileMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click); // @@ -420,7 +422,7 @@ // this.TruncateFromFileMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TruncateFromFile; this.TruncateFromFileMenuItem.Name = "TruncateFromFileMenuItem"; - this.TruncateFromFileMenuItem.Size = new System.Drawing.Size(193, 22); + this.TruncateFromFileMenuItem.Size = new System.Drawing.Size(195, 22); this.TruncateFromFileMenuItem.Text = "&Truncate from File..."; this.TruncateFromFileMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click); // @@ -430,7 +432,7 @@ this.toolStripSeparator2}); this.RecentSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentSubMenu.Name = "RecentSubMenu"; - this.RecentSubMenu.Size = new System.Drawing.Size(193, 22); + this.RecentSubMenu.Size = new System.Drawing.Size(195, 22); this.RecentSubMenu.Text = "Recent"; this.RecentSubMenu.DropDownOpened += new System.EventHandler(this.RecentSubMenu_DropDownOpened); // @@ -442,13 +444,13 @@ // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(190, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(192, 6); // // exitToolStripMenuItem // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.exitToolStripMenuItem.Size = new System.Drawing.Size(193, 22); + this.exitToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.exitToolStripMenuItem.Text = "&Close"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.CloseMenuItem_Click); // @@ -464,7 +466,7 @@ this.DisplayTypeSubMenu, this.DefinePreviousValueSubMenu}); this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(58, 20); + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); this.settingsToolStripMenuItem.Text = "&Settings"; this.settingsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.SettingsSubMenu_DropDownOpened); // @@ -474,21 +476,21 @@ this.DetailedMenuItem, this.FastMenuItem}); this.modeToolStripMenuItem.Name = "modeToolStripMenuItem"; - this.modeToolStripMenuItem.Size = new System.Drawing.Size(178, 22); + this.modeToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.modeToolStripMenuItem.Text = "&Mode"; this.modeToolStripMenuItem.DropDownOpened += new System.EventHandler(this.ModeSubMenu_DropDownOpened); // // DetailedMenuItem // this.DetailedMenuItem.Name = "DetailedMenuItem"; - this.DetailedMenuItem.Size = new System.Drawing.Size(113, 22); + this.DetailedMenuItem.Size = new System.Drawing.Size(117, 22); this.DetailedMenuItem.Text = "&Detailed"; this.DetailedMenuItem.Click += new System.EventHandler(this.DetailedMenuItem_Click); // // FastMenuItem // this.FastMenuItem.Name = "FastMenuItem"; - this.FastMenuItem.Size = new System.Drawing.Size(113, 22); + this.FastMenuItem.Size = new System.Drawing.Size(117, 22); this.FastMenuItem.Text = "&Fast"; this.FastMenuItem.Click += new System.EventHandler(this.FastMenuItem_Click); // @@ -497,7 +499,7 @@ this.MemoryDomainsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator6}); this.MemoryDomainsSubMenu.Name = "MemoryDomainsSubMenu"; - this.MemoryDomainsSubMenu.Size = new System.Drawing.Size(178, 22); + this.MemoryDomainsSubMenu.Size = new System.Drawing.Size(188, 22); this.MemoryDomainsSubMenu.Text = "&Memory Domains"; this.MemoryDomainsSubMenu.DropDownOpened += new System.EventHandler(this.MemoryDomainsSubMenu_DropDownOpened); // @@ -513,47 +515,47 @@ this.WordMenuItem, this.DWordMenuItem}); this.sizeToolStripMenuItem.Name = "sizeToolStripMenuItem"; - this.sizeToolStripMenuItem.Size = new System.Drawing.Size(178, 22); + this.sizeToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.sizeToolStripMenuItem.Text = "&Size"; this.sizeToolStripMenuItem.DropDownOpened += new System.EventHandler(this.SizeSubMenu_DropDownOpened); // // ByteMenuItem // this.ByteMenuItem.Name = "ByteMenuItem"; - this.ByteMenuItem.Size = new System.Drawing.Size(105, 22); + this.ByteMenuItem.Size = new System.Drawing.Size(106, 22); this.ByteMenuItem.Text = "&1 Byte"; this.ByteMenuItem.Click += new System.EventHandler(this.ByteMenuItem_Click); // // WordMenuItem // this.WordMenuItem.Name = "WordMenuItem"; - this.WordMenuItem.Size = new System.Drawing.Size(105, 22); + this.WordMenuItem.Size = new System.Drawing.Size(106, 22); this.WordMenuItem.Text = "&2 Byte"; this.WordMenuItem.Click += new System.EventHandler(this.WordMenuItem_Click); // // DWordMenuItem // this.DWordMenuItem.Name = "DWordMenuItem"; - this.DWordMenuItem.Size = new System.Drawing.Size(105, 22); + this.DWordMenuItem.Size = new System.Drawing.Size(106, 22); this.DWordMenuItem.Text = "&4 Byte"; this.DWordMenuItem.Click += new System.EventHandler(this.DWordMenuItem_Click_Click); // // CheckMisalignedMenuItem // this.CheckMisalignedMenuItem.Name = "CheckMisalignedMenuItem"; - this.CheckMisalignedMenuItem.Size = new System.Drawing.Size(178, 22); + this.CheckMisalignedMenuItem.Size = new System.Drawing.Size(188, 22); this.CheckMisalignedMenuItem.Text = "Check Mis-aligned"; this.CheckMisalignedMenuItem.Click += new System.EventHandler(this.CheckMisalignedMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(175, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(185, 6); // // BigEndianMenuItem // this.BigEndianMenuItem.Name = "BigEndianMenuItem"; - this.BigEndianMenuItem.Size = new System.Drawing.Size(178, 22); + this.BigEndianMenuItem.Size = new System.Drawing.Size(188, 22); this.BigEndianMenuItem.Text = "&Big Endian"; this.BigEndianMenuItem.Click += new System.EventHandler(this.BigEndianMenuItem_Click); // @@ -562,7 +564,7 @@ this.DisplayTypeSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator1}); this.DisplayTypeSubMenu.Name = "DisplayTypeSubMenu"; - this.DisplayTypeSubMenu.Size = new System.Drawing.Size(178, 22); + this.DisplayTypeSubMenu.Size = new System.Drawing.Size(188, 22); this.DisplayTypeSubMenu.Text = "&Display Type"; this.DisplayTypeSubMenu.DropDownOpened += new System.EventHandler(this.DisplayTypeSubMenu_DropDownOpened); // @@ -578,28 +580,28 @@ this.PreviousFrameMenuItem, this.Previous_OriginalMenuItem}); this.DefinePreviousValueSubMenu.Name = "DefinePreviousValueSubMenu"; - this.DefinePreviousValueSubMenu.Size = new System.Drawing.Size(178, 22); + this.DefinePreviousValueSubMenu.Size = new System.Drawing.Size(188, 22); this.DefinePreviousValueSubMenu.Text = "Define Previous Value"; this.DefinePreviousValueSubMenu.DropDownOpened += new System.EventHandler(this.DefinePreviousValueSubMenu_DropDownOpened); // // Previous_LastSearchMenuItem // this.Previous_LastSearchMenuItem.Name = "Previous_LastSearchMenuItem"; - this.Previous_LastSearchMenuItem.Size = new System.Drawing.Size(148, 22); + this.Previous_LastSearchMenuItem.Size = new System.Drawing.Size(155, 22); this.Previous_LastSearchMenuItem.Text = "Last &Search"; this.Previous_LastSearchMenuItem.Click += new System.EventHandler(this.Previous_LastSearchMenuItem_Click); // // PreviousFrameMenuItem // this.PreviousFrameMenuItem.Name = "PreviousFrameMenuItem"; - this.PreviousFrameMenuItem.Size = new System.Drawing.Size(148, 22); + this.PreviousFrameMenuItem.Size = new System.Drawing.Size(155, 22); this.PreviousFrameMenuItem.Text = "&Previous Frame"; this.PreviousFrameMenuItem.Click += new System.EventHandler(this.Previous_LastFrameMenuItem_Click); // // Previous_OriginalMenuItem // this.Previous_OriginalMenuItem.Name = "Previous_OriginalMenuItem"; - this.Previous_OriginalMenuItem.Size = new System.Drawing.Size(148, 22); + this.Previous_OriginalMenuItem.Size = new System.Drawing.Size(155, 22); this.Previous_OriginalMenuItem.Text = "&Original"; this.Previous_OriginalMenuItem.Click += new System.EventHandler(this.Previous_OriginalMenuItem_Click); // @@ -622,7 +624,7 @@ this.toolStripSeparator13, this.ClearUndoMenuItem}); this.searchToolStripMenuItem.Name = "searchToolStripMenuItem"; - this.searchToolStripMenuItem.Size = new System.Drawing.Size(52, 20); + this.searchToolStripMenuItem.Size = new System.Drawing.Size(54, 20); this.searchToolStripMenuItem.Text = "&Search"; this.searchToolStripMenuItem.DropDownOpened += new System.EventHandler(this.SearchSubMenu_DropDownOpened); // @@ -630,21 +632,21 @@ // this.newSearchToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.newSearchToolStripMenuItem.Name = "newSearchToolStripMenuItem"; - this.newSearchToolStripMenuItem.Size = new System.Drawing.Size(203, 22); + this.newSearchToolStripMenuItem.Size = new System.Drawing.Size(215, 22); this.newSearchToolStripMenuItem.Text = "&New Search"; this.newSearchToolStripMenuItem.Click += new System.EventHandler(this.NewSearchMenuMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(200, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(212, 6); // // UndoMenuItem // this.UndoMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.undo; this.UndoMenuItem.Name = "UndoMenuItem"; this.UndoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); - this.UndoMenuItem.Size = new System.Drawing.Size(203, 22); + this.UndoMenuItem.Size = new System.Drawing.Size(215, 22); this.UndoMenuItem.Text = "&Undo"; this.UndoMenuItem.Click += new System.EventHandler(this.UndoMenuItem_Click); // @@ -654,7 +656,7 @@ this.RedoMenuItem.Name = "RedoMenuItem"; this.RedoMenuItem.ShortcutKeyDisplayString = ""; this.RedoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); - this.RedoMenuItem.Size = new System.Drawing.Size(203, 22); + this.RedoMenuItem.Size = new System.Drawing.Size(215, 22); this.RedoMenuItem.Text = "&Redo"; this.RedoMenuItem.Click += new System.EventHandler(this.RedoMenuItem_Click); // @@ -662,14 +664,14 @@ // this.CopyValueToPrevMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.CopyValueToPrevMenuItem.Name = "CopyValueToPrevMenuItem"; - this.CopyValueToPrevMenuItem.Size = new System.Drawing.Size(203, 22); + this.CopyValueToPrevMenuItem.Size = new System.Drawing.Size(215, 22); this.CopyValueToPrevMenuItem.Text = "Copy Value to Prev"; this.CopyValueToPrevMenuItem.Click += new System.EventHandler(this.CopyValueToPrevMenuItem_Click); // // ClearChangeCountsMenuItem // this.ClearChangeCountsMenuItem.Name = "ClearChangeCountsMenuItem"; - this.ClearChangeCountsMenuItem.Size = new System.Drawing.Size(203, 22); + this.ClearChangeCountsMenuItem.Size = new System.Drawing.Size(215, 22); this.ClearChangeCountsMenuItem.Text = "&Clear Change Counts"; this.ClearChangeCountsMenuItem.Click += new System.EventHandler(this.ClearChangeCountsMenuItem_Click); // @@ -678,20 +680,20 @@ this.RemoveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete; this.RemoveMenuItem.Name = "RemoveMenuItem"; this.RemoveMenuItem.ShortcutKeyDisplayString = "Delete"; - this.RemoveMenuItem.Size = new System.Drawing.Size(203, 22); + this.RemoveMenuItem.Size = new System.Drawing.Size(215, 22); this.RemoveMenuItem.Text = "&Remove selected"; this.RemoveMenuItem.Click += new System.EventHandler(this.RemoveMenuItem_Click); // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(200, 6); + this.toolStripSeparator5.Size = new System.Drawing.Size(212, 6); // // GoToAddressMenuItem // this.GoToAddressMenuItem.Name = "GoToAddressMenuItem"; this.GoToAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); - this.GoToAddressMenuItem.Size = new System.Drawing.Size(203, 22); + this.GoToAddressMenuItem.Size = new System.Drawing.Size(215, 22); this.GoToAddressMenuItem.Text = "&Go to Address..."; this.GoToAddressMenuItem.Click += new System.EventHandler(this.GoToAddressMenuItem_Click); // @@ -700,7 +702,7 @@ this.AddToRamWatchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.FindHS; this.AddToRamWatchMenuItem.Name = "AddToRamWatchMenuItem"; this.AddToRamWatchMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R))); - this.AddToRamWatchMenuItem.Size = new System.Drawing.Size(203, 22); + this.AddToRamWatchMenuItem.Size = new System.Drawing.Size(215, 22); this.AddToRamWatchMenuItem.Text = "&Add to Ram Watch"; this.AddToRamWatchMenuItem.Click += new System.EventHandler(this.AddToRamWatchMenuItem_Click); // @@ -709,7 +711,7 @@ this.PokeAddressMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.PokeAddressMenuItem.Name = "PokeAddressMenuItem"; this.PokeAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P))); - this.PokeAddressMenuItem.Size = new System.Drawing.Size(203, 22); + this.PokeAddressMenuItem.Size = new System.Drawing.Size(215, 22); this.PokeAddressMenuItem.Text = "&Poke Address"; this.PokeAddressMenuItem.Click += new System.EventHandler(this.PokeAddressMenuItem_Click); // @@ -718,19 +720,19 @@ this.FreezeAddressMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.FreezeAddressMenuItem.Name = "FreezeAddressMenuItem"; this.FreezeAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F))); - this.FreezeAddressMenuItem.Size = new System.Drawing.Size(203, 22); + this.FreezeAddressMenuItem.Size = new System.Drawing.Size(215, 22); this.FreezeAddressMenuItem.Text = "Freeze Address"; this.FreezeAddressMenuItem.Click += new System.EventHandler(this.FreezeAddressMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(200, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(212, 6); // // ClearUndoMenuItem // this.ClearUndoMenuItem.Name = "ClearUndoMenuItem"; - this.ClearUndoMenuItem.Size = new System.Drawing.Size(203, 22); + this.ClearUndoMenuItem.Size = new System.Drawing.Size(215, 22); this.ClearUndoMenuItem.Text = "Clear Undo History"; this.ClearUndoMenuItem.Click += new System.EventHandler(this.ClearUndoMenuItem_Click); // @@ -750,78 +752,85 @@ this.toolStripSeparator3, this.RestoreDefaultsMenuItem}); this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); this.optionsToolStripMenuItem.Text = "&Options"; this.optionsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened); // // PreviewModeMenuItem // this.PreviewModeMenuItem.Name = "PreviewModeMenuItem"; - this.PreviewModeMenuItem.Size = new System.Drawing.Size(227, 22); + this.PreviewModeMenuItem.Size = new System.Drawing.Size(240, 22); this.PreviewModeMenuItem.Text = "&Preview Mode"; this.PreviewModeMenuItem.Click += new System.EventHandler(this.PreviewModeMenuItem_Click); // // AutoSearchMenuItem // this.AutoSearchMenuItem.Name = "AutoSearchMenuItem"; - this.AutoSearchMenuItem.Size = new System.Drawing.Size(227, 22); + this.AutoSearchMenuItem.Size = new System.Drawing.Size(240, 22); this.AutoSearchMenuItem.Text = "&Auto-Search"; this.AutoSearchMenuItem.Click += new System.EventHandler(this.AutoSearchMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(224, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(237, 6); // // ExcludeRamWatchMenuItem // this.ExcludeRamWatchMenuItem.Name = "ExcludeRamWatchMenuItem"; - this.ExcludeRamWatchMenuItem.Size = new System.Drawing.Size(227, 22); + this.ExcludeRamWatchMenuItem.Size = new System.Drawing.Size(240, 22); this.ExcludeRamWatchMenuItem.Text = "Always E&xclude Ram Search List"; this.ExcludeRamWatchMenuItem.Click += new System.EventHandler(this.ExcludeRamWatchMenuItem_Click); // // UseUndoHistoryMenuItem // this.UseUndoHistoryMenuItem.Name = "UseUndoHistoryMenuItem"; - this.UseUndoHistoryMenuItem.Size = new System.Drawing.Size(227, 22); + this.UseUndoHistoryMenuItem.Size = new System.Drawing.Size(240, 22); this.UseUndoHistoryMenuItem.Text = "&Use Undo History"; this.UseUndoHistoryMenuItem.Click += new System.EventHandler(this.UseUndoHistoryMenuItem_Click); // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(224, 6); + this.toolStripSeparator11.Size = new System.Drawing.Size(237, 6); // // AutoloadDialogMenuItem // this.AutoloadDialogMenuItem.Name = "AutoloadDialogMenuItem"; - this.AutoloadDialogMenuItem.Size = new System.Drawing.Size(227, 22); + this.AutoloadDialogMenuItem.Size = new System.Drawing.Size(240, 22); this.AutoloadDialogMenuItem.Text = "Auto&load"; this.AutoloadDialogMenuItem.Click += new System.EventHandler(this.AutoloadDialogMenuItem_Click); // // SaveWinPositionMenuItem // this.SaveWinPositionMenuItem.Name = "SaveWinPositionMenuItem"; - this.SaveWinPositionMenuItem.Size = new System.Drawing.Size(227, 22); + this.SaveWinPositionMenuItem.Size = new System.Drawing.Size(240, 22); this.SaveWinPositionMenuItem.Text = "&Save Window Position"; this.SaveWinPositionMenuItem.Click += new System.EventHandler(this.SaveWinPositionMenuItem_Click); // // AlwaysOnTopMenuItem // this.AlwaysOnTopMenuItem.Name = "AlwaysOnTopMenuItem"; - this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(227, 22); + this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(240, 22); this.AlwaysOnTopMenuItem.Text = "Always On &Top"; this.AlwaysOnTopMenuItem.Click += new System.EventHandler(this.AlwaysOnTopMenuItem_Click); // + // FloatingWindowMenuItem + // + this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem"; + this.FloatingWindowMenuItem.Size = new System.Drawing.Size(240, 22); + this.FloatingWindowMenuItem.Text = "&Floating Window"; + this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click); + // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(224, 6); + this.toolStripSeparator3.Size = new System.Drawing.Size(237, 6); // // RestoreDefaultsMenuItem // this.RestoreDefaultsMenuItem.Name = "RestoreDefaultsMenuItem"; - this.RestoreDefaultsMenuItem.Size = new System.Drawing.Size(227, 22); + this.RestoreDefaultsMenuItem.Size = new System.Drawing.Size(240, 22); this.RestoreDefaultsMenuItem.Text = "&Restore Default Settings"; this.RestoreDefaultsMenuItem.Click += new System.EventHandler(this.RestoreDefaultsMenuItem_Click); // @@ -832,28 +841,28 @@ this.ShowChangesMenuItem, this.ShowDiffMenuItem}); this.ColumnsMenuItem.Name = "ColumnsMenuItem"; - this.ColumnsMenuItem.Size = new System.Drawing.Size(59, 20); + this.ColumnsMenuItem.Size = new System.Drawing.Size(67, 20); this.ColumnsMenuItem.Text = "&Columns"; this.ColumnsMenuItem.DropDownOpened += new System.EventHandler(this.ColumnsMenuItem_DropDownOpened); // // ShowPreviousMenuItem // this.ShowPreviousMenuItem.Name = "ShowPreviousMenuItem"; - this.ShowPreviousMenuItem.Size = new System.Drawing.Size(148, 22); + this.ShowPreviousMenuItem.Size = new System.Drawing.Size(156, 22); this.ShowPreviousMenuItem.Text = "&Previous Value"; this.ShowPreviousMenuItem.Click += new System.EventHandler(this.ShowPreviousMenuItem_Click); // // ShowChangesMenuItem // this.ShowChangesMenuItem.Name = "ShowChangesMenuItem"; - this.ShowChangesMenuItem.Size = new System.Drawing.Size(148, 22); + this.ShowChangesMenuItem.Size = new System.Drawing.Size(156, 22); this.ShowChangesMenuItem.Text = "&Change Counts"; this.ShowChangesMenuItem.Click += new System.EventHandler(this.ShowChangesMenuItem_Click); // // ShowDiffMenuItem // this.ShowDiffMenuItem.Name = "ShowDiffMenuItem"; - this.ShowDiffMenuItem.Size = new System.Drawing.Size(148, 22); + this.ShowDiffMenuItem.Size = new System.Drawing.Size(156, 22); this.ShowDiffMenuItem.Text = "&Difference"; this.ShowDiffMenuItem.Click += new System.EventHandler(this.ShowDiffMenuItem_Click); // @@ -1045,7 +1054,8 @@ this.UndoToolBarButton, this.RedoToolBarItem, this.RebootToolBarSeparator, - this.RebootToolbarButton}); + this.RebootToolbarButton, + this.ErrorIconButton}); this.toolStrip1.Location = new System.Drawing.Point(0, 24); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(445, 25); @@ -1058,7 +1068,7 @@ this.DoSearchToolButton.Image = ((System.Drawing.Image)(resources.GetObject("DoSearchToolButton.Image"))); this.DoSearchToolButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.DoSearchToolButton.Name = "DoSearchToolButton"; - this.DoSearchToolButton.Size = new System.Drawing.Size(63, 22); + this.DoSearchToolButton.Size = new System.Drawing.Size(65, 22); this.DoSearchToolButton.Text = "Search "; this.DoSearchToolButton.Click += new System.EventHandler(this.SearchMenuItem_Click); // @@ -1072,7 +1082,7 @@ this.NewSearchToolButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.NewSearchToolButton.ImageTransparentColor = System.Drawing.Color.Magenta; this.NewSearchToolButton.Name = "NewSearchToolButton"; - this.NewSearchToolButton.Size = new System.Drawing.Size(48, 22); + this.NewSearchToolButton.Size = new System.Drawing.Size(51, 22); this.NewSearchToolButton.Text = "New"; this.NewSearchToolButton.Click += new System.EventHandler(this.NewSearchMenuMenuItem_Click); // @@ -1195,6 +1205,17 @@ this.RebootToolbarButton.Text = "A new search needs to be started in order for these changes to take effect"; this.RebootToolbarButton.Click += new System.EventHandler(this.NewSearchMenuMenuItem_Click); // + // ErrorIconButton + // + this.ErrorIconButton.BackColor = System.Drawing.Color.NavajoWhite; + this.ErrorIconButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.ErrorIconButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ExclamationRed; + this.ErrorIconButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.ErrorIconButton.Name = "ErrorIconButton"; + this.ErrorIconButton.Size = new System.Drawing.Size(23, 22); + this.ErrorIconButton.Text = "Warning! Out of Range Addresses in list, click to remove them"; + this.ErrorIconButton.Click += new System.EventHandler(this.ErrorIconButton_Click); + // // ComparisonBox // this.ComparisonBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1368,13 +1389,6 @@ this.DisplayTypeDropdown.TabIndex = 95; this.DisplayTypeDropdown.SelectedIndexChanged += new System.EventHandler(this.DisplayTypeDropdown_SelectedIndexChanged); // - // FloatingWindowMenuItem - // - this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem"; - this.FloatingWindowMenuItem.Size = new System.Drawing.Size(227, 22); - this.FloatingWindowMenuItem.Text = "&Floating Window"; - this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click); - // // RamSearch // this.AllowDrop = true; @@ -1548,5 +1562,6 @@ private System.Windows.Forms.ComboBox DisplayTypeDropdown; private System.Windows.Forms.ToolStripMenuItem GoToAddressMenuItem; private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem; + private System.Windows.Forms.ToolStripButton ErrorIconButton; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 977037b29b..dc707bc067 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -106,6 +106,7 @@ namespace BizHawk.Client.EmuHawk private void RamSearch_Load(object sender, EventArgs e) { + ErrorIconButton.Visible = false; _dropdownDontfire = true; LoadConfigSettings(); SpecificValueBox.ByteSize = _settings.Size; @@ -136,6 +137,18 @@ namespace BizHawk.Client.EmuHawk NewSearch(); } + private void OutOfRangeCheck() + { + if (_searches.OutOfRangeAddress.Any()) + { + ErrorIconButton.Visible = true; + } + else + { + ErrorIconButton.Visible = false; + } + } + private void ListView_QueryItemBkColor(int index, int column, ref Color color) { if (_searches.Count > 0 && column == 0) @@ -145,7 +158,11 @@ namespace BizHawk.Client.EmuHawk var isCheat = Global.CheatList.IsActive(_settings.Domain, _searches[index].Address ?? 0); var isWeeded = Global.Config.RamSearchPreviewMode && !_forcePreviewClear && _searches.Preview(_searches[index].Address ?? 0); - if (isCheat) + if (_searches[index].Address.Value >= _searches[index].Domain.Size) + { + nextColor = Color.PeachPuff; + } + else if (isCheat) { nextColor = isWeeded ? Color.Lavender : Color.LightCyan; } @@ -362,6 +379,7 @@ namespace BizHawk.Client.EmuHawk CopyValueToPrevToolBarItem.Enabled = _searches.Count > 0; UpdateUndoToolBarButtons(); + OutOfRangeCheck(); } private int? CompareToValue @@ -1456,6 +1474,19 @@ namespace BizHawk.Client.EmuHawk } } + private void ErrorIconButton_Click(object sender, EventArgs e) + { + var _outOfRangeAddresses = _searches.OutOfRangeAddress.ToList(); + + SetRemovedMessage(_outOfRangeAddresses.Count); + + _searches.RemoveRange(_outOfRangeAddresses); + + WatchListView.ItemCount = _searches.Count; + SetTotal(); + ToggleSearchDependentToolBarItems(); + } + #endregion #region Compare To Box diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index c16414d210..8209cf0192 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -188,6 +188,7 @@ namespace BizHawk.Client.EmuHawk if (!string.IsNullOrWhiteSpace(_watches.CurrentFileName)) { _watches.Reload(); + UpdateMessageLabel(); } else { @@ -516,6 +517,11 @@ namespace BizHawk.Client.EmuHawk } } + if (_watches.Any(watch => (watch.Address ?? 0) >= watch.Domain.Size)) + { + message += " WARNING! Out of range addresses"; + } + MessageLabel.Text = message; } @@ -537,6 +543,10 @@ namespace BizHawk.Client.EmuHawk { color = BackColor; } + else if (_watches[index].Address.Value >= _watches[index].Domain.Size) + { + color = Color.PeachPuff; + } else if (Global.CheatList.IsActive(_watches.Domain, _watches[index].Address ?? 0)) { color = Color.LightCyan;