diff --git a/rpcs3/Emu/SysCalls/ModuleManager.cpp b/rpcs3/Emu/SysCalls/ModuleManager.cpp index 6dfa86ade5..180b9b807c 100644 --- a/rpcs3/Emu/SysCalls/ModuleManager.cpp +++ b/rpcs3/Emu/SysCalls/ModuleManager.cpp @@ -28,6 +28,8 @@ extern Module cellResc; extern Module cellRtc; extern Module cellRudp; extern Module cellSail; +extern Module cellSaveData; +extern Module cellMinisSaveData; extern Module cellScreenshot; extern Module cellSearch; extern Module cellSpurs; @@ -113,7 +115,7 @@ static const g_module_list[] = { 0x0030, "cellUsbpspcm", nullptr }, { 0x0031, "cellAvconfExt", &cellAvconfExt }, { 0x0032, "cellUserInfo", &cellUserInfo }, - { 0x0033, "cellSysutilSavedata", nullptr }, + { 0x0033, "cellSaveData", &cellSaveData }, { 0x0034, "cellSubdisplay", &cellSubdisplay }, { 0x0035, "cellSysutilRec", nullptr }, { 0x0036, "cellVideoExport", nullptr }, @@ -171,6 +173,7 @@ static const g_module_list[] = { -1, "libmixer", &libmixer }, { -1, "sysPrxForUser", &sysPrxForUser }, { -1, "sys_libc", &sys_libc }, + { -1, "cellMinisSaveData", &cellMinisSaveData }, }; void ModuleManager::Init() diff --git a/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp b/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp index 089874f152..38e7604d5e 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp @@ -33,7 +33,7 @@ enum : u32 }; never_inline s32 savedata_op( - PPUThread& CPU, + PPUThread& ppu, u32 operation, u32 version, vm::cptr dirName, @@ -63,7 +63,7 @@ never_inline s32 savedata_op( // path of the specified user (00000001 by default) const std::string base_dir = fmt::format("/dev_hdd0/home/%08d/savedata/", userId ? userId : 1u); - vm::stackvar result(CPU); + vm::stackvar result(ppu); result->userdata = userdata; // probably should be assigned only once (allows the callback to change it) @@ -73,7 +73,7 @@ never_inline s32 savedata_op( { std::vector save_entries; - vm::stackvar listGet(CPU); + vm::stackvar listGet(ppu); listGet->dirNum = 0; listGet->dirListNum = 0; @@ -184,10 +184,10 @@ never_inline s32 savedata_op( if (funcList) { - vm::stackvar listSet(CPU); + vm::stackvar listSet(ppu); // List Callback - funcList(CPU, result, listGet, listSet); + funcList(ppu, result, listGet, listSet); if (result->result < 0) { @@ -296,10 +296,10 @@ never_inline s32 savedata_op( if (funcFixed) { - vm::stackvar fixedSet(CPU); + vm::stackvar fixedSet(ppu); // Fixed Callback - funcFixed(CPU, result, listGet, fixedSet); + funcFixed(ppu, result, listGet, fixedSet); if (result->result < 0) { @@ -353,8 +353,8 @@ never_inline s32 savedata_op( // Get save stats { - vm::stackvar statGet(CPU); - vm::stackvar statSet(CPU); + vm::stackvar statGet(ppu); + vm::stackvar statSet(ppu); std::string dir_local_path; @@ -434,7 +434,7 @@ never_inline s32 savedata_op( } // Stat Callback - funcStat(CPU, result, statGet, statSet); + funcStat(ppu, result, statGet, statSet); if (result->result < 0) { @@ -495,15 +495,15 @@ never_inline s32 savedata_op( } // Enter the loop where the save files are read/created/deleted - vm::stackvar fileGet(CPU); - vm::stackvar fileSet(CPU); + vm::stackvar fileGet(ppu); + vm::stackvar fileSet(ppu); fileGet->excSize = 0; memset(fileGet->reserved, 0, sizeof(fileGet->reserved)); while (funcFile) { - funcFile(CPU, result, fileGet, fileSet); + funcFile(ppu, result, fileGet, fileSet); if (result->result < 0) { @@ -618,7 +618,7 @@ never_inline s32 savedata_op( // Functions s32 cellSaveDataListSave2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::ptr setList, vm::ptr setBuf, @@ -631,11 +631,11 @@ s32 cellSaveDataListSave2( cellSysutil.Warning("cellSaveDataListSave2(version=%d, setList=*0x%x, setBuf=*0x%x, funcList=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, setList, setBuf, funcList, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_SAVE, version, vm::null, 1, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_SAVE, version, vm::null, 1, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataListLoad2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::ptr setList, vm::ptr setBuf, @@ -648,11 +648,11 @@ s32 cellSaveDataListLoad2( cellSysutil.Warning("cellSaveDataListLoad2(version=%d, setList=*0x%x, setBuf=*0x%x, funcList=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, setList, setBuf, funcList, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_LOAD, version, vm::null, 1, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_LOAD, version, vm::null, 1, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataFixedSave2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::ptr setList, vm::ptr setBuf, @@ -665,11 +665,11 @@ s32 cellSaveDataFixedSave2( cellSysutil.Warning("cellSaveDataFixedSave2(version=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_FIXED_SAVE, version, vm::null, 1, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_FIXED_SAVE, version, vm::null, 1, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataFixedLoad2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::ptr setList, vm::ptr setBuf, @@ -682,11 +682,11 @@ s32 cellSaveDataFixedLoad2( cellSysutil.Warning("cellSaveDataFixedLoad2(version=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_FIXED_LOAD, version, vm::null, 1, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_FIXED_LOAD, version, vm::null, 1, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataAutoSave2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::cptr dirName, u32 errDialog, @@ -699,11 +699,11 @@ s32 cellSaveDataAutoSave2( cellSysutil.Warning("cellSaveDataAutoSave2(version=%d, dirName=*0x%x, errDialog=%d, setBuf=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, dirName, errDialog, setBuf, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_AUTO_SAVE, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_AUTO_SAVE, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataAutoLoad2( - PPUThread& CPU, + PPUThread& ppu, u32 version, vm::cptr dirName, u32 errDialog, @@ -716,11 +716,11 @@ s32 cellSaveDataAutoLoad2( cellSysutil.Warning("cellSaveDataAutoLoad2(version=%d, dirName=*0x%x, errDialog=%d, setBuf=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, dirName, errDialog, setBuf, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_AUTO_LOAD, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_AUTO_LOAD, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 2, userdata, 0, vm::null); } s32 cellSaveDataListAutoSave( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 errDialog, vm::ptr setList, @@ -734,11 +734,11 @@ s32 cellSaveDataListAutoSave( cellSysutil.Warning("cellSaveDataListAutoSave(version=%d, errDialog=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, errDialog, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_AUTO_SAVE, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 0, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_AUTO_SAVE, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 0, userdata, 0, vm::null); } s32 cellSaveDataListAutoLoad( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 errDialog, vm::ptr setList, @@ -752,7 +752,7 @@ s32 cellSaveDataListAutoLoad( cellSysutil.Warning("cellSaveDataListAutoLoad(version=%d, errDialog=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, errDialog, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_AUTO_LOAD, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 0, userdata, 0, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_AUTO_LOAD, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 0, userdata, 0, vm::null); } s32 cellSaveDataDelete2(u32 container) @@ -763,7 +763,7 @@ s32 cellSaveDataDelete2(u32 container) } s32 cellSaveDataFixedDelete( - PPUThread& CPU, + PPUThread& ppu, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, @@ -778,7 +778,7 @@ s32 cellSaveDataFixedDelete( } s32 cellSaveDataUserListSave( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::ptr setList, @@ -792,11 +792,11 @@ s32 cellSaveDataUserListSave( cellSysutil.Error("cellSaveDataUserListSave(version=%d, userId=%d, setList=*0x%x, setBuf=*0x%x, funcList=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, setList, setBuf, funcList, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_SAVE, version, vm::null, 0, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_SAVE, version, vm::null, 0, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserListLoad( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::ptr setList, @@ -810,11 +810,11 @@ s32 cellSaveDataUserListLoad( cellSysutil.Error("cellSaveDataUserListLoad(version=%d, userId=%d, setList=*0x%x, setBuf=*0x%x, funcList=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, setList, setBuf, funcList, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_LOAD, version, vm::null, 0, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_LOAD, version, vm::null, 0, setList, setBuf, funcList, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserFixedSave( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::ptr setList, @@ -828,11 +828,11 @@ s32 cellSaveDataUserFixedSave( cellSysutil.Error("cellSaveDataUserFixedSave(version=%d, userId=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_FIXED_SAVE, version, vm::null, 0, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_FIXED_SAVE, version, vm::null, 0, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserFixedLoad( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::ptr setList, @@ -846,11 +846,11 @@ s32 cellSaveDataUserFixedLoad( cellSysutil.Error("cellSaveDataUserFixedLoad(version=%d, userId=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_FIXED_LOAD, version, vm::null, 0, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_FIXED_LOAD, version, vm::null, 0, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserAutoSave( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::cptr dirName, @@ -864,11 +864,11 @@ s32 cellSaveDataUserAutoSave( cellSysutil.Error("cellSaveDataUserAutoSave(version=%d, userId=%d, dirName=*0x%x, errDialog=%d, setBuf=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, dirName, errDialog, setBuf, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_AUTO_SAVE, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_AUTO_SAVE, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserAutoLoad( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, vm::cptr dirName, @@ -882,11 +882,11 @@ s32 cellSaveDataUserAutoLoad( cellSysutil.Error("cellSaveDataUserAutoLoad(version=%d, userId=%d, dirName=*0x%x, errDialog=%d, setBuf=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, dirName, errDialog, setBuf, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_AUTO_LOAD, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_AUTO_LOAD, version, dirName, errDialog, vm::null, setBuf, vm::null, vm::null, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserListAutoSave( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, u32 errDialog, @@ -901,11 +901,11 @@ s32 cellSaveDataUserListAutoSave( cellSysutil.Error("cellSaveDataUserListAutoSave(version=%d, userId=%d, errDialog=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, errDialog, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_AUTO_SAVE, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_AUTO_SAVE, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserListAutoLoad( - PPUThread& CPU, + PPUThread& ppu, u32 version, u32 userId, u32 errDialog, @@ -920,11 +920,11 @@ s32 cellSaveDataUserListAutoLoad( cellSysutil.Error("cellSaveDataUserListAutoLoad(version=%d, userId=%d, errDialog=%d, setList=*0x%x, setBuf=*0x%x, funcFixed=*0x%x, funcStat=*0x%x, funcFile=*0x%x, container=0x%x, userdata=*0x%x)", version, userId, errDialog, setList, setBuf, funcFixed, funcStat, funcFile, container, userdata); - return savedata_op(CPU, SAVEDATA_OP_LIST_AUTO_LOAD, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); + return savedata_op(ppu, SAVEDATA_OP_LIST_AUTO_LOAD, version, vm::null, errDialog, setList, setBuf, vm::null, funcFixed, funcStat, funcFile, container, 6, userdata, userId, vm::null); } s32 cellSaveDataUserFixedDelete( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::ptr setList, vm::ptr setBuf, @@ -949,7 +949,7 @@ void cellSaveDataEnableOverlay(s32 enable) // Functions (Extensions) s32 cellSaveDataListDelete( - PPUThread& CPU, + PPUThread& ppu, vm::ptr setList, vm::ptr setBuf, vm::ptr funcList, @@ -957,59 +957,59 @@ s32 cellSaveDataListDelete( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataListImport( - PPUThread& CPU, + PPUThread& ppu, vm::ptr setList, u32 maxSizeKB, vm::ptr funcDone, u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataListExport( - PPUThread& CPU, + PPUThread& ppu, vm::ptr setList, u32 maxSizeKB, vm::ptr funcDone, u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataFixedImport( - PPUThread& CPU, + PPUThread& ppu, vm::cptr dirName, u32 maxSizeKB, vm::ptr funcDone, u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataFixedExport( - PPUThread& CPU, + PPUThread& ppu, vm::cptr dirName, u32 maxSizeKB, vm::ptr funcDone, u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } @@ -1021,13 +1021,13 @@ s32 cellSaveDataGetListItem( vm::ptr bind, vm::ptr sizeKB) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataUserListDelete( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::ptr setList, vm::ptr setBuf, @@ -1036,13 +1036,13 @@ s32 cellSaveDataUserListDelete( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataUserListImport( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::ptr setList, u32 maxSizeKB, @@ -1050,13 +1050,13 @@ s32 cellSaveDataUserListImport( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataUserListExport( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::ptr setList, u32 maxSizeKB, @@ -1064,13 +1064,13 @@ s32 cellSaveDataUserListExport( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataUserFixedImport( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::cptr dirName, u32 maxSizeKB, @@ -1078,13 +1078,13 @@ s32 cellSaveDataUserFixedImport( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } s32 cellSaveDataUserFixedExport( - PPUThread& CPU, + PPUThread& ppu, u32 userId, vm::cptr dirName, u32 maxSizeKB, @@ -1092,7 +1092,7 @@ s32 cellSaveDataUserFixedExport( u32 container, vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } @@ -1105,7 +1105,7 @@ s32 cellSaveDataUserGetListItem( vm::ptr bind, vm::ptr sizeKB) { - UNIMPLEMENTED_FUNC(cellSysutil); + UNIMPLEMENTED_FUNC(cellSaveData); return CELL_OK; } @@ -1113,7 +1113,6 @@ s32 cellSaveDataUserGetListItem( void cellSysutil_SaveData_init() { // libsysutil functions: - REG_FUNC(cellSysutil, cellSaveDataEnableOverlay); REG_FUNC(cellSysutil, cellSaveDataDelete2); @@ -1146,20 +1145,36 @@ void cellSysutil_SaveData_init() REG_FUNC(cellSysutil, cellSaveDataAutoSave2); //REG_FUNC(cellSysutil, cellSaveDataAutoLoad); //REG_FUNC(cellSysutil, cellSaveDataAutoSave); - - // libsysutil_savedata functions: - REG_FUNC(cellSysutil, cellSaveDataUserGetListItem); - REG_FUNC(cellSysutil, cellSaveDataGetListItem); - REG_FUNC(cellSysutil, cellSaveDataUserListDelete); - REG_FUNC(cellSysutil, cellSaveDataListDelete); - REG_FUNC(cellSysutil, cellSaveDataUserFixedExport); - REG_FUNC(cellSysutil, cellSaveDataUserFixedImport); - REG_FUNC(cellSysutil, cellSaveDataUserListExport); - REG_FUNC(cellSysutil, cellSaveDataUserListImport); - REG_FUNC(cellSysutil, cellSaveDataFixedExport); - REG_FUNC(cellSysutil, cellSaveDataFixedImport); - REG_FUNC(cellSysutil, cellSaveDataListExport); - REG_FUNC(cellSysutil, cellSaveDataListImport); - - // libsysutil_savedata_psp functions: } + +Module cellSaveData("cellSaveData", []() +{ + // libsysutil_savedata functions: + REG_FUNC(cellSaveData, cellSaveDataUserGetListItem); + REG_FUNC(cellSaveData, cellSaveDataGetListItem); + REG_FUNC(cellSaveData, cellSaveDataUserListDelete); + REG_FUNC(cellSaveData, cellSaveDataListDelete); + REG_FUNC(cellSaveData, cellSaveDataUserFixedExport); + REG_FUNC(cellSaveData, cellSaveDataUserFixedImport); + REG_FUNC(cellSaveData, cellSaveDataUserListExport); + REG_FUNC(cellSaveData, cellSaveDataUserListImport); + REG_FUNC(cellSaveData, cellSaveDataFixedExport); + REG_FUNC(cellSaveData, cellSaveDataFixedImport); + REG_FUNC(cellSaveData, cellSaveDataListExport); + REG_FUNC(cellSaveData, cellSaveDataListImport); +}); + +Module cellMinisSaveData("cellMinisSaveData", []() +{ + // libsysutil_savedata_psp functions: + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataDelete); // 0x6eb168b3 + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataListDelete); // 0xe63eb964 + + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataFixedLoad); // 0x66515c18 + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataFixedSave); // 0xf3f974b8 + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataListLoad); // 0xba161d45 + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataListSave); // 0xa342a73f + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataListAutoLoad); // 0x22f2a553 + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataListAutoSave); // 0xa931356e + //REG_FUNC(cellMinisSaveData, cellMinisSaveDataAutoLoad); // 0xfc3045d9 +}); diff --git a/rpcs3/Emu/SysCalls/Modules/cellSaveData.h b/rpcs3/Emu/SysCalls/Modules/cellSaveData.h index 5e7e4e71b5..9101d75c0d 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSaveData.h +++ b/rpcs3/Emu/SysCalls/Modules/cellSaveData.h @@ -265,11 +265,11 @@ struct CellSaveDataDoneGet // Callback Functions -typedef void(CellSaveDataFixedCallback)(vm::ptr cbResult, vm::ptr get, vm::ptr set); -typedef void(CellSaveDataListCallback)(vm::ptr cbResult, vm::ptr get, vm::ptr set); -typedef void(CellSaveDataStatCallback)(vm::ptr cbResult, vm::ptr get, vm::ptr set); -typedef void(CellSaveDataFileCallback)(vm::ptr cbResult, vm::ptr get, vm::ptr set); -typedef void(CellSaveDataDoneCallback)(vm::ptr cbResult, vm::ptr get); +using CellSaveDataFixedCallback = void(vm::ptr cbResult, vm::ptr get, vm::ptr set); +using CellSaveDataListCallback = void(vm::ptr cbResult, vm::ptr get, vm::ptr set); +using CellSaveDataStatCallback = void(vm::ptr cbResult, vm::ptr get, vm::ptr set); +using CellSaveDataFileCallback = void(vm::ptr cbResult, vm::ptr get, vm::ptr set); +using CellSaveDataDoneCallback = void(vm::ptr cbResult, vm::ptr get); // Auxiliary Structs @@ -298,3 +298,5 @@ struct SaveDataDialogInstance virtual s32 ShowSaveDataList(std::vector& save_entries, s32 focused, vm::ptr listSet) = 0; }; + +extern class Module cellSaveData;