diff --git a/Core/Dialog/SavedataParam.cpp b/Core/Dialog/SavedataParam.cpp index fa12766481..b3cdb57b4b 100644 --- a/Core/Dialog/SavedataParam.cpp +++ b/Core/Dialog/SavedataParam.cpp @@ -844,13 +844,13 @@ int SavedataParam::GetFilesList(SceUtilitySavedataParam *param) return SCE_UTILITY_SAVEDATA_ERROR_RW_BAD_STATUS; } - if (!Memory::IsValidAddress(param->fileListAddr)) { - ERROR_LOG_REPORT(HLE, "SavedataParam::GetFilesList(): bad fileList address %08x", param->fileListAddr); + if (!param->fileList.Valid()) { + ERROR_LOG_REPORT(HLE, "SavedataParam::GetFilesList(): bad fileList address %08x", param->fileList.ptr); // Should crash. return -1; } - auto fileList = Memory::GetStruct(param->fileListAddr); + auto &fileList = param->fileList; if (fileList->secureEntries.Valid() && fileList->maxSecureEntries > 99) { ERROR_LOG_REPORT(HLE, "SavedataParam::GetFilesList(): too many secure entries, %d", fileList->maxSecureEntries); return SCE_UTILITY_SAVEDATA_ERROR_RW_BAD_PARAMS; diff --git a/Core/Dialog/SavedataParam.h b/Core/Dialog/SavedataParam.h index b25e4039e0..33d5e3978d 100644 --- a/Core/Dialog/SavedataParam.h +++ b/Core/Dialog/SavedataParam.h @@ -186,7 +186,7 @@ struct SceUtilitySavedataParam u32 idListAddr; // Function 12 FILES - u32 fileListAddr; + PSPPointer fileList; // Function 22 GETSIZES u32 sizeAddr;