2017-04-19 14:41:52 +00:00
|
|
|
|
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
|
2017-04-19 17:19:16 +00:00
|
|
|
|
Api.QUERY_set_cdl(_currCdl);
|
2017-04-19 14:41:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void NewCDL(ICodeDataLog cdl)
|
|
|
|
|
{
|
2017-04-19 15:51:16 +00:00
|
|
|
|
cdl["CARTROM"] = new byte[_memoryDomains["CARTROM"].Size];
|
2017-05-06 21:23:26 +00:00
|
|
|
|
cdl["WRAM"] = new byte[_memoryDomains["WRAM"].Size];
|
|
|
|
|
cdl["APURAM"] = new byte[_memoryDomains["APURAM"].Size];
|
2017-04-19 14:41:52 +00:00
|
|
|
|
|
2017-04-19 15:51:16 +00:00
|
|
|
|
if (_memoryDomains.Has("CARTRAM"))
|
|
|
|
|
cdl["CARTRAM"] = new byte[_memoryDomains["CARTRAM"].Size];
|
2017-04-19 14:41:52 +00:00
|
|
|
|
|
2017-05-06 21:23:26 +00:00
|
|
|
|
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];
|
|
|
|
|
}
|
2017-04-19 14:41:52 +00:00
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|