2016-11-18 23:50:05 -05:00
|
|
|
#pragma once
|
|
|
|
#include "stdafx.h"
|
2016-12-09 00:02:56 -05:00
|
|
|
#include "DebuggerTypes.h"
|
2016-11-18 23:50:05 -05:00
|
|
|
|
|
|
|
class PPU;
|
|
|
|
class MemoryManager;
|
|
|
|
class BaseMapper;
|
|
|
|
class CodeDataLogger;
|
2017-02-26 20:47:39 -05:00
|
|
|
class Debugger;
|
2017-03-11 15:01:33 -05:00
|
|
|
class Disassembler;
|
2016-11-18 23:50:05 -05:00
|
|
|
|
|
|
|
class MemoryDumper
|
|
|
|
{
|
|
|
|
private:
|
2017-02-26 20:47:39 -05:00
|
|
|
Debugger* _debugger;
|
2016-11-18 23:50:05 -05:00
|
|
|
shared_ptr<PPU> _ppu;
|
|
|
|
shared_ptr<MemoryManager> _memoryManager;
|
|
|
|
shared_ptr<BaseMapper> _mapper;
|
|
|
|
shared_ptr<CodeDataLogger> _codeDataLogger;
|
2017-03-11 15:01:33 -05:00
|
|
|
shared_ptr<Disassembler> _disassembler;
|
2016-11-18 23:50:05 -05:00
|
|
|
|
|
|
|
public:
|
2017-03-11 15:01:33 -05:00
|
|
|
MemoryDumper(shared_ptr<PPU> ppu, shared_ptr<MemoryManager> memoryManager, shared_ptr<BaseMapper> mapper, shared_ptr<CodeDataLogger> codeDataLogger, Debugger *debugger, shared_ptr<Disassembler> disassembler);
|
2016-11-18 23:50:05 -05:00
|
|
|
|
2017-05-02 21:23:28 -04:00
|
|
|
uint32_t GetMemorySize(DebugMemoryType type);
|
2016-11-18 23:50:05 -05:00
|
|
|
uint32_t GetMemoryState(DebugMemoryType type, uint8_t *buffer);
|
|
|
|
void GetNametable(int nametableIndex, uint32_t* frameBuffer, uint8_t* tileData, uint8_t* paletteData);
|
|
|
|
void GetChrBank(int bankIndex, uint32_t* frameBuffer, uint8_t palette, bool largeSprites, CdlHighlightType highlightType);
|
|
|
|
void GetSprites(uint32_t* frameBuffer);
|
|
|
|
void GetPalette(uint32_t* frameBuffer);
|
|
|
|
|
2017-08-30 18:31:27 -04:00
|
|
|
uint8_t GetMemoryValue(DebugMemoryType memoryType, uint32_t address, bool disableSideEffects = true);
|
|
|
|
uint16_t GetMemoryValueWord(DebugMemoryType memoryType, uint32_t address, bool disableSideEffects = true);
|
|
|
|
void SetMemoryValue(DebugMemoryType memoryType, uint32_t address, uint8_t value, bool preventRebuildCache = false, bool disableSideEffects = true);
|
|
|
|
void SetMemoryValueWord(DebugMemoryType memoryType, uint32_t address, uint16_t value, bool preventRebuildCache = false, bool disableSideEffects = true);
|
2017-03-11 15:01:33 -05:00
|
|
|
void SetMemoryValues(DebugMemoryType memoryType, uint32_t address, uint8_t* data, int32_t length);
|
2016-11-18 23:50:05 -05:00
|
|
|
void SetMemoryState(DebugMemoryType type, uint8_t *buffer);
|
|
|
|
};
|