lua: emu.disassemble(uint pc, string name = "")
This commit is contained in:
parent
a1f3b3d735
commit
78f20510e5
|
@ -25,6 +25,12 @@ namespace BizHawk.Client.Common
|
||||||
[OptionalService]
|
[OptionalService]
|
||||||
public IDebuggable DebuggableCore { get; set; }
|
public IDebuggable DebuggableCore { get; set; }
|
||||||
|
|
||||||
|
[OptionalService]
|
||||||
|
public IDisassemblable DisassemblableCore { get; set; }
|
||||||
|
|
||||||
|
[OptionalService]
|
||||||
|
private IMemoryDomains MemoryDomains { get; set; }
|
||||||
|
|
||||||
[OptionalService]
|
[OptionalService]
|
||||||
public IInputPollable InputPollableCore { get; set; }
|
public IInputPollable InputPollableCore { get; set; }
|
||||||
|
|
||||||
|
@ -66,6 +72,37 @@ namespace BizHawk.Client.Common
|
||||||
return Emulator.Frame;
|
return Emulator.Frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[LuaMethodAttributes(
|
||||||
|
"disassemble",
|
||||||
|
"Returns the disassembly object (disasm string and length int) for the given PC address. Uses System Bus domain if no domain name provided"
|
||||||
|
)]
|
||||||
|
public object Disassemble(uint pc, string name = "")
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (DisassemblableCore == null)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
int l;
|
||||||
|
MemoryDomain domain = MemoryDomains.SystemBus;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(name))
|
||||||
|
domain = MemoryDomains[name];
|
||||||
|
|
||||||
|
var d = DisassemblableCore.Disassemble(domain, pc, out l);
|
||||||
|
return new { disasm = d, length = l };
|
||||||
|
}
|
||||||
|
catch (NotImplementedException)
|
||||||
|
{
|
||||||
|
Log(string.Format(
|
||||||
|
"Error: {0} does not yet implement disassemble()",
|
||||||
|
Emulator.Attributes().CoreName));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: what about 64 bit registers?
|
// TODO: what about 64 bit registers?
|
||||||
[LuaMethodAttributes(
|
[LuaMethodAttributes(
|
||||||
"getregister",
|
"getregister",
|
||||||
|
|
Loading…
Reference in New Issue