49 lines
No EOL
1.2 KiB
C++
49 lines
No EOL
1.2 KiB
C++
#pragma once
|
|
#include "stdafx.h"
|
|
#include "../Utilities/VirtualFile.h"
|
|
#include "../Utilities/SimpleLock.h"
|
|
|
|
class Cpu;
|
|
class Ppu;
|
|
class MemoryManager;
|
|
class Debugger;
|
|
class DebugHud;
|
|
class VideoRenderer;
|
|
class VideoDecoder;
|
|
enum class MemoryOperationType;
|
|
|
|
class Console : public std::enable_shared_from_this<Console>
|
|
{
|
|
private:
|
|
shared_ptr<Cpu> _cpu;
|
|
shared_ptr<Ppu> _ppu;
|
|
shared_ptr<MemoryManager> _memoryManager;
|
|
shared_ptr<Debugger> _debugger;
|
|
|
|
shared_ptr<VideoRenderer> _videoRenderer;
|
|
shared_ptr<VideoDecoder> _videoDecoder;
|
|
shared_ptr<DebugHud> _debugHud;
|
|
|
|
SimpleLock _runLock;
|
|
atomic<bool> _stopFlag;
|
|
|
|
public:
|
|
void Initialize();
|
|
|
|
void Run();
|
|
void Stop();
|
|
|
|
void LoadRom(VirtualFile romFile, VirtualFile patchFile);
|
|
|
|
shared_ptr<VideoRenderer> GetVideoRenderer();
|
|
shared_ptr<VideoDecoder> GetVideoDecoder();
|
|
shared_ptr<DebugHud> GetDebugHud();
|
|
|
|
shared_ptr<Cpu> GetCpu();
|
|
shared_ptr<Ppu> GetPpu();
|
|
shared_ptr<MemoryManager> GetMemoryManager();
|
|
shared_ptr<Debugger> GetDebugger(bool allowStart = true);
|
|
|
|
void ProcessCpuRead(uint32_t addr, uint8_t value, MemoryOperationType type);
|
|
void ProcessCpuWrite(uint32_t addr, uint8_t value, MemoryOperationType type);
|
|
}; |