mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-01-15 19:35:26 +00:00
Merge pull request #2014 from viniciuslrangel/save-fixes-vi
Save Fixes VI
This commit is contained in:
commit
c977011d2f
|
@ -2,6 +2,7 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <span>
|
#include <span>
|
||||||
|
#include <thread>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <core/libraries/system/msgdialog_ui.h>
|
#include <core/libraries/system/msgdialog_ui.h>
|
||||||
|
@ -1139,10 +1140,6 @@ Error PS4_SYSV_ABI sceSaveDataGetSaveDataMemory2(OrbisSaveDataMemoryGet2* getPar
|
||||||
LOG_INFO(Lib_SaveData, "called without save memory initialized");
|
LOG_INFO(Lib_SaveData, "called without save memory initialized");
|
||||||
return Error::MEMORY_NOT_READY;
|
return Error::MEMORY_NOT_READY;
|
||||||
}
|
}
|
||||||
if (SaveMemory::IsSaving()) {
|
|
||||||
LOG_TRACE(Lib_SaveData, "called while saving");
|
|
||||||
return Error::BUSY_FOR_SAVING;
|
|
||||||
}
|
|
||||||
LOG_DEBUG(Lib_SaveData, "called");
|
LOG_DEBUG(Lib_SaveData, "called");
|
||||||
auto data = getParam->data;
|
auto data = getParam->data;
|
||||||
if (data != nullptr) {
|
if (data != nullptr) {
|
||||||
|
@ -1501,10 +1498,16 @@ Error PS4_SYSV_ABI sceSaveDataSetSaveDataMemory2(const OrbisSaveDataMemorySet2*
|
||||||
LOG_INFO(Lib_SaveData, "called without save memory initialized");
|
LOG_INFO(Lib_SaveData, "called without save memory initialized");
|
||||||
return Error::MEMORY_NOT_READY;
|
return Error::MEMORY_NOT_READY;
|
||||||
}
|
}
|
||||||
|
if (SaveMemory::IsSaving()) {
|
||||||
|
int count = 0;
|
||||||
|
while (++count < 100 && SaveMemory::IsSaving()) { // try for more 10 seconds
|
||||||
|
std::this_thread::sleep_for(chrono::milliseconds(100));
|
||||||
|
}
|
||||||
if (SaveMemory::IsSaving()) {
|
if (SaveMemory::IsSaving()) {
|
||||||
LOG_TRACE(Lib_SaveData, "called while saving");
|
LOG_TRACE(Lib_SaveData, "called while saving");
|
||||||
return Error::BUSY_FOR_SAVING;
|
return Error::BUSY_FOR_SAVING;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
LOG_DEBUG(Lib_SaveData, "called");
|
LOG_DEBUG(Lib_SaveData, "called");
|
||||||
auto data = setParam->data;
|
auto data = setParam->data;
|
||||||
if (data != nullptr) {
|
if (data != nullptr) {
|
||||||
|
@ -1584,8 +1587,8 @@ Error PS4_SYSV_ABI sceSaveDataSetupSaveDataMemory2(const OrbisSaveDataMemorySetu
|
||||||
} else {
|
} else {
|
||||||
SaveMemory::SetIcon(nullptr, 0);
|
SaveMemory::SetIcon(nullptr, 0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
SaveMemory::TriggerSaveWithoutEvent();
|
SaveMemory::TriggerSaveWithoutEvent();
|
||||||
|
}
|
||||||
if (g_fw_ver >= ElfInfo::FW_45 && result != nullptr) {
|
if (g_fw_ver >= ElfInfo::FW_45 && result != nullptr) {
|
||||||
result->existedMemorySize = existed_size;
|
result->existedMemorySize = existed_size;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue