Huge refactor: Make Core a singleton

This commit is contained in:
irisz64
2025-07-29 11:08:05 +02:00
parent e0e887ce90
commit 3061334004
56 changed files with 426 additions and 594 deletions

View File

@@ -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;