diff --git a/nx/include/switch/services/fs.h b/nx/include/switch/services/fs.h index 7b1fadf8..c0d549f6 100644 --- a/nx/include/switch/services/fs.h +++ b/nx/include/switch/services/fs.h @@ -179,8 +179,8 @@ typedef enum } FsFileSystemType; /// Mount requested filesystem type from content file -Result fsOpenFileSystem(FsFileSystem* out, u64 titleId, FsFileSystemType fsType); /// only on 1.0.0, only works with registered content -Result fsOpenFileSystemWithId(FsFileSystem* out, u64 titleId, FsFileSystemType fsType, const char* contentPath); /// 2.0.0+, contentPath must be resolved manually +Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath); /// only on 1.0.0 +Result fsOpenFileSystemWithId(FsFileSystem* out, u64 titleId, FsFileSystemType fsType, const char* contentPath); /// 2.0.0+ // IFileSystem Result fsFsCreateFile(FsFileSystem* fs, const char* path, size_t size, int flags); diff --git a/nx/source/services/fs.c b/nx/source/services/fs.c index f36c273d..d1479185 100644 --- a/nx/source/services/fs.c +++ b/nx/source/services/fs.c @@ -432,15 +432,18 @@ Result fsMount_SystemSaveData(FsFileSystem* out, u64 saveID) { return fsMountSystemSaveData(out, FsSaveDataSpaceId_NandSystem, &save); } -Result fsOpenFileSystem(FsFileSystem* out, u64 titleId, FsFileSystemType fsType) { +Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath) { + char sendStr[FS_MAX_PATH] = {0}; + strncpy(sendStr, contentPath, sizeof(sendStr)-1); + IpcCommand c; ipcInitialize(&c); + ipcAddSendStatic(&c, sendStr, sizeof(sendStr), 0); struct { u64 magic; u64 cmd_id; u32 fsType; - u64 titleId; } *raw; raw = ipcPrepareHeader(&c, sizeof(*raw)); @@ -448,7 +451,6 @@ Result fsOpenFileSystem(FsFileSystem* out, u64 titleId, FsFileSystemType fsType) raw->magic = SFCI_MAGIC; raw->cmd_id = 0; raw->fsType = fsType; - raw->titleId = titleId; Result rc = serviceIpcDispatch(&g_fsSrv);