diff --git a/nx/include/switch/runtime/devices/fs_dev.h b/nx/include/switch/runtime/devices/fs_dev.h index b6887f38..a3188135 100644 --- a/nx/include/switch/runtime/devices/fs_dev.h +++ b/nx/include/switch/runtime/devices/fs_dev.h @@ -34,7 +34,7 @@ Result fsdevMountSdmc(void); Result fsdevMountSaveData(const char *name, u64 titleID, AccountUid userID); /// Mounts the specified system save data. -Result fsdevMountSystemSaveData(const char *name, u64 saveID); +Result fsdevMountSystemSaveData(const char *name, FsSaveDataSpaceId saveDataSpaceId, u64 saveID, AccountUid userID); /// Mounts the input fs with the specified device name. fsdev will handle closing the fs when required, including when fsdevMountDevice() fails. /// Returns -1 when any errors occur. diff --git a/nx/include/switch/services/fs.h b/nx/include/switch/services/fs.h index 6003c62d..36d16156 100644 --- a/nx/include/switch/services/fs.h +++ b/nx/include/switch/services/fs.h @@ -330,7 +330,7 @@ Result fsOpen_SaveData(FsFileSystem* out, u64 titleID, AccountUid userID); /// Wrapper for fsOpenSaveDataFileSystemBySystemSaveDataId. /// WARNING: You can brick when writing to SystemSaveData, if the data is corrupted etc. -Result fsOpen_SystemSaveData(FsFileSystem* out, u64 saveID); +Result fsOpen_SystemSaveData(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, u64 saveID, AccountUid userID); typedef enum { diff --git a/nx/source/runtime/devices/fs_dev.c b/nx/source/runtime/devices/fs_dev.c index 385b345a..f0e4082f 100644 --- a/nx/source/runtime/devices/fs_dev.c +++ b/nx/source/runtime/devices/fs_dev.c @@ -456,10 +456,10 @@ Result fsdevMountSaveData(const char *name, u64 titleID, AccountUid userID) return rc; } -Result fsdevMountSystemSaveData(const char *name, u64 saveID) +Result fsdevMountSystemSaveData(const char *name, FsSaveDataSpaceId saveDataSpaceId, u64 saveID, AccountUid userID) { FsFileSystem fs; - Result rc = fsOpen_SystemSaveData(&fs, saveID); + Result rc = fsOpen_SystemSaveData(&fs, saveDataSpaceId, saveID, userID); if(R_SUCCEEDED(rc)) { int ret = fsdevMountDevice(name, fs); diff --git a/nx/source/services/fs.c b/nx/source/services/fs.c index d09e7da3..7afed1b1 100644 --- a/nx/source/services/fs.c +++ b/nx/source/services/fs.c @@ -467,14 +467,15 @@ Result fsOpen_SaveData(FsFileSystem* out, u64 titleID, AccountUid userID) { return fsOpenSaveDataFileSystem(out, FsSaveDataSpaceId_NandUser, &save); } -Result fsOpen_SystemSaveData(FsFileSystem* out, u64 saveID) { +Result fsOpen_SystemSaveData(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, u64 saveID, AccountUid userID) { FsSave save; memset(&save, 0, sizeof(save)); + save.userID = userID; save.saveID = saveID; save.saveDataType = FsSaveDataType_SystemSaveData; - return fsOpenSaveDataFileSystemBySystemSaveDataId(out, FsSaveDataSpaceId_NandSystem, &save); + return fsOpenSaveDataFileSystemBySystemSaveDataId(out, saveDataSpaceId, &save); } Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath) {