Merge pull request #1167 from FioraAeterna/fixdebugwindow

Debug: fix display of instructions in virtual memory in MMU games
This commit is contained in:
skidau 2014-09-30 13:28:41 +10:00
commit 63cee3328f
1 changed files with 15 additions and 13 deletions

View File

@ -25,25 +25,27 @@ std::string PPCDebugInterface::Disassemble(unsigned int address)
if (Core::GetState() != Core::CORE_UNINITIALIZED) if (Core::GetState() != Core::CORE_UNINITIALIZED)
{ {
if (Memory::IsRAMAddress(address, true, true)) if (!Memory::IsRAMAddress(address, true, true))
{ {
u32 op = Memory::Read_Instruction(address); if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU || !((address & JIT_ICACHE_VMEM_BIT) &&
std::string disasm = GekkoDisassembler::Disassemble(op, address); Memory::TranslateAddress(address, Memory::FLAG_OPCODE)))
UGeckoInstruction inst;
inst.hex = Memory::ReadUnchecked_U32(address);
if (inst.OPCD == 1)
{ {
disasm += " (hle)"; return "(No RAM here)";
} }
}
return disasm; u32 op = Memory::Read_Instruction(address);
} std::string disasm = GekkoDisassembler::Disassemble(op, address);
else
UGeckoInstruction inst;
inst.hex = Memory::ReadUnchecked_U32(address);
if (inst.OPCD == 1)
{ {
return "(No RAM here)"; disasm += " (hle)";
} }
return disasm;
} }
else else
{ {