#pragma once #include "stdafx.h" #include "../Utilities/VirtualFile.h" #include "../Utilities/SimpleLock.h" class Cpu; class Ppu; class MemoryManager; class Debugger; enum class MemoryOperationType; class Console : public std::enable_shared_from_this { private: shared_ptr _cpu; shared_ptr _ppu; shared_ptr _memoryManager; shared_ptr _debugger; SimpleLock _runLock; atomic _stopFlag; public: void Run(); void Stop(); void LoadRom(VirtualFile romFile, VirtualFile patchFile); shared_ptr GetPpu(); shared_ptr GetDebugger(bool allowStart = true); void ProcessCpuRead(uint32_t addr, uint8_t value, MemoryOperationType type); void ProcessCpuWrite(uint32_t addr, uint8_t value, MemoryOperationType type); };