Files
kaizen/src/backend/Core.hpp
2024-09-05 20:58:14 +02:00

34 lines
774 B
C++

#pragma once
#include <backend/core/Interpreter.hpp>
#include <backend/core/JIT.hpp>
#include <string>
struct Window;
struct Event;
namespace n64 {
struct Core {
explicit Core(ParallelRDP &);
void Stop();
void LoadROM(const std::string &);
[[nodiscard]] bool LoadTAS(const fs::path &) const;
void Run(float volumeL, float volumeR);
void Serialize();
void Deserialize();
void TogglePause() { pause = !pause; }
[[nodiscard]] VI &GetVI() const { return cpu->GetMem().mmio.vi; }
u32 breakpoint = 0;
bool pause = true;
bool render = false;
u32 cycles = 0;
bool romLoaded = false;
std::string rom;
std::unique_ptr<BaseCPU> cpu;
std::vector<u8> serialized[10]{};
size_t memSize{}, cpuSize{}, verSize{};
int slot = 0;
};
} // namespace n64