start implementing actual shito
(also looks like the test bench in libui_sdl/main.cpp snuck in with the copyright update. shit)
This commit is contained in:
parent
fea7955675
commit
0bfd019dc0
21
src/ARM.cpp
21
src/ARM.cpp
|
@ -161,6 +161,27 @@ void ARM::Reset()
|
||||||
JumpTo(ExceptionBase);
|
JumpTo(ExceptionBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ARM::Savestate(Savestate* file)
|
||||||
|
{
|
||||||
|
file->Section(Num ? "ARM7" : "ARM9");
|
||||||
|
|
||||||
|
file->Var32(&(u32)Cycles);
|
||||||
|
file->Var32(&(u32)CyclesToRun);
|
||||||
|
file->Var32(&Halted);
|
||||||
|
|
||||||
|
file->VarArray(R, 16*sizeof(u32));
|
||||||
|
file->Var32(&CPSR);
|
||||||
|
file->VarArray(R_FIQ, 8*sizeof(u32));
|
||||||
|
file->VarArray(R_SVC, 3*sizeof(u32));
|
||||||
|
file->VarArray(R_ABT, 3*sizeof(u32));
|
||||||
|
file->VarArray(R_IRQ, 3*sizeof(u32));
|
||||||
|
file->VarArray(R_UND, 3*sizeof(u32));
|
||||||
|
file->Var32(&CurInstr);
|
||||||
|
file->VarArray(NextInstr, 2*sizeof(u32));
|
||||||
|
|
||||||
|
file->Var32(&ExceptionBase);
|
||||||
|
}
|
||||||
|
|
||||||
void ARM::JumpTo(u32 addr, bool restorecpsr)
|
void ARM::JumpTo(u32 addr, bool restorecpsr)
|
||||||
{
|
{
|
||||||
if (restorecpsr)
|
if (restorecpsr)
|
||||||
|
|
|
@ -38,6 +38,8 @@ public:
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
void Savestate(Savestate* file);
|
||||||
|
|
||||||
void JumpTo(u32 addr, bool restorecpsr = false);
|
void JumpTo(u32 addr, bool restorecpsr = false);
|
||||||
void RestoreCPSR();
|
void RestoreCPSR();
|
||||||
|
|
||||||
|
|
19
src/CP15.cpp
19
src/CP15.cpp
|
@ -57,6 +57,25 @@ void Reset()
|
||||||
DTCMSize = 0;
|
DTCMSize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Savestate(Savestate* file)
|
||||||
|
{
|
||||||
|
file->Section("CP15");
|
||||||
|
|
||||||
|
file->Var32(&Control);
|
||||||
|
|
||||||
|
file->Var32(&DTCMSetting);
|
||||||
|
file->Var32(&ITCMSetting);
|
||||||
|
|
||||||
|
if (!file->Saving)
|
||||||
|
{
|
||||||
|
UpdateDTCMSetting();
|
||||||
|
UpdateITCMSetting();
|
||||||
|
}
|
||||||
|
|
||||||
|
file->VarArray(ITCM, 0x8000);
|
||||||
|
file->VarArray(DTCM, 0x4000);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UpdateDTCMSetting()
|
void UpdateDTCMSetting()
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,6 +24,8 @@ namespace CP15
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
void Savestate(Savestate* file);
|
||||||
|
|
||||||
void UpdateDTCMSetting();
|
void UpdateDTCMSetting();
|
||||||
void UpdateITCMSetting();
|
void UpdateITCMSetting();
|
||||||
|
|
||||||
|
|
16
src/NDS.cpp
16
src/NDS.cpp
|
@ -356,6 +356,22 @@ void Stop()
|
||||||
SPU::Stop();
|
SPU::Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Savestate(Savestate* file)
|
||||||
|
{
|
||||||
|
// NDS shito
|
||||||
|
|
||||||
|
ARM9->Savestate(file);
|
||||||
|
ARM7->Savestate(file);
|
||||||
|
CP15::Savestate(file);
|
||||||
|
|
||||||
|
// NDSCart
|
||||||
|
// GPU
|
||||||
|
// SPU
|
||||||
|
// SPI
|
||||||
|
// RTC
|
||||||
|
// wifi
|
||||||
|
}
|
||||||
|
|
||||||
bool LoadROM(const char* path, bool direct)
|
bool LoadROM(const char* path, bool direct)
|
||||||
{
|
{
|
||||||
if (NDSCart::LoadROM(path, direct))
|
if (NDSCart::LoadROM(path, direct))
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#ifndef NDS_H
|
#ifndef NDS_H
|
||||||
#define NDS_H
|
#define NDS_H
|
||||||
|
|
||||||
|
#include "Savestate.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
namespace NDS
|
namespace NDS
|
||||||
|
@ -108,6 +109,8 @@ void DeInit();
|
||||||
void Reset();
|
void Reset();
|
||||||
void Stop();
|
void Stop();
|
||||||
|
|
||||||
|
void Savestate(Savestate* file);
|
||||||
|
|
||||||
bool LoadROM(const char* path, bool direct);
|
bool LoadROM(const char* path, bool direct);
|
||||||
void LoadBIOS();
|
void LoadBIOS();
|
||||||
void SetupDirectBoot();
|
void SetupDirectBoot();
|
||||||
|
|
Loading…
Reference in New Issue