Core: Fix bug in not creating save state correctly
This commit is contained in:
parent
10b550bb63
commit
15175d3fe2
|
@ -1671,11 +1671,11 @@ bool CN64System::SaveState()
|
|||
zipWriteInFileInZip(file, g_Rom->GetRomAddress(), 0x40);
|
||||
}
|
||||
zipWriteInFileInZip(file, &NextViTimer, sizeof(uint32_t));
|
||||
int32_t WriteProgramCounter = ((int32_t)m_Reg.m_PROGRAM_COUNTER);
|
||||
int64_t WriteProgramCounter = ((int32_t)m_Reg.m_PROGRAM_COUNTER);
|
||||
zipWriteInFileInZip(file, &WriteProgramCounter, sizeof(int64_t));
|
||||
zipWriteInFileInZip(file, m_Reg.m_GPR, sizeof(int64_t) * 32);
|
||||
zipWriteInFileInZip(file, m_Reg.m_FPR, sizeof(int64_t) * 32);
|
||||
zipWriteInFileInZip(file, m_Reg.m_CP0, sizeof(uint32_t) * 32);
|
||||
zipWriteInFileInZip(file, m_Reg.m_CP0, sizeof(uint64_t) * 32);
|
||||
zipWriteInFileInZip(file, m_Reg.m_FPCR, sizeof(uint32_t) * 32);
|
||||
zipWriteInFileInZip(file, &m_Reg.m_HI, sizeof(int64_t));
|
||||
zipWriteInFileInZip(file, &m_Reg.m_LO, sizeof(int64_t));
|
||||
|
@ -1742,7 +1742,7 @@ bool CN64System::SaveState()
|
|||
hSaveFile.Write(g_Rom->GetRomAddress(), 0x40);
|
||||
}
|
||||
hSaveFile.Write(&NextViTimer, sizeof(uint32_t));
|
||||
int32_t WriteProgramCounter = ((int32_t)m_Reg.m_PROGRAM_COUNTER);
|
||||
int64_t WriteProgramCounter = ((int32_t)m_Reg.m_PROGRAM_COUNTER);
|
||||
hSaveFile.Write(&WriteProgramCounter, sizeof(int64_t));
|
||||
hSaveFile.Write(m_Reg.m_GPR, sizeof(int64_t) * 32);
|
||||
hSaveFile.Write(m_Reg.m_FPR, sizeof(int64_t) * 32);
|
||||
|
|
|
@ -109,8 +109,6 @@ void CRSP_Plugin::RomClose(RenderWindow * Render)
|
|||
}
|
||||
CPlugin::RomClose(Render);
|
||||
m_RunEvent.Reset();
|
||||
m_Plugins = nullptr;
|
||||
m_System = nullptr;
|
||||
}
|
||||
|
||||
bool CRSP_Plugin::Initiate(CPlugins * Plugins, CN64System * System)
|
||||
|
@ -563,7 +561,7 @@ uint32_t CRSP_Plugin::RspThread(void)
|
|||
CRegisters & Reg = m_System->m_Reg;
|
||||
for (;;)
|
||||
{
|
||||
if ((Reg.SP_STATUS_REG & SP_STATUS_HALT) != 0)
|
||||
if ((Reg.SP_STATUS_REG & SP_STATUS_HALT) != 0 || !RspMultiThreaded())
|
||||
{
|
||||
m_RunEvent.Reset();
|
||||
m_RunEvent.IsTriggered(SyncEvent::INFINITE_TIMEOUT);
|
||||
|
|
|
@ -59,6 +59,9 @@ public:
|
|||
void * GetDebugMenu(void);
|
||||
void ProcessMenuItem(int32_t id);
|
||||
|
||||
void PauseRSPThread(void);
|
||||
void ResumeRSPThread(void);
|
||||
|
||||
private:
|
||||
CRSP_Plugin(const CRSP_Plugin &);
|
||||
CRSP_Plugin & operator=(const CRSP_Plugin &);
|
||||
|
|
Loading…
Reference in New Issue