diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs index 671469744f..422010836c 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs @@ -14,24 +14,9 @@ namespace BizHawk.Client.EmuHawk private IDisassemblable Disassembler { get { return (IDisassemblable)EmulatorServices[typeof(IDisassemblable)]; } } private MemoryDomainList MemoryDomains { get { return (EmulatorServices[typeof(IMemoryDomains)] as IMemoryDomains).MemoryDomains; } } - private int? PC + private int PC { - get - { - var flags = Core.GetCpuFlagsAndRegisters(); - - if (flags.ContainsKey("PC")) - { - return flags["PC"]; - } - - else if (flags.ContainsKey("R15")) - { - return flags["R15"]; - } - - return null; - } + get { return Core.GetCpuFlagsAndRegisters()[Disassembler.PCRegisterName]; } } public void UpdateValues() diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs index 7ff873e503..49808fcfd2 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs @@ -199,12 +199,12 @@ namespace BizHawk.Client.EmuHawk // Always show a window's worth of instructions (if possible) if (CanDisassemble) { - addr = PC.Value; + addr = PC; DisassemblerView.BlazingFast = true; Disasm(DISASM_LINE_COUNT); DisassemblerView.ensureVisible(0xFFFF); - DisassemblerView.ensureVisible(PC.Value); + DisassemblerView.ensureVisible(PC); DisassemblerView.Refresh(); DisassemblerView.BlazingFast = false; @@ -229,7 +229,21 @@ namespace BizHawk.Client.EmuHawk { get { - return Disassembler != null && PC.HasValue; + if (Disassembler == null) + { + return false; + } + + try + { + var pc = PC; + return true; + } + catch (NotImplementedException) + { + return false; + } + } }