#pragma once #include "pch.h" #include "Debugger/PpuTools.h" class Debugger; class Emulator; class SmsConsole; struct SmsVdpState; enum class SmsVdpMemAccess : uint8_t; class SmsVdpTools final : public PpuTools { private: SmsConsole* _console = nullptr; uint16_t _scanlineCount = 262; SmsVdpMemAccess _memAccess[342 * 313] = {}; void GetSpriteInfo(DebugSpriteInfo& sprite, uint32_t* spritePreview, uint16_t spriteIndex, GetSpritePreviewOptions& options, SmsVdpState& state, uint8_t* vram, uint8_t* oamRam, uint32_t* palette); void GetSpritePreview(GetSpritePreviewOptions options, BaseState& state, DebugSpriteInfo* sprites, uint32_t* spritePreviews, uint32_t* palette, uint32_t *outBuffer); public: SmsVdpTools(Debugger* debugger, Emulator *emu, SmsConsole* console); void SetMemoryAccessData(uint16_t scanline, SmsVdpMemAccess* data, uint16_t scanlineCount); DebugTilemapInfo GetTilemap(GetTilemapOptions options, BaseState& state, BaseState& ppuToolsState, uint8_t* vram, uint32_t* palette, uint32_t *outBuffer) override; FrameInfo GetTilemapSize(GetTilemapOptions options, BaseState& state) override; DebugTilemapTileInfo GetTilemapTileInfo(uint32_t x, uint32_t y, uint8_t* vram, GetTilemapOptions options, BaseState& baseState, BaseState& ppuToolsState) override; DebugSpritePreviewInfo GetSpritePreviewInfo(GetSpritePreviewOptions options, BaseState& state, BaseState& ppuToolsState) override; void GetSpriteList(GetSpritePreviewOptions options, BaseState& baseState, BaseState& ppuToolsState, uint8_t* vram, uint8_t* oamRam, uint32_t* palette, DebugSpriteInfo outBuffer[], uint32_t* spritePreviews, uint32_t* screenPreview) override; DebugPaletteInfo GetPaletteInfo(GetPaletteInfoOptions options) override; void SetPaletteColor(int32_t colorIndex, uint32_t color) override; };