private void MakeTrace(ushort pc) { int[] s = new int[10]; LibSameboy.sameboy_getregs(SameboyState, s); Tracer.Put(new( disassembly: LR35902.Disassemble( pc, addr => LibSameboy.sameboy_cpuread(SameboyState, addr), _settings.UseRGBDSSyntax, out _).PadRight(36), registerInfo: string.Format( "A:{0:x2} F:{1:x2} B:{2:x2} C:{3:x2} D:{4:x2} E:{5:x2} H:{6:x2} L:{7:x2} SP:{8:x4} LY:{9:x2} Cy:{10}", s[1] & 0xFF, s[2] & 0xFF, s[3] & 0xFF, s[4] & 0xFF, s[5] & 0xFF, s[6] & 0xFF, s[7] & 0xFF, s[8] & 0xFF, s[9] & 0xFFFF, LibSameboy.sameboy_cpuread(SameboyState, 0xFF44), CycleCount ))); }
public IDictionary <string, RegisterValue> GetCpuFlagsAndRegisters() { int[] data = new int[10]; LibSameboy.sameboy_getregs(SameboyState, data); return(new Dictionary <string, RegisterValue> { ["PC"] = (ushort)(data[0] & 0xFFFF), ["A"] = (byte)(data[1] & 0xFF), ["F"] = (byte)(data[2] & 0xFF), ["B"] = (byte)(data[3] & 0xFF), ["C"] = (byte)(data[4] & 0xFF), ["D"] = (byte)(data[5] & 0xFF), ["E"] = (byte)(data[6] & 0xFF), ["H"] = (byte)(data[7] & 0xFF), ["L"] = (byte)(data[8] & 0xFF), ["SP"] = (ushort)(data[9] & 0xFFFF), }); }