mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
#pragma once
|
|
#include "pch.h"
|
|
#include "Debugger/CodeDataLogger.h"
|
|
|
|
class NesCodeDataLogger : public CodeDataLogger
|
|
{
|
|
private:
|
|
CodeDataLogger* _chrRomCdl = nullptr;
|
|
|
|
protected:
|
|
void InternalLoadCdlFile(uint8_t* cdlData, uint32_t cdlSize) override
|
|
{
|
|
if(_chrRomCdl) {
|
|
_chrRomCdl->SetCdlData(cdlData + _memSize, cdlSize - _memSize);
|
|
}
|
|
}
|
|
|
|
void InternalSaveCdlFile(ofstream& cdlFile) override
|
|
{
|
|
if(_chrRomCdl) {
|
|
cdlFile.write((char*)_chrRomCdl->GetRawData(), _chrRomCdl->GetSize());
|
|
}
|
|
}
|
|
|
|
public:
|
|
NesCodeDataLogger(Debugger* debugger, MemoryType memType, uint32_t memSize, CpuType cpuType, uint32_t romCrc32, CodeDataLogger* chrRomCdl)
|
|
: CodeDataLogger(debugger, memType, memSize, cpuType, romCrc32)
|
|
{
|
|
_chrRomCdl = chrRomCdl;
|
|
}
|
|
|
|
void Reset() override
|
|
{
|
|
CodeDataLogger::Reset();
|
|
if(_chrRomCdl) {
|
|
_chrRomCdl->Reset();
|
|
}
|
|
}
|
|
|
|
CdlStatistics GetStatistics() override
|
|
{
|
|
CdlStatistics stats = CodeDataLogger::GetStatistics();
|
|
if(_chrRomCdl) {
|
|
CdlStatistics cdlStats = _chrRomCdl->GetStatistics();
|
|
stats.DrawnChrBytes = cdlStats.CodeBytes;
|
|
stats.TotalChrBytes = cdlStats.TotalBytes;
|
|
}
|
|
return stats;
|
|
}
|
|
|
|
void StripData(uint8_t* romBuffer, CdlStripOption flag) override
|
|
{
|
|
CodeDataLogger::StripData(romBuffer, flag);
|
|
if(_chrRomCdl) {
|
|
_chrRomCdl->StripData(romBuffer + _memSize, flag);
|
|
}
|
|
}
|
|
};
|