Huge refactor: Make Core a singleton
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
#include <core/Mem.hpp>
|
||||
#include <core/RSP.hpp>
|
||||
#include <core/registers/Registers.hpp>
|
||||
#include <Core.hpp>
|
||||
#include <log.hpp>
|
||||
|
||||
namespace n64 {
|
||||
RSP::RSP(Mem &mem, Registers ®s) : regs(regs), mem(mem) { Reset(); }
|
||||
RSP::RSP() { Reset(); }
|
||||
|
||||
void RSP::Reset() {
|
||||
lastSuccessfulSPAddr.raw = 0;
|
||||
@@ -90,6 +88,8 @@ auto RSP::Read(const u32 addr) -> u32 {
|
||||
}
|
||||
|
||||
void RSP::WriteStatus(const u32 value) {
|
||||
Mem& mem = Core::GetInstance().cpu->GetMem();
|
||||
Registers& regs = Core::GetInstance().cpu->GetRegs();
|
||||
MI &mi = mem.mmio.mi;
|
||||
const auto write = SPStatusWrite{.raw = value};
|
||||
if (write.clearHalt && !write.setHalt) {
|
||||
@@ -130,6 +130,7 @@ void RSP::WriteStatus(const u32 value) {
|
||||
|
||||
template <>
|
||||
void RSP::DMA<true>() {
|
||||
Mem& mem = Core::GetInstance().cpu->GetMem();
|
||||
u32 length = spDMALen.len + 1;
|
||||
|
||||
length = (length + 0x7) & ~0x7;
|
||||
@@ -162,6 +163,7 @@ void RSP::DMA<true>() {
|
||||
|
||||
template <>
|
||||
void RSP::DMA<false>() {
|
||||
Mem& mem = Core::GetInstance().cpu->GetMem();
|
||||
u32 length = spDMALen.len + 1;
|
||||
|
||||
length = (length + 0x7) & ~0x7;
|
||||
|
||||
Reference in New Issue
Block a user