Skip to content

Commit

Permalink
[Save State] Make sure g_Disk exists
Browse files Browse the repository at this point in the history
  • Loading branch information
LuigiBlood committed Jun 9, 2020
1 parent 34ec690 commit b2ed47c
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions Source/Project64-core/N64System/N64Class.cpp
Expand Up @@ -1749,10 +1749,10 @@ bool CN64System::SaveState()
zipOpenNewFileInZip(file, SaveFile.GetNameExtension().c_str(), NULL, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION);
zipWriteInFileInZip(file, &SaveID_0, sizeof(SaveID_0));
zipWriteInFileInZip(file, &RdramSize, sizeof(uint32_t));
if (!g_Settings->LoadBool(Setting_EnableDisk))
zipWriteInFileInZip(file, g_Rom->GetRomAddress(), 0x40);
else
if (g_Settings->LoadBool(Setting_EnableDisk) && g_Disk)
zipWriteInFileInZip(file, g_Disk->GetDiskAddressID(), 0x40);
else
zipWriteInFileInZip(file, g_Rom->GetRomAddress(), 0x40);
zipWriteInFileInZip(file, &NextViTimer, sizeof(uint32_t));
zipWriteInFileInZip(file, &m_Reg.m_PROGRAM_COUNTER, sizeof(m_Reg.m_PROGRAM_COUNTER));
zipWriteInFileInZip(file, m_Reg.m_GPR, sizeof(int64_t) * 32);
Expand Down Expand Up @@ -1806,10 +1806,10 @@ bool CN64System::SaveState()
hSaveFile.SeekToBegin();
hSaveFile.Write(&SaveID_0, sizeof(uint32_t));
hSaveFile.Write(&RdramSize, sizeof(uint32_t));
if (!g_Settings->LoadBool(Setting_EnableDisk))
hSaveFile.Write(g_Rom->GetRomAddress(), 0x40);
else
if (g_Settings->LoadBool(Setting_EnableDisk) && g_Disk)
hSaveFile.Write(g_Disk->GetDiskAddressID(), 0x40);
else
hSaveFile.Write(g_Rom->GetRomAddress(), 0x40);
hSaveFile.Write(&NextViTimer, sizeof(uint32_t));
hSaveFile.Write(&m_Reg.m_PROGRAM_COUNTER, sizeof(m_Reg.m_PROGRAM_COUNTER));
hSaveFile.Write(m_Reg.m_GPR, sizeof(int64_t) * 32);
Expand Down Expand Up @@ -1981,17 +1981,17 @@ bool CN64System::LoadState(const char * FileName)

uint8_t LoadHeader[64];
unzReadCurrentFile(file, LoadHeader, 0x40);
if (!g_Settings->LoadBool(Setting_EnableDisk))
if (g_Settings->LoadBool(Setting_EnableDisk) && g_Disk)
{
if (memcmp(LoadHeader, g_Rom->GetRomAddress(), 0x40) != 0 &&
if (memcmp(LoadHeader, g_Disk->GetDiskAddressID(), 0x40) != 0 &&
!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SAVE_STATE_HEADER).c_str()))
{
return false;
}
}
else
{
if (memcmp(LoadHeader, g_Disk->GetDiskAddressID(), 0x40) != 0 &&
if (memcmp(LoadHeader, g_Rom->GetRomAddress(), 0x40) != 0 &&
!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SAVE_STATE_HEADER).c_str()))
{
return false;
Expand Down Expand Up @@ -2060,17 +2060,17 @@ bool CN64System::LoadState(const char * FileName)
//Check header
uint8_t LoadHeader[64];
hSaveFile.Read(LoadHeader, 0x40);
if (!g_Settings->LoadBool(Setting_EnableDisk))
if (g_Settings->LoadBool(Setting_EnableDisk) && g_Disk)
{
if (memcmp(LoadHeader, g_Rom->GetRomAddress(), 0x40) != 0 &&
if (memcmp(LoadHeader, g_Disk->GetDiskAddressID(), 0x40) != 0 &&
!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SAVE_STATE_HEADER).c_str()))
{
return false;
}
}
else
{
if (memcmp(LoadHeader, g_Disk->GetDiskAddressID(), 0x40) != 0 &&
if (memcmp(LoadHeader, g_Rom->GetRomAddress(), 0x40) != 0 &&
!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SAVE_STATE_HEADER).c_str()))
{
return false;
Expand Down

0 comments on commit b2ed47c

Please sign in to comment.