Merge pull request #585 from LegendOfDragoon/master

Improve LoadState
This commit is contained in:
zilmar 2015-09-04 17:08:07 +10:00
commit 60da75d041
1 changed files with 20 additions and 2 deletions

View File

@ -1576,9 +1576,12 @@ bool CN64System::LoadState()
bool CN64System::LoadState(LPCSTR FileName) bool CN64System::LoadState(LPCSTR FileName)
{ {
DWORD dwRead, Value,SaveRDRAMSize, NextVITimer = 0; DWORD dwRead, Value,SaveRDRAMSize, NextVITimer = 0, old_status, old_width, old_dacrate;
bool LoadedZipFile = false, AudioResetOnLoad; bool LoadedZipFile = false, AudioResetOnLoad;
old_status = g_Reg->VI_STATUS_REG;
old_width = g_Reg->VI_WIDTH_REG;
old_dacrate = g_Reg->AI_DACRATE_REG;
WriteTraceF((TraceType)(TraceDebug | TraceRecompiler),__FUNCTION__ "(%s): Start",FileName); WriteTraceF((TraceType)(TraceDebug | TraceRecompiler),__FUNCTION__ "(%s): Start",FileName);
char drive[_MAX_DRIVE] ,dir[_MAX_DIR], fname[_MAX_FNAME],ext[_MAX_EXT]; char drive[_MAX_DRIVE] ,dir[_MAX_DIR], fname[_MAX_FNAME],ext[_MAX_EXT];
@ -1753,6 +1756,21 @@ bool CN64System::LoadState(LPCSTR FileName)
m_Audio.SetFrequency(m_Reg.AI_DACRATE_REG, g_System->SystemType()); m_Audio.SetFrequency(m_Reg.AI_DACRATE_REG, g_System->SystemType());
} }
if (old_status != g_Reg->VI_STATUS_REG)
{
g_Plugins->Gfx()->ViStatusChanged();
}
if (old_width != g_Reg->VI_WIDTH_REG)
{
g_Plugins->Gfx()->ViWidthChanged();
}
if (old_dacrate != g_Reg->AI_DACRATE_REG)
{
g_Plugins->Audio()->DacrateChanged(g_System->SystemType());
}
//Fix Random Register //Fix Random Register
while ((int)m_Reg.RANDOM_REGISTER < (int)m_Reg.WIRED_REGISTER) while ((int)m_Reg.RANDOM_REGISTER < (int)m_Reg.WIRED_REGISTER)
{ {