From 08d4319ad3c5aab0b9005ef803e40aa6e982b1b3 Mon Sep 17 00:00:00 2001 From: goyuken Date: Wed, 19 Nov 2014 03:16:36 +0000 Subject: [PATCH] gba: tracelog --- .../BizHawk.Emulation.Cores.csproj | 1 + BizHawk.Emulation.Cores/CPUs/ARM/Darm.cs | 107 ++++++++++++++++++ .../Consoles/Nintendo/GBA/VBANext.cs | 11 +- output/dll/libdarm.dll | Bin 0 -> 88064 bytes 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 BizHawk.Emulation.Cores/CPUs/ARM/Darm.cs create mode 100644 output/dll/libdarm.dll diff --git a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj index 679f9b6aad..0c151c60a1 100644 --- a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj +++ b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj @@ -462,6 +462,7 @@ + diff --git a/BizHawk.Emulation.Cores/CPUs/ARM/Darm.cs b/BizHawk.Emulation.Cores/CPUs/ARM/Darm.cs new file mode 100644 index 0000000000..e3ffe05058 --- /dev/null +++ b/BizHawk.Emulation.Cores/CPUs/ARM/Darm.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; + +namespace BizHawk.Emulation.Cores.Components.ARM +{ + public class Darm + { + public const string dllname = "libdarm.dll"; + public const CallingConvention cc = CallingConvention.Cdecl; + + [StructLayout(LayoutKind.Sequential)] + public class Darm_T + { + public uint w; + public uint instr; + public uint instr_type; + public uint instr_imm_type; + public uint instr_flag_type; + public uint cond; + public uint B; + public uint S; + public uint E; + public uint M; + public uint N; + public uint option; + public uint U; + public uint H; + public uint P; + public uint R; + public uint T; + public uint W; + public uint I; + public uint rotate; + public uint Rd; + public uint Rn; + public uint Rm; + public uint Ra; + public uint Rt; + public uint Rt2; + public uint RdHi; + public uint RdLo; + public uint imm; + public uint sat_imm; + public uint shift_type; + public uint Rs; + public uint shift; + public uint lsb; + public uint msb; + public uint width; + public ushort reglist; + public byte coproc; + public byte opc1; + public byte opc2; + public uint CRd; + public uint CRn; + public uint Crm; + public uint D; + public uint firstcond; + public byte mask; + // just in case we got something wrong, padding + public uint Pad1; + public uint Pad2; + public uint Pad3; + public uint Pad4; + public uint Pad5; + public uint Pad6; + public uint Pad7; + public uint Pad8; + public uint Pad9; + } + + [StructLayout(LayoutKind.Sequential)] + public class Darm_Str_T + { + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] + public byte[] mnemonic = new byte[12]; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6 * 32)] + public byte[,] arg = new byte[6, 32]; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] + public byte[] shift = new byte[12]; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] + public byte[] total = new byte[64]; + } + + [DllImport(dllname, CallingConvention = cc, EntryPoint = "darm_disasm")] + public static extern bool Disassemble([Out] Darm_T d, ushort w, ushort w2, uint addr); + + [DllImport(dllname, CallingConvention = cc, EntryPoint = "darm_str2")] + public static extern bool Str([In] [Out]Darm_T d, [Out]Darm_Str_T s, bool lowercase); + + public static string DisassembleStuff(uint addr, uint opcode) + { + var d = new Darm_T(); + var s = new Darm_Str_T(); + if (!Disassemble(d, (ushort)opcode, (ushort)(opcode >> 16), addr)) + return null; + if (Str(d, s, false)) + return null; + return Encoding.ASCII.GetString(s.total); + } + } + +} + diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs index d71f5a1f68..9a4b359b83 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs @@ -79,7 +79,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA InitCallbacks(); CoreComm.CpuTraceAvailable = true; - CoreComm.TraceHeader = "--ADDR-- ---OP---"; // todo: hook me up as a setting SetupColors(); @@ -271,13 +270,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA LibVBANext.AddressCallback writecb; LibVBANext.TraceCallback tracecb; + string Trace(uint addr, uint opcode) + { + return + string.Format("{0:x8} {1}", + opcode, + Emulation.Cores.Components.ARM.Darm.DisassembleStuff(addr, opcode)); + } + void InitCallbacks() { padcb = new LibVBANext.StandardCallback(() => CoreComm.InputCallback.Call()); fetchcb = new LibVBANext.AddressCallback((addr) => CoreComm.MemoryCallbackSystem.CallExecute(addr)); readcb = new LibVBANext.AddressCallback((addr) => CoreComm.MemoryCallbackSystem.CallRead(addr)); writecb = new LibVBANext.AddressCallback((addr) => CoreComm.MemoryCallbackSystem.CallWrite(addr)); - tracecb = new LibVBANext.TraceCallback((addr, opcode) => CoreComm.Tracer.Put(string.Format("{0:x8} {1:x8}", addr, opcode))); + tracecb = new LibVBANext.TraceCallback((addr, opcode) => CoreComm.Tracer.Put(Trace(addr, opcode))); } void SyncCallbacks() diff --git a/output/dll/libdarm.dll b/output/dll/libdarm.dll new file mode 100644 index 0000000000000000000000000000000000000000..9313414b4189817cdaeef2849e46000a5d111675 GIT binary patch literal 88064 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 yj`BZp&rG?ke20N^#Ifgp