Commit Graph
16 Commits
Author SHA1 Message Date
zaryabzip c5e2f0ed94 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/savedata-initialize2
# Conflicts:
#	docs/dev/debt/libSceSaveData.native.md
2026-11-03 07:43:23 +05:00
Yunus Shaikh df0b6d335c Merge main into feat/libSceSaveData-event-callbacks
# Conflicts:
#	docs/dev/debt/libSceSaveData.native.md
2026-11-02 03:03:25 -08:00
Yunus Shaikh 62ab6243cb Merge feat/savedata-backup-progress-sourced into feat/libSceSaveData-event-callbacks 2026-11-01 06:54:26 -08:00
Dean Galvin 9b9e850d90 Merge commit 'd8b60b46ed425b117b6fae18900fe6ab81ed6661' into HEAD
# Conflicts:
#	core/libs/prx/libSceSaveData.native/Export.cpp
2026-11-02 03:23:34 +13:00
MarcZX10 351bb88ef4 fix(libSceSaveData): give sceSaveDataGetProgress its signature in the public header
main declares it with an empty parameter list in Api.hpp, which conflicts with the definition.
2026-10-31 22:48:36 +00:00
Yunus Shaikh 36b5e96eb1 Merge feat/savedata-backup-progress-sourced into feat/libSceSaveData-event-callbacks 2026-10-30 23:09:35 +00:00
Yunus Shaikh 842f75d7e0 Merge main into feat/savedata-backup-progress-sourced
JJenkx's #13324 gives isMountedDirectory an std::error_code parameter.
The merge passes one in checkBackupData and restoreBackupData and
returns SAVE_DATA_ERROR_INTERNAL on a host error, as main's callers do.

GuestSaveDataMountStatus.cpp: CheckBackups writes param.json where
ResolvePath_nid_no_patch puts /app0/sce_sys/param.json, not under the
working directory. #13324's CheckHostMountFailures now resolves the
first guest path from its mount-host-failures subdirectory, so /app0
maps there, and checkBackupData didn't find the title's param.json.
2026-10-30 23:09:34 +00:00
Adrià 745752537d Merge pull request #13218 from kyon-eth/feat/save-data-320-exports
feat(libSceSaveData): declare additional callable exports
2026-10-30 23:52:36 +01:00
Yunus Shaikh 629477b800 feat(libSceSaveData): deliver backup completions to a registered event callback
sceSaveDataRegisterEventCallback and sceSaveDataUnregisterEventCallback
were parameterless declarations that threw. They now follow shadPS4
#5226: registering before initialization is NOT_INITIALIZED, a null
callback is PARAMETER, a second registration replaces the callback and
its userdata, and unregistering needs no initialization.

Every backup completion that queues an event for
sceSaveDataGetEventResult, type 2 from sceSaveDataBackup and type 1 from
sceSaveDataUmountWithBackup, is queued for polling first and then handed
to the callback registered at that moment. A library thread delivers it:
sceSaveDataInitialize3 starts it with scePthreadCreate, as
libSceUsbStorage starts its monitor, so the callback runs on a guest
thread, and the last sceSaveDataTerminate joins it. Unregistering waits
for a running callback and drops completions not yet delivered, and a
terminate from inside the callback returns BUSY instead of joining its
own thread, as shadPS4 does.

guest_savedata_event_callback covers the errors, both event types, the
delivering thread, unregistration, replacement, a terminate from inside
the callback and an idle terminate followed by a restart.
2026-10-30 09:57:33 +00:00
Kyon 6db8e8c678 feat(libSceSaveData): declare additional callable exports 2026-10-30 06:46:06 +00:00
Codex 2299b471cb feat(savedata): retain seven inventory exports within reviewed scope 2026-10-30 03:22:06 +02:00
Codex d058e59ffd feat(savedata): add missing cloud and sync inventory exports 2026-10-30 00:20:59 +02:00
zaryabzip bc6a5e4ea1 feat(libSceSaveData): initialize through sceSaveDataInitialize2 2026-10-29 04:16:14 +05:00
Yunus Shaikh 5fed277cf2 feat(libSceSaveData): implement sceSaveDataCheckBackupData, sceSaveDataRestoreBackupData and sceSaveDataUmountWithBackup 2026-10-28 21:18:18 +00:00
MarcZX10 1842be8ecc fix(libSceSaveData): give sceSaveDataGetProgress its signature in the public header
main declares it with an empty parameter list in Api.hpp, which conflicts with the definition.
2026-10-28 13:54:45 +00:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00