BizHawk/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ICodeDataLogger.cs

50 lines
1.3 KiB
C#

using System.IO;
using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.SNES
{
public partial class LibsnesCore : ICodeDataLogger
{
public void SetCDL(ICodeDataLog cdl)
{
_currCdl?.Unpin();
_currCdl = cdl;
_currCdl?.Pin();
// set it no matter what. if its null, the cdl will be unhooked from libsnes internally
Api.QUERY_set_cdl(_currCdl);
}
public void NewCDL(ICodeDataLog cdl)
{
cdl["CARTROM"] = new byte[_memoryDomains["CARTROM"].Size];
cdl["WRAM"] = new byte[_memoryDomains["WRAM"].Size];
cdl["APURAM"] = new byte[_memoryDomains["APURAM"].Size];
if (_memoryDomains.Has("CARTRAM"))
cdl["CARTRAM"] = new byte[_memoryDomains["CARTRAM"].Size];
if (IsSGB)
{
cdl["SGB_CARTROM"] = new byte[_memoryDomains["SGB CARTROM"].Size];
cdl["SGB_HRAM"] = new byte[_memoryDomains["SGB HRAM"].Size];
cdl["SGB_WRAM"] = new byte[_memoryDomains["SGB WRAM"].Size];
if (_memoryDomains.Has("SGB_CARTRAM"))
cdl["SGB_CARTRAM"] = new byte[_memoryDomains["SGB CARTRAM"].Size];
}
cdl.SubType = "SNES";
cdl.SubVer = 0;
}
public void DisassembleCDL(Stream s, ICodeDataLog cdl)
{
// TODO: should this throw a NotImplementedException?
// not supported yet
}
private ICodeDataLog _currCdl;
}
}