diff --git a/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp b/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp index 58d0df01d0..0b29465729 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSaveData.cpp @@ -306,7 +306,7 @@ s32 modifySaveDataFiles(vm::ptr funcFile, vm::ptrWarning("modifySaveDataFiles: File operation CELL_SAVEDATA_FILEOP_WRITE_NOTRUNC not yet implemented"); + cellSysutil->Todo("modifySaveDataFiles: CELL_SAVEDATA_FILEOP_WRITE_NOTRUNC"); break; default: @@ -317,16 +317,22 @@ s32 modifySaveDataFiles(vm::ptr funcFile, vm::ptrIsOpened()) file->Close(); } - return CELL_SAVEDATA_RET_OK; + return CELL_OK; } // Functions -int cellSaveDataListSave2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcList, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataListSave2( + u32 version, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataListSave2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataListSave2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -380,8 +386,8 @@ int cellSaveDataListSave2(u32 version, vm::ptr setList, vm: if (listSet->newData) addNewSaveDataEntry(saveEntries, vm::ptr::make(listSet->newData.addr())); if (saveEntries.size() == 0) { - cellSysutil->Warning("cellSaveDataListSave2: No save entries found!"); // TODO: Find a better way to handle this error - return CELL_SAVEDATA_RET_OK; + cellSysutil->Error("cellSaveDataListSave2: No save entries found!"); // TODO: Find a better way to handle this error + return CELL_OK; } u32 focusIndex = focusSaveDataEntry(saveEntries, listSet->focusPosition); @@ -407,11 +413,17 @@ int cellSaveDataListSave2(u32 version, vm::ptr setList, vm: return ret; } -int cellSaveDataListLoad2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcList, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataListLoad2( + u32 version, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataListLoad2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataListLoad2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -466,8 +478,8 @@ int cellSaveDataListLoad2(u32 version, vm::ptr setList, vm: if (listSet->newData) addNewSaveDataEntry(saveEntries, vm::ptr::make(listSet->newData.addr())); if (saveEntries.size() == 0) { - cellSysutil->Warning("cellSaveDataListLoad2: No save entries found!"); // TODO: Find a better way to handle this error - return CELL_SAVEDATA_RET_OK; + cellSysutil->Error("cellSaveDataListLoad2: No save entries found!"); // TODO: Find a better way to handle this error + return CELL_OK; } u32 focusIndex = focusSaveDataEntry(saveEntries, listSet->focusPosition); @@ -493,11 +505,17 @@ int cellSaveDataListLoad2(u32 version, vm::ptr setList, vm: return ret; } -int cellSaveDataFixedSave2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcFixed, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataFixedSave2( + u32 version, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataFixedSave2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataFixedSave2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -563,11 +581,17 @@ int cellSaveDataFixedSave2(u32 version, vm::ptr setList, v return ret; } -int cellSaveDataFixedLoad2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcFixed, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataFixedLoad2( + u32 version, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataFixedLoad2(version=%d, setList_addr=0x%x, setBuf=0x%x, funcList=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataFixedLoad2(version=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -633,11 +657,17 @@ int cellSaveDataFixedLoad2(u32 version, vm::ptr setList, v return ret; } -int cellSaveDataAutoSave2(u32 version, vm::ptr dirName, u32 errDialog, vm::ptr setBuf, - vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataAutoSave2( + u32 version, + vm::ptr dirName, + u32 errDialog, + vm::ptr setBuf, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataAutoSave2(version=%d, dirName_addr=0x%x, errDialog=%d, setBuf=0x%x, funcList=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataAutoSave2(version=%d, dirName_addr=0x%x, errDialog=%d, setBuf_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, dirName.addr(), errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -685,14 +715,20 @@ int cellSaveDataAutoSave2(u32 version, vm::ptr dirName, u32 errDialo // Enter the loop where the save files are read/created/deleted. s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName); - return CELL_SAVEDATA_RET_OK; + return CELL_OK; } -int cellSaveDataAutoLoad2(u32 version, vm::ptr dirName, u32 errDialog, vm::ptr setBuf, - vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata) +s32 cellSaveDataAutoLoad2( + u32 version, + vm::ptr dirName, + u32 errDialog, + vm::ptr setBuf, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Warning("cellSaveDataAutoLoad2(version=%d, dirName_addr=0x%x, errDialog=%d, setBuf=0x%x, funcList=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Warning("cellSaveDataAutoLoad2(version=%d, dirName_addr=0x%x, errDialog=%d, setBuf_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, dirName.addr(), errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); vm::var result; @@ -715,7 +751,7 @@ int cellSaveDataAutoLoad2(u32 version, vm::ptr dirName, u32 errDialo // The target entry does not exist if (saveEntries.size() == 0) { - cellSysutil->Warning("cellSaveDataAutoLoad2: Couldn't find save entry (%s)", dirN.c_str()); + cellSysutil->Error("cellSaveDataAutoLoad2: Couldn't find save entry (%s)", dirN.c_str()); return CELL_OK; // TODO: Can anyone check the actual behaviour of a PS3 when saves are not found? } @@ -735,13 +771,21 @@ int cellSaveDataAutoLoad2(u32 version, vm::ptr dirName, u32 errDialo // Enter the loop where the save files are read/created/deleted. s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName); - return CELL_SAVEDATA_RET_OK; + return CELL_OK; } -int cellSaveDataListAutoSave(u32 version, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, vm::ptr userdata) +s32 cellSaveDataListAutoSave( + u32 version, + u32 errDialog, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataListAutoSave(version=%d, errDialog=%d, setBuf=0x%x, funcFixed=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", + cellSysutil->Todo("cellSaveDataListAutoSave(version=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", version, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); //vm::var result; @@ -792,19 +836,10 @@ int cellSaveDataListAutoSave(u32 version, u32 errDialog, vm::ptrfixedList.addr(), listSet->fixedListNum); - //if (listSet->newData) - // addNewSaveDataEntry(saveEntries, (u32)listSet->newData.addr()); - //if (saveEntries.size() == 0) { - // cellSysutil->Warning("cellSaveDataListAutoSave: No save entries found!"); // TODO: Find a better way to handle this error - // return CELL_SAVEDATA_RET_OK; - //} - - //u32 focusIndex = focusSaveDataEntry(saveEntries, listSet->focusPosition); - //// TODO: Display the dialog here - //u32 selectedIndex = focusIndex; // TODO: Until the dialog is implemented, select always the focused entry - //getSaveDataStat(saveEntries[selectedIndex], statGet.addr()); - //result->userdata_addr = userdata_addr; + //setSaveDataFixed(saveEntries, fixedSet); + //getSaveDataStat(saveEntries[0], statGet); // There should be only one element in this list + //// TODO: Display the Yes|No dialog here + //result->userdata = userdata; //funcStat(result, statGet, statSet); //Memory.Free(statGet->fileList.addr()); @@ -814,19 +849,27 @@ int cellSaveDataListAutoSave(u32 version, u32 errDialog, vm::ptrsetParam) - //addNewSaveDataEntry(saveEntries, (u32)listSet->newData.addr()); // TODO: This *is* wrong + //// TODO: Write PARAM.SFO file //*/ //// Enter the loop where the save files are read/created/deleted. //s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName); - return CELL_SAVEDATA_RET_OK; + return CELL_OK; } -int cellSaveDataListAutoLoad(u32 version, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, vm::ptr userdata) +s32 cellSaveDataListAutoLoad( + u32 version, + u32 errDialog, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataListAutoLoad(version=%d, errDialog=%d, setBuf=0x%x, funcFixed=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", - version, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + cellSysutil->Todo("cellSaveDataListAutoLoad(version=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); //vm::var result; //vm::var listGet; @@ -876,193 +919,411 @@ int cellSaveDataListAutoLoad(u32 version, u32 errDialog, vm::ptrfixedList.addr(), listSet->fixedListNum); - //if (listSet->newData) - // addNewSaveDataEntry(saveEntries, (u32)listSet->newData.addr()); - //if (saveEntries.size() == 0) { - // cellSysutil->Warning("cellSaveDataListAutoLoad: No save entries found!"); // TODO: Find a better way to handle this error - // return CELL_SAVEDATA_RET_OK; - //} + //setSaveDataFixed(saveEntries, fixedSet); + //getSaveDataStat(saveEntries[0], statGet); // There should be only one element in this list + //// TODO: Display the Yes|No dialog here + //result->userdata = userdata; - //u32 focusIndex = focusSaveDataEntry(saveEntries, listSet->focusPosition); - //// TODO: Display the dialog here - //u32 selectedIndex = focusIndex; // TODO: Until the dialog is implemented, select always the focused entry - //getSaveDataStat(saveEntries[selectedIndex], statGet.addr()); - //result->userdata_addr = userdata_addr; - - //funcStat(result.addr(), statGet.addr(), statSet.addr()); + //funcStat(result, statGet, statSet); //Memory.Free(statGet->fileList.addr()); - //if (result->result < 0) { - // cellSysutil->Error("cellSaveDataListAutoLoad: CellSaveDataStatCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message. + // cellSysutil->Error("cellSaveDataFixedLoad2: CellSaveDataStatCallback failed."); // TODO: Once we verify that the entire SysCall is working, delete this debug error message. // return CELL_SAVEDATA_ERROR_CBRESULT; //} - ///*if (statSet->setParam) //// TODO: Write PARAM.SFO file //*/ //// Enter the loop where the save files are read/created/deleted. //s32 ret = modifySaveDataFiles(funcFile, result, saveBaseDir + (char*)statGet->dir.dirName); - return CELL_SAVEDATA_RET_OK; + return CELL_OK; } -int cellSaveDataDelete2(u32 container) +s32 cellSaveDataDelete2(u32 container) { - cellSysutil->Todo("cellSaveDataDelete2(container=0x%x)", container); + cellSysutil->Todo("cellSaveDataDelete2(container=%d)", container); + return CELL_SAVEDATA_RET_CANCEL; } -int cellSaveDataFixedDelete(vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, vm::ptr funcDone, - u32 container, u32 userdata_addr) +s32 cellSaveDataFixedDelete( + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataFixedDelete(setList=0x%x, setBuf=0x%x, funcFixed=0x%x, funcDone=0x%x, container=0x%x, userdata_addr=0x%x)", setList.addr(), setBuf.addr(), funcFixed.addr(), - funcDone.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataFixedDelete(setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcDone_addr=0x%x, container=%d, userdata_addr=0x%x)", + setList.addr(), setBuf.addr(), funcFixed.addr(), funcDone.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserListSave(u32 version, u32 userId, vm::ptr setList, vm::ptr setBuf, vm::ptr funcList, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserListSave( + u32 version, + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserListSave(version=%d, userId=%d, setList=0x%x, setBuf=0x%x, funcList=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserListSave(version=%d, userId=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserListLoad(u32 version, u32 userId, vm::ptr setList, vm::ptr setBuf, vm::ptr funcList, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserListLoad( + u32 version, + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserListLoad(version=%d, userId=%d, setList=0x%x, setBuf=0x%x, funcList=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserListLoad(version=%d, userId=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcList_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, setList.addr(), setBuf.addr(), funcList.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserFixedSave(u32 version, u32 userId, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserFixedSave( + u32 version, + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserFixedSave(version=%d, userId=%d, setList=0x%x, setBuf=0x%x, funcFixed=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserFixedSave(version=%d, userId=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserFixedLoad(u32 version, u32 userId, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserFixedLoad( + u32 version, + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserFixedLoad(version=%d, userId=%d, setList=0x%x, setBuf=0x%x, funcFixed=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserFixedLoad(version=%d, userId=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserAutoSave(u32 version, u32 userId, u32 dirName_addr, u32 errDialog, vm::ptr setBuf, vm::ptr funcStat, - vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserAutoSave( + u32 version, + u32 userId, + vm::ptr dirName, + u32 errDialog, + vm::ptr setBuf, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserAutoSave(version=%d, userId=%d, dirName_addr=0x%x, errDialog=%d, setBuf=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, dirName_addr, errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserAutoSave(version=%d, userId=%d, dirName_addr=0x%x, errDialog=%d, setBuf_addr=0x%x, funcStat_addr=0x%x, funcFile=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, dirName.addr(), errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserAutoLoad(u32 version, u32 userId, u32 dirName_addr, u32 errDialog, vm::ptr setBuf, vm::ptr funcStat, - vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserAutoLoad( + u32 version, + u32 userId, + vm::ptr dirName, + u32 errDialog, + vm::ptr setBuf, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("cellSaveDataUserAutoLoad(version=%d, userId=%d, dirName_addr=0x%x, errDialog=%d, setBuf=0x%x, funcStat=0x%x, funcFile=0x%x, container=0x%x, userdata_addr=0x%x)", version, - userId, dirName_addr, errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserAutoLoad(version=%d, userId=%d, dirName_addr=0x%x, errDialog=%d, setBuf_addr=0x%x, funcStat_addr=0x%x, funcFile=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, dirName.addr(), errDialog, setBuf.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserListAutoSave(u32 version, u32 userId, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserListAutoSave( + u32 version, + u32 userId, + u32 errDialog, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("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_addr=0x%x)", - version, userId, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserListAutoSave(version=%d, userId=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserListAutoLoad(u32 version, u32 userId, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, u32 userdata_addr) +s32 cellSaveDataUserListAutoLoad( + u32 version, + u32 userId, + u32 errDialog, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcStat, + vm::ptr funcFile, + u32 container, + vm::ptr userdata) { - cellSysutil->Todo("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_addr=0x%x)", - version, userId, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata_addr); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserListAutoLoad(version=%d, userId=%d, errDialog=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcStat_addr=0x%x, funcFile_addr=0x%x, container=%d, userdata_addr=0x%x)", + version, userId, errDialog, setList.addr(), setBuf.addr(), funcFixed.addr(), funcStat.addr(), funcFile.addr(), container, userdata.addr()); + + return CELL_OK; } -int cellSaveDataUserFixedDelete() //CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataUserFixedDelete( + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcFixed, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { - UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + cellSysutil->Todo("cellSaveDataUserFixedDelete(userId=%d, setList_addr=0x%x, setBuf_addr=0x%x, funcFixed_addr=0x%x, funcDone_addr=0x%x, container=%d, userdata_addr=0x%x)", + userId, setList.addr(), setBuf.addr(), funcFixed.addr(), funcDone.addr(), container, userdata.addr()); + + return CELL_OK; } -//void cellSaveDataEnableOverlay(); //int enable +void cellSaveDataEnableOverlay(s32 enable) +{ + cellSysutil->Todo("cellSaveDataEnableOverlay(enable=%d)", enable); + + return; +} // Functions (Extensions) -int cellSaveDataListDelete() //CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataListDelete( + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataListImport() //CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataListImport( + vm::ptr setList, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataListExport() //CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataListExport( + vm::ptr setList, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataFixedImport() //const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataFixedImport( + vm::ptr dirName, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataFixedExport() //const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataFixedExport( + vm::ptr dirName, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataGetListItem() //const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, vm::ptr bind, vm::ptr sizeKB +s32 cellSaveDataGetListItem( + vm::ptr dirName, + vm::ptr dir, + vm::ptr sysFileParam, + vm::ptr bind, + vm::ptr sizeKB) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserListDelete() //CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataDoneCallback funcDone,sys_memory_container_t container, void *userdata +s32 cellSaveDataUserListDelete( + u32 userId, + vm::ptr setList, + vm::ptr setBuf, + vm::ptr funcList, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserListImport() //CellSysutilUserId userId, CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataUserListImport( + u32 userId, + vm::ptr setList, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserListExport() //CellSysutilUserId userId, CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataUserListExport( + u32 userId, + vm::ptr setList, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserFixedImport() //CellSysutilUserId userId, const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataUserFixedImport( + u32 userId, + vm::ptr dirName, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserFixedExport() //CellSysutilUserId userId, const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata +s32 cellSaveDataUserFixedExport( + u32 userId, + vm::ptr dirName, + u32 maxSizeKB, + vm::ptr funcDone, + u32 container, + vm::ptr userdata) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; } -int cellSaveDataUserGetListItem() //CellSysutilUserId userId, const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, vm::ptr bind, vm::ptr sizeKB +s32 cellSaveDataUserGetListItem( + u32 userId, + vm::ptr dirName, + vm::ptr dir, + vm::ptr sysFileParam, + vm::ptr bind, + vm::ptr sizeKB) { UNIMPLEMENTED_FUNC(cellSysutil); - return CELL_SAVEDATA_RET_OK; + + return CELL_OK; +} + +void cellSysutil_SaveData_init() +{ + // libsysutil functions: + + REG_FUNC(cellSysutil, cellSaveDataEnableOverlay); + + REG_FUNC(cellSysutil, cellSaveDataDelete2); + //REG_FUNC(cellSysutil, cellSaveDataDelete); + REG_FUNC(cellSysutil, cellSaveDataUserFixedDelete); + REG_FUNC(cellSysutil, cellSaveDataFixedDelete); + + REG_FUNC(cellSysutil, cellSaveDataUserFixedLoad); + REG_FUNC(cellSysutil, cellSaveDataUserFixedSave); + REG_FUNC(cellSysutil, cellSaveDataFixedLoad2); + REG_FUNC(cellSysutil, cellSaveDataFixedSave2); + //REG_FUNC(cellSysutil, cellSaveDataFixedLoad); + //REG_FUNC(cellSysutil, cellSaveDataFixedSave); + + REG_FUNC(cellSysutil, cellSaveDataUserListLoad); + REG_FUNC(cellSysutil, cellSaveDataUserListSave); + REG_FUNC(cellSysutil, cellSaveDataListLoad2); + REG_FUNC(cellSysutil, cellSaveDataListSave2); + //REG_FUNC(cellSysutil, cellSaveDataListLoad); + //REG_FUNC(cellSysutil, cellSaveDataListSave); + + REG_FUNC(cellSysutil, cellSaveDataUserListAutoLoad); + REG_FUNC(cellSysutil, cellSaveDataUserListAutoSave); + REG_FUNC(cellSysutil, cellSaveDataListAutoLoad); + REG_FUNC(cellSysutil, cellSaveDataListAutoSave); + + REG_FUNC(cellSysutil, cellSaveDataUserAutoLoad); + REG_FUNC(cellSysutil, cellSaveDataUserAutoSave); + REG_FUNC(cellSysutil, cellSaveDataAutoLoad2); + 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: } diff --git a/rpcs3/Emu/SysCalls/Modules/cellSaveData.h b/rpcs3/Emu/SysCalls/Modules/cellSaveData.h index d03bf2893a..3daa006334 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSaveData.h +++ b/rpcs3/Emu/SysCalls/Modules/cellSaveData.h @@ -257,10 +257,10 @@ 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); +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); // Auxiliary Structs @@ -279,35 +279,3 @@ struct SaveDataEntry u32 iconBufSize; bool isNew; }; - - -// Function declarations -int cellSaveDataListSave2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcList, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataListLoad2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcList, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataFixedSave2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcFixed, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataFixedLoad2(u32 version, vm::ptr setList, vm::ptr setBuf, - vm::ptr funcFixed, vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataAutoSave2(u32 version, vm::ptr dirName, u32 errDialog, vm::ptr setBuf, - vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataAutoLoad2(u32 version, vm::ptr dirName, u32 errDialog, vm::ptr setBuf, - vm::ptr funcStat, vm::ptr funcFile, - u32 container, vm::ptr userdata); - -int cellSaveDataListAutoSave(u32 version, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, vm::ptr userdata); - -int cellSaveDataListAutoLoad(u32 version, u32 errDialog, vm::ptr setList, vm::ptr setBuf, vm::ptr funcFixed, - vm::ptr funcStat, vm::ptr funcFile, u32 container, vm::ptr userdata); \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp b/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp index 5afa9e72dc..44458c905c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp @@ -18,7 +18,6 @@ #include "cellMsgDialog.h" #include "cellGame.h" #include "cellSysutil.h" -#include "cellSaveData.h" typedef void (*CellHddGameStatCallback)(vm::ptr cbResult, vm::ptr get, vm::ptr set); @@ -842,6 +841,8 @@ extern int cellGameDataCheckCreate2(u32 version, vm::ptr dirName, u3 extern int cellGameDataCheckCreate(u32 version, vm::ptr dirName, u32 errDialog, vm::ptr cbResult, vm::ptr get, vm::ptr set)> funcStat, u32 container); +extern void cellSysutil_SaveData_init(); + void cellSysutil_init(Module *pxThis) { cellSysutil = pxThis; @@ -894,36 +895,13 @@ void cellSysutil_init(Module *pxThis) //cellSysutil->AddFunc(0x9ca9ffa7, cellHddGameSetSystemVer); //cellSysutil->AddFunc(0xafd605b3, cellHddGameExitBroken); - //cellSysutil_SaveData - //cellSysutil->AddFunc(0x04c06fc2, cellSaveDataGetListItem); - //cellSysutil->AddFunc(0x273d116a, cellSaveDataUserListExport); - //cellSysutil->AddFunc(0x27cb8bc2, cellSaveDataListDelete); - //cellSysutil->AddFunc(0x39d6ee43, cellSaveDataUserListImport); - //cellSysutil->AddFunc(0x46a2d878, cellSaveDataFixedExport); - //cellSysutil->AddFunc(0x491cc554, cellSaveDataListExport); - //cellSysutil->AddFunc(0x52541151, cellSaveDataFixedImport); - //cellSysutil->AddFunc(0x529231b0, cellSaveDataUserFixedImport); - //cellSysutil->AddFunc(0x6b4e0de6, cellSaveDataListImport); - //cellSysutil->AddFunc(0x7048a9ba, cellSaveDataUserListDelete); - //cellSysutil->AddFunc(0x95ae2cde, cellSaveDataUserFixedExport); - //cellSysutil->AddFunc(0xf6482036, cellSaveDataUserGetListItem); - cellSysutil->AddFunc(0x2de0d663, cellSaveDataListSave2); - cellSysutil->AddFunc(0x1dfbfdd6, cellSaveDataListLoad2); - cellSysutil->AddFunc(0x2aae9ef5, cellSaveDataFixedSave2); - cellSysutil->AddFunc(0x2a8eada2, cellSaveDataFixedLoad2); - cellSysutil->AddFunc(0x8b7ed64b, cellSaveDataAutoSave2); - cellSysutil->AddFunc(0xfbd5c856, cellSaveDataAutoLoad2); - cellSysutil->AddFunc(0x4dd03a4e, cellSaveDataListAutoSave); - cellSysutil->AddFunc(0x21425307, cellSaveDataListAutoLoad); - //cellSysutil->AddFunc(0xedadd797, cellSaveDataDelete2); - //cellSysutil->AddFunc(0x0f03cfb0, cellSaveDataUserListSave); - //cellSysutil->AddFunc(0x39dd8425, cellSaveDataUserListLoad); - //cellSysutil->AddFunc(0x40b34847, cellSaveDataUserFixedSave); - //cellSysutil->AddFunc(0x6e7264ed, cellSaveDataUserFixedLoad); - //cellSysutil->AddFunc(0x52aac4fa, cellSaveDataUserAutoSave); - //cellSysutil->AddFunc(0xcdc6aefd, cellSaveDataUserAutoLoad); - //cellSysutil->AddFunc(0x0e091c36, cellSaveDataUserListAutoSave); - //cellSysutil->AddFunc(0xe7fa820b, cellSaveDataEnableOverlay); + //cellSysutil->AddFunc(0x886D0747, cellSysutilRegisterCallbackDispatcher); + //cellSysutil->AddFunc(0xA2720DF2, cellSysutilPacketWrite); + //cellSysutil->AddFunc(0x75AA7373, doc.write); + //cellSysutil->AddFunc(0x2D96313F, packet_read); + + // cellSaveData functions + cellSysutil_SaveData_init(); cellSysutil->AddFunc(0x6d087930, cellWebBrowserEstimate2);