diff --git a/src/BizHawk.Client.EmuHawk/tools/Debugger/BreakpointControl.cs b/src/BizHawk.Client.EmuHawk/tools/Debugger/BreakpointControl.cs index c10f28fb85..0e84615fa7 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Debugger/BreakpointControl.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Debugger/BreakpointControl.cs @@ -56,7 +56,7 @@ namespace BizHawk.Client.EmuHawk private void BreakpointCallback(uint addr, uint value, uint flags) { MainForm.PauseEmulator(); - UpdateValues(); + ParentDebugger.UpdateForBreakpointHit(); MainForm.AddOnScreenMessage("Breakpoint hit"); } diff --git a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs index 649d544367..b6cef4c476 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs @@ -66,6 +66,7 @@ namespace BizHawk.Client.EmuHawk _disassemblyLines.Add(new DisasmOp(currentAddress, advance, line)); currentAddress += (uint)advance; } + DisassemblerView.Refresh(); } private void DisassemblerView_QueryItemText(int index, RollColumn column, out string text, ref int offsetX, ref int offsetY) @@ -149,14 +150,12 @@ namespace BizHawk.Client.EmuHawk { IncrementCurrentAddress(); Disassemble(); - DisassemblerView.Refresh(); } private void SmallDecrement() { DecrementCurrentAddress(); Disassemble(); - DisassemblerView.Refresh(); } private void DisassemblerView_KeyDown(object sender, KeyEventArgs e) diff --git a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs index 6b4624f6a3..c5e05550e7 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs @@ -31,6 +31,8 @@ namespace BizHawk.Client.EmuHawk private bool CanStepOut = false; + private bool _breakpointHit; + private void UpdateCapabilitiesProps() { try @@ -96,6 +98,12 @@ namespace BizHawk.Client.EmuHawk } } + public void UpdateForBreakpointHit() + { + _breakpointHit = true; + FullUpdate(); + } + private void FullUpdate() { RegisterPanel.UpdateValues(); @@ -115,7 +123,14 @@ namespace BizHawk.Client.EmuHawk protected override void UpdateAfter() { - if (MainForm.EmulatorPaused) FullUpdate(); + if (_breakpointHit) + { + _breakpointHit = false; + } + else + { + FullUpdate(); + } } } }