mirror of
https://github.com/libretro/MesenCE.git
synced 2026-11-10 17:25:07 -10:00
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format" * fix ui format warnings
78 lines
2.0 KiB
C++
78 lines
2.0 KiB
C++
#pragma once
|
|
#include "pch.h"
|
|
#include "Debugger/DebugTypes.h"
|
|
#include "Debugger/BaseEventManager.h"
|
|
#include "Utilities/SimpleLock.h"
|
|
|
|
enum class DebugEventType;
|
|
struct DebugEventInfo;
|
|
class SmsCpu;
|
|
class SmsVdp;
|
|
class SmsConsole;
|
|
class Debugger;
|
|
|
|
struct SmsEventViewerConfig : public BaseEventViewerConfig
|
|
{
|
|
EventViewerCategoryCfg Irq;
|
|
EventViewerCategoryCfg Nmi;
|
|
EventViewerCategoryCfg MarkedBreakpoints;
|
|
|
|
EventViewerCategoryCfg VdpPaletteWrite;
|
|
EventViewerCategoryCfg VdpVramWrite;
|
|
|
|
EventViewerCategoryCfg VdpVCounterRead;
|
|
EventViewerCategoryCfg VdpHCounterRead;
|
|
EventViewerCategoryCfg VdpVramRead;
|
|
EventViewerCategoryCfg VdpControlPortRead;
|
|
EventViewerCategoryCfg VdpControlPortWrite;
|
|
|
|
EventViewerCategoryCfg PsgWrite;
|
|
EventViewerCategoryCfg IoWrite;
|
|
EventViewerCategoryCfg IoRead;
|
|
|
|
EventViewerCategoryCfg MemoryControlWrite;
|
|
|
|
EventViewerCategoryCfg GameGearPortWrite;
|
|
EventViewerCategoryCfg GameGearPortRead;
|
|
|
|
bool ShowPreviousFrameEvents;
|
|
};
|
|
|
|
class SmsEventManager final : public BaseEventManager
|
|
{
|
|
private:
|
|
static constexpr int ScanlineWidth = 342 * 2;
|
|
static constexpr int ScreenHeight = 262;
|
|
|
|
SmsEventViewerConfig _config;
|
|
|
|
SmsVdp* _vdp;
|
|
SmsCpu* _cpu;
|
|
SmsConsole* _console;
|
|
Debugger* _debugger;
|
|
|
|
uint32_t _scanlineCount = 262;
|
|
uint32_t _visibleScanlineCount = 192;
|
|
uint16_t* _ppuBuffer = nullptr;
|
|
|
|
protected:
|
|
bool ShowPreviousFrameEvents() override;
|
|
void ConvertScanlineCycleToRowColumn(int32_t& x, int32_t& y) override;
|
|
void DrawScreen(uint32_t* buffer) override;
|
|
|
|
public:
|
|
SmsEventManager(Debugger* debugger, SmsConsole* console, SmsCpu* cpu, SmsVdp* vdp);
|
|
~SmsEventManager();
|
|
|
|
void AddEvent(DebugEventType type, MemoryOperationInfo& operation, int32_t breakpointId = -1) override;
|
|
void AddEvent(DebugEventType type) override;
|
|
|
|
EventViewerCategoryCfg GetEventConfig(DebugEventInfo& evt) override;
|
|
|
|
uint32_t TakeEventSnapshot(bool forAutoRefresh) override;
|
|
DebugEventInfo GetEvent(uint16_t y, uint16_t x) override;
|
|
|
|
FrameInfo GetDisplayBufferSize() override;
|
|
void SetConfiguration(BaseEventViewerConfig& config) override;
|
|
};
|