78 lines
1.7 KiB
C#
78 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using BizHawk.Emulation.Common;
|
|
|
|
namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
|
{
|
|
public partial class LibsnesCore : IDebuggable
|
|
{
|
|
public IDictionary<string, RegisterValue> GetCpuFlagsAndRegisters()
|
|
{
|
|
LibsnesApi.CPURegs regs;
|
|
Api.QUERY_peek_cpu_regs(out regs);
|
|
|
|
bool fn = (regs.p & 0x80) != 0;
|
|
bool fv = (regs.p & 0x40) != 0;
|
|
bool fm = (regs.p & 0x20) != 0;
|
|
bool fx = (regs.p & 0x10) != 0;
|
|
bool fd = (regs.p & 0x08) != 0;
|
|
bool fi = (regs.p & 0x04) != 0;
|
|
bool fz = (regs.p & 0x02) != 0;
|
|
bool fc = (regs.p & 0x01) != 0;
|
|
|
|
return new Dictionary<string, RegisterValue>
|
|
{
|
|
{ "PC", regs.pc },
|
|
{ "A", regs.a },
|
|
{ "X", regs.x },
|
|
{ "Y", regs.y },
|
|
{ "Z", regs.z },
|
|
{ "S", regs.s },
|
|
{ "D", regs.d },
|
|
{ "Vector", regs.vector },
|
|
{ "P", regs.p },
|
|
{ "AA", regs.aa },
|
|
{ "RD", regs.rd },
|
|
{ "SP", regs.sp },
|
|
{ "DP", regs.dp },
|
|
{ "DB", regs.db },
|
|
{ "MDR", regs.mdr },
|
|
{ "Flag N", fn },
|
|
{ "Flag V", fv },
|
|
{ "Flag M", fm },
|
|
{ "Flag X", fx },
|
|
{ "Flag D", fd },
|
|
{ "Flag I", fi },
|
|
{ "Flag Z", fz },
|
|
{ "Flag C", fc },
|
|
};
|
|
}
|
|
|
|
[FeatureNotImplemented]
|
|
public void SetCpuRegister(string register, int value)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public IMemoryCallbackSystem MemoryCallbacks { get; } = new MemoryCallbackSystem();
|
|
|
|
public bool CanStep(StepType type)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
[FeatureNotImplemented]
|
|
public void Step(StepType type)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
[FeatureNotImplemented]
|
|
public int TotalExecutedCycles
|
|
{
|
|
get { throw new NotImplementedException(); }
|
|
}
|
|
}
|
|
}
|