From bfece077b288baef002a2678e404132f4d4578ba Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 27 Feb 2016 21:30:14 +0300 Subject: [PATCH] debugger: really honestly only check registers once, in GenerateUI(). throws NotImplemented if can't set registers, InvalidOperation otherwise (since it deliberately tries an invalid operation just to check availability). --- .../tools/Debugger/RegisterBoxControl.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/RegisterBoxControl.cs b/BizHawk.Client.EmuHawk/tools/Debugger/RegisterBoxControl.cs index bcb181bd0a..48b420e6e7 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/RegisterBoxControl.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/RegisterBoxControl.cs @@ -19,6 +19,8 @@ namespace BizHawk.Client.EmuHawk public GenericDebugger ParentDebugger { get; set; } private bool _supressChangeEvents = false; + private bool _canGetCpuRegisters = false; + private bool _canSetCpuRegisters = false; public RegisterBoxControl() { @@ -36,12 +38,8 @@ namespace BizHawk.Client.EmuHawk if (this.Enabled) { var registers = Core.GetCpuFlagsAndRegisters(); - - _supressChangeEvents = true; - var canSetCpuRegisters = CanSetCpuRegisters; - foreach (var register in registers) { if (Controls.OfType().Any(p => p.Name == "FlagPanel")) @@ -61,7 +59,7 @@ namespace BizHawk.Client.EmuHawk }); } - if (canSetCpuRegisters) + if (_canSetCpuRegisters) { Controls @@ -133,10 +131,11 @@ namespace BizHawk.Client.EmuHawk public void GenerateUI() { this.Controls.Clear(); - var canget = CanGetCpuRegisters; - var canset = CanSetCpuRegisters; - if (!canget && !canset) + _canGetCpuRegisters = CanGetCpuRegisters; + _canSetCpuRegisters = CanSetCpuRegisters; + + if (!_canGetCpuRegisters && !_canSetCpuRegisters) { ParentDebugger.DisableRegisterBox(); this.Enabled = false; @@ -162,7 +161,7 @@ namespace BizHawk.Client.EmuHawk Size = new Size(UIHelper.ScaleX(width + 5), UIHelper.ScaleY(15)) }); - if (canset) + if (_canSetCpuRegisters) { var t = new TextBox { @@ -209,7 +208,7 @@ namespace BizHawk.Client.EmuHawk }); } - y += UIHelper.ScaleY(this.Font.Height + (canset ? 10 : 4)); + y += UIHelper.ScaleY(this.Font.Height + (_canSetCpuRegisters ? 10 : 4)); } var flags = registers.Where(r => r.Value.BitSize == 1); @@ -236,7 +235,7 @@ namespace BizHawk.Client.EmuHawk Location = new Point(UIHelper.ScaleX(40), y), Dock = DockStyle.Left, Size = new Size(UIHelper.ScaleX(23), UIHelper.ScaleY(23)), - Enabled = canset + Enabled = _canSetCpuRegisters }; c.CheckedChanged += (o, e) =>