Huge refactor: Make Core a singleton
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
#pragma once
|
||||
#include <File.hpp>
|
||||
#include <GameDB.hpp>
|
||||
#include <Registers.hpp>
|
||||
#include <backend/MemoryRegions.hpp>
|
||||
#include <backend/core/MMIO.hpp>
|
||||
#include <common.hpp>
|
||||
@@ -70,17 +69,17 @@ struct Flash {
|
||||
void CommandSetWriteOffs(u32);
|
||||
void CommandWrite();
|
||||
void CommandRead();
|
||||
std::vector<u8> Serialize();
|
||||
void Deserialize(const std::vector<u8> &data);
|
||||
template <typename T>
|
||||
void Write(u32 index, T val);
|
||||
template <typename T>
|
||||
T Read(u32 index) const;
|
||||
};
|
||||
|
||||
struct JIT;
|
||||
|
||||
struct Mem {
|
||||
~Mem() = default;
|
||||
Mem(Registers &, ParallelRDP &, JIT * = nullptr);
|
||||
Mem(JIT * = nullptr);
|
||||
void Reset();
|
||||
void LoadSRAM(SaveType, fs::path);
|
||||
static std::vector<u8> OpenROM(const std::string &, size_t &);
|
||||
@@ -90,14 +89,11 @@ struct Mem {
|
||||
|
||||
[[nodiscard]] auto GetRDRAM() -> std::vector<u8> & { return mmio.rdp.rdram; }
|
||||
|
||||
std::vector<u8> Serialize();
|
||||
void Deserialize(const std::vector<u8> &);
|
||||
|
||||
template <typename T>
|
||||
T Read(Registers &, u32);
|
||||
T Read(u32);
|
||||
template <typename T>
|
||||
void Write(Registers &, u32, u32);
|
||||
void Write(const Registers &, u32, u64);
|
||||
void Write(u32, u32);
|
||||
void Write(u32, u64);
|
||||
|
||||
template <typename T>
|
||||
T BackupRead(u32);
|
||||
@@ -133,11 +129,11 @@ struct Mem {
|
||||
|
||||
private:
|
||||
template <typename T>
|
||||
void WriteInterpreter(Registers &, u32, u32);
|
||||
void WriteInterpreter(const Registers &, u32, u64);
|
||||
void WriteInterpreter(u32, u32);
|
||||
void WriteInterpreter(u32, u64);
|
||||
template <typename T>
|
||||
void WriteJIT(Registers &, u32, u32);
|
||||
void WriteJIT(const Registers &, u32, u64);
|
||||
void WriteJIT(u32, u32);
|
||||
void WriteJIT(u32, u64);
|
||||
|
||||
JIT *jit = nullptr;
|
||||
friend struct SI;
|
||||
|
||||
Reference in New Issue
Block a user