diff options
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/Debugger/PPCDebugInterface.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.cpp b/Source/Core/Core/Debugger/PPCDebugInterface.cpp index c935fabed9..84e2cb6879 100644 --- a/Source/Core/Core/Debugger/PPCDebugInterface.cpp +++ b/Source/Core/Core/Debugger/PPCDebugInterface.cpp @@ -25,25 +25,27 @@ std::string PPCDebugInterface::Disassemble(unsigned int address) if (Core::GetState() != Core::CORE_UNINITIALIZED) { - if (Memory::IsRAMAddress(address, true, true)) + if (!Memory::IsRAMAddress(address, true, true)) { - u32 op = Memory::Read_Instruction(address); - std::string disasm = GekkoDisassembler::Disassemble(op, address); - - UGeckoInstruction inst; - inst.hex = Memory::ReadUnchecked_U32(address); - - if (inst.OPCD == 1) + if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU || !((address & JIT_ICACHE_VMEM_BIT) && + Memory::TranslateAddress(address, Memory::FLAG_OPCODE))) { - disasm += " (hle)"; + return "(No RAM here)"; } - - return disasm; } - else + + u32 op = Memory::Read_Instruction(address); + std::string disasm = GekkoDisassembler::Disassemble(op, address); + + UGeckoInstruction inst; + inst.hex = Memory::ReadUnchecked_U32(address); + + if (inst.OPCD == 1) { - return "(No RAM here)"; + disasm += " (hle)"; } + + return disasm; } else { |
