Files
yaze/src/app/emu/emulator.h
scawful 59e7dcc7f0 GUI Updates
Add DisplaySettings, replace ImGui style editor
Update Debugger interface with memory viewer
Decompose SNES initialization routines
Update DungeonObjectRenderer plan
Add DrawObjectRenderer UI mockup fofr DungeonEditor
2023-11-21 11:07:04 -05:00

55 lines
1.1 KiB
C++

#ifndef YAZE_APP_CORE_EMULATOR_H
#define YAZE_APP_CORE_EMULATOR_H
#include <cstdint>
#include <vector>
#include "app/emu/snes.h"
#include "app/rom.h"
namespace yaze {
namespace app {
namespace emu {
class Emulator : public SharedROM {
public:
// Runs the emulator loop, including event handling and rendering
void Run();
private:
// Renders the emulator output to an ImGui child window
void RenderEmulator();
// Draws the navigation bar with various controls
void RenderNavBar();
// Handles user input events
void HandleEvents();
// Updates the emulator state (CPU, PPU, APU, etc.)
void UpdateEmulator();
void RenderDebugger();
void RenderBreakpointList();
void RenderCpuState(CPU& cpu);
void RenderMemoryViewer();
void RenderCPUInstructionLog(
const std::vector<InstructionEntry>& instructionLog);
SNES snes_;
bool power_ = false;
bool loading_ = false;
bool running_ = false;
bool debugger_ = true;
bool memory_setup_ = false;
bool integrated_debugger_mode_ = true;
bool separate_debugger_mode_ = false;
};
} // namespace emu
} // namespace app
} // namespace yaze
#endif // YAZE_APP_CORE_EMULATOR_H