minor touchups to jag risc disassembler

This commit is contained in:
CasualPokePlayer 2022-09-24 04:29:00 -07:00
parent c9618b3f92
commit 38b4b98fc0
2 changed files with 14 additions and 5 deletions

View File

@ -75,7 +75,7 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
};
}
return (opcode >> 10) switch
var disasm = (opcode >> 10) switch
{
0x00 => $"add {argRR()}",
0x01 => $"addc {argRR()}",
@ -115,7 +115,7 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
0x23 => $"moveq {argIR()}",
0x24 => $"moveta {argRR()}",
0x25 => $"movefa {argRR()}",
0x26 => $"movei ${m.PeekUshort(addr + 2, true) | (m.PeekUshort(addr + 4, true) << 16):X04} {argR2()}",
0x26 => $"movei ${m.PeekUshort(addr + 2, true) | (m.PeekUshort(addr + 4, true) << 16):X06}, {argR2()}",
0x27 => $"loadb {argDRR()}",
0x28 => $"loadw {argDRR()}",
0x29 => $"load {argDRR()}",
@ -130,7 +130,7 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
0x32 => $"store {argRDRO(15)}",
0x33 => $"move pc, {argR2()}",
0x34 => $"jump {argCC()}(r{arg1:d02})",
0x35 => $"jr {argCC()}${addr + 2 + ((sbyte)(arg1 << 3) >> 2):X02}",
0x35 => $"jr {argCC()}${addr + 2 + ((sbyte)(arg1 << 3) >> 2):X06}",
0x36 => $"mmult {argRR()}",
0x37 => $"mtoi {argRR()}",
0x38 => $"normi {argRR()}",
@ -143,6 +143,15 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
0x3F => gpu ? $"{(arg1 == 0 ? "pack" : "unpack")} {argR2()}" : $"addqmod {argCZIR()}",
_ => throw new InvalidOperationException(),
};
if (length == 6)
{
return $"{opcode:X04} {m.PeekUshort(addr + 2, true):X04} {m.PeekUshort(addr + 2, true):X04} {disasm}";
}
else
{
return $"{opcode:X04} {disasm}";
}
}
public override string PCRegisterName => Cpu switch

View File

@ -35,7 +35,7 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
(sr & 1) > 0 ? "C" : "c");
regInfo += " (M68K)";
Tracer.Put(new(disassembly: $"{pc:X6}: {disasm}".PadRight(50), registerInfo: regInfo));
Tracer.Put(new(disassembly: $"{pc:X6}: {disasm}".PadRight(30), registerInfo: regInfo));
}
private unsafe void MakeGPUTrace(uint pc, IntPtr r)
@ -50,7 +50,7 @@ namespace BizHawk.Emulation.Cores.Atari.Jaguar
}
regInfo += "(GPU)";
Tracer.Put(new(disassembly: $"{pc:X6}: {disasm}".PadRight(50), registerInfo: regInfo));
Tracer.Put(new(disassembly: $"{pc:X6}: {disasm}".PadRight(30), registerInfo: regInfo));
}
private unsafe void MakeDSPTrace(uint pc, IntPtr r)