Small fixes in sceNpTrophy and cellSaveData

* Added cellSaveData.cpp to the project.
* Fixed wrong cellSaveData structs.
* Fixed compilation problem caused by the switch/case statements
introduced in sceNpTrophy and TROPUSR.cpp in the last commit
This commit is contained in:
Alexandro Sánchez Bach 2014-03-21 00:46:27 +01:00
parent f86ac251a8
commit ad7ac17647
5 changed files with 138 additions and 112 deletions

View file

@ -2,6 +2,7 @@
#include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/SysCalls.h"
#include "Emu/SysCalls/SC_FUNC.h" #include "Emu/SysCalls/SC_FUNC.h"
// TODO: Is this really a module? Or is everything part of cellSysutil?
void cellSaveData_init(); void cellSaveData_init();
Module cellSaveData("cellSaveData", cellSaveData_init); Module cellSaveData("cellSaveData", cellSaveData_init);
@ -21,206 +22,227 @@ enum
CELL_SAVEDATA_ERROR_NOUSER, CELL_SAVEDATA_ERROR_NOUSER,
}; };
// Constants
enum
{
// CellSaveDataParamSize
CELL_SAVEDATA_DIRNAME_SIZE = 32,
CELL_SAVEDATA_FILENAME_SIZE = 13,
CELL_SAVEDATA_SECUREFILEID_SIZE = 16,
CELL_SAVEDATA_PREFIX_SIZE = 256,
CELL_SAVEDATA_LISTITEM_MAX = 2048,
CELL_SAVEDATA_SECUREFILE_MAX = 113,
CELL_SAVEDATA_DIRLIST_MAX = 2048,
CELL_SAVEDATA_INVALIDMSG_MAX = 256,
CELL_SAVEDATA_INDICATORMSG_MAX = 64,
// CellSaveDataSystemParamSize
CELL_SAVEDATA_SYSP_TITLE_SIZE = 128,
CELL_SAVEDATA_SYSP_SUBTITLE_SIZE = 128,
CELL_SAVEDATA_SYSP_DETAIL_SIZE = 1024,
CELL_SAVEDATA_SYSP_LPARAM_SIZE = 8,
};
// Datatypes // Datatypes
struct CellSaveDataSetList struct CellSaveDataSetList
{ {
unsigned int sortType; be_t<u32> sortType;
unsigned int sortOrder; be_t<u32> sortOrder;
char *dirNamePrefix; be_t<u32> dirNamePrefix_addr; // char*
}; };
struct CellSaveDataSetBuf struct CellSaveDataSetBuf
{ {
unsigned int dirListMax; be_t<u32> dirListMax;
unsigned int fileListMax; be_t<u32> fileListMax;
unsigned int reserved[6]; be_t<u32> reserved[6];
unsigned int bufSize; be_t<u32> bufSize;
void *buf; be_t<u32> buf_addr; // void*
}; };
struct CellSaveDataNewDataIcon struct CellSaveDataNewDataIcon
{ {
char *title; be_t<u32> title_addr; // char*
unsigned int iconBufSize; be_t<u32> iconBufSize;
void *iconBuf; be_t<u32> iconBuf_addr; // void*
}; };
struct CellSaveDataListNewData struct CellSaveDataListNewData
{ {
unsigned int iconPosition; be_t<u32> iconPosition;
char *dirName; be_t<u32> dirName_addr; // char*
CellSaveDataNewDataIcon *icon; be_t<u32> icon_addr; // CellSaveDataNewDataIcon*
}; };
struct CellSaveDataDirList struct CellSaveDataDirList
{ {
char dirName; //[CELL_SAVEDATA_DIRNAME_SIZE]; s8 dirName[CELL_SAVEDATA_DIRNAME_SIZE];
char listParam; //[CELL_SAVEDATA_SYSP_LPARAM_SIZE]; s8 listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE];
}; };
struct CellSaveDataListGet struct CellSaveDataListGet
{ {
unsigned int dirNum; be_t<u32> dirNum;
unsigned int dirListNum; be_t<u32> dirListNum;
CellSaveDataDirList *dirList; be_t<u32> dirList_addr; // CellSaveDataDirList*
}; };
struct CellSaveDataListSet struct CellSaveDataListSet
{ {
unsigned int focusPosition; be_t<u32> focusPosition;
char *focusDirName; be_t<u32> focusDirName_addr; // char*
unsigned int fixedListNum; be_t<u32> fixedListNum;
CellSaveDataDirList *fixedList; be_t<u32> fixedList_addr; // CellSaveDataDirList*
CellSaveDataListNewData *newData; be_t<u32> newData_addr; // CellSaveDataListNewData*
}; };
struct CellSaveDataFixedSet struct CellSaveDataFixedSet
{ {
char *dirName; be_t<u32> dirName_addr; // char*
CellSaveDataNewDataIcon *newIcon; be_t<u32> newIcon_addr; // CellSaveDataNewDataIcon*
unsigned int option; be_t<u32> option;
}; };
struct CellSaveDataSystemFileParam struct CellSaveDataSystemFileParam
{ {
char title; //[CELL_SAVEDATA_SYSP_TITLE_SIZE]; s8 title[CELL_SAVEDATA_SYSP_TITLE_SIZE];
char subTitle; //[CELL_SAVEDATA_SYSP_SUBTITLE_SIZE]; s8 subTitle[CELL_SAVEDATA_SYSP_SUBTITLE_SIZE];
char detail; //[CELL_SAVEDATA_SYSP_DETAIL_SIZE]; s8 detail[CELL_SAVEDATA_SYSP_DETAIL_SIZE];
unsigned int attribute; be_t<u32> attribute;
char reserved2[4]; s8 reserved2[4];
char listParam; //[CELL_SAVEDATA_SYSP_LPARAM_SIZE]; s8 listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE];
char reserved[256]; s8 reserved[256];
}; };
struct CellSaveDataDirStat struct CellSaveDataDirStat
{ {
s64 st_atime_; be_t<s64> st_atime_;
s64 st_mtime_; be_t<s64> st_mtime_;
s64 st_ctime_; be_t<s64> st_ctime_;
char dirName; //[CELL_SAVEDATA_DIRNAME_SIZE]; s8 dirName[CELL_SAVEDATA_DIRNAME_SIZE];
}; };
struct CellSaveDataFileStat struct CellSaveDataFileStat
{ {
unsigned int fileType; be_t<u32> fileType;
char reserved1[4]; u8 reserved1[4];
u64 st_size; be_t<u64> st_size;
s64 st_atime_; be_t<s64> st_atime_;
s64 st_mtime_; be_t<s64> st_mtime_;
s64 st_ctime_; be_t<s64> st_ctime_;
char fileName; //[CELL_SAVEDATA_FILENAME_SIZE]; u8 fileName[CELL_SAVEDATA_FILENAME_SIZE];
char reserved2[3]; u8 reserved2[3];
}; };
struct CellSaveDataStatGet struct CellSaveDataStatGet
{ {
int hddFreeSizeKB; be_t<s32> hddFreeSizeKB;
unsigned int isNewData; be_t<u32> isNewData;
CellSaveDataDirStat dir; CellSaveDataDirStat dir;
CellSaveDataSystemFileParam getParam; CellSaveDataSystemFileParam getParam;
unsigned int bind; be_t<u32> bind;
int sizeKB; be_t<s32> sizeKB;
int sysSizeKB; be_t<s32> sysSizeKB;
unsigned int fileNum; be_t<u32> fileNum;
unsigned int fileListNum; be_t<u32> fileListNum;
CellSaveDataFileStat *fileList; be_t<u32> fileList_addr; // CellSaveDataFileStat*
}; };
struct CellSaveDataAutoIndicator struct CellSaveDataAutoIndicator
{ {
unsigned int dispPosition; be_t<u32> dispPosition;
unsigned int dispMode; be_t<u32> dispMode;
char *dispMsg; be_t<u32> dispMsg_addr; // char*
unsigned int picBufSize; be_t<u32> picBufSize;
void *picBuf; be_t<u32> picBuf_addr; // void*
}; };
struct CellSaveDataStatSet struct CellSaveDataStatSet
{ {
CellSaveDataSystemFileParam *setParam; be_t<u32> setParam_addr; // CellSaveDataSystemFileParam*
unsigned int reCreateMode; be_t<u32> reCreateMode;
CellSaveDataAutoIndicator *indicator; be_t<u32> indicator_addr; // CellSaveDataAutoIndicator*
}; };
struct CellSaveDataFileGet struct CellSaveDataFileGet
{ {
unsigned int excSize; be_t<u32> excSize;
}; };
struct CellSaveDataFileSet struct CellSaveDataFileSet
{ {
unsigned int fileOperation; be_t<u32> fileOperation;
void *reserved; be_t<u32> reserved_addr; // void*
unsigned int fileType; be_t<u32> fileType;
unsigned char secureFileId; //[CELL_SAVEDATA_SECUREFILEID_SIZE]; u8 secureFileId[CELL_SAVEDATA_SECUREFILEID_SIZE];
char *fileName; be_t<u32> fileName_addr; // char*
unsigned int fileOffset; be_t<u32> fileOffset;
unsigned int fileSize; be_t<u32> fileSize;
unsigned int fileBufSize; be_t<u32> fileBufSize;
void *fileBuf; be_t<u32> fileBuf_addr; // void*
}; };
struct CellSaveDataCBResult struct CellSaveDataCBResult
{ {
int result; be_t<s32> result;
unsigned int progressBarInc; be_t<u32> progressBarInc;
int errNeedSizeKB; be_t<s32> errNeedSizeKB;
char *invalidMsg; be_t<u32> invalidMsg_addr; // char*
void *userdata; be_t<u32> userdata_addr; // void*
}; };
struct CellSaveDataDoneGet struct CellSaveDataDoneGet
{ {
int excResult; be_t<s32> excResult;
char dirName; //[CELL_SAVEDATA_DIRNAME_SIZE]; s8 dirName[CELL_SAVEDATA_DIRNAME_SIZE];
int sizeKB; be_t<s32> sizeKB;
int hddFreeSizeKB; be_t<s32> hddFreeSizeKB;
}; };
// Functions // Functions
int cellSaveDataListSave2() //unsigned int version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataListSave2() //u32 version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataListLoad2() //unsigned int version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataListLoad2() //u32 version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataFixedSave2() //unsigned int version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile,sys_memory_container_t container, void *userdata int cellSaveDataFixedSave2() //u32 version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile,sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataFixedLoad2() //unsigned int version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataFixedLoad2() //u32 version, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataAutoSave2() //unsigned int version, const char *dirName, unsigned int errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataAutoSave2() //u32 version, const char *dirName, u32 errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataAutoLoad2() //unsigned int version, const char *dirName, unsigned int errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataAutoLoad2() //u32 version, const char *dirName, u32 errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataListAutoSave() //unsigned int version, unsigned int errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile,sys_memory_container_t container, void *userdata int cellSaveDataListAutoSave() //u32 version, u32 errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile,sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataListAutoLoad() //unsigned int version, unsigned int errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataListAutoLoad() //u32 version, u32 errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
@ -238,49 +260,49 @@ int cellSaveDataFixedDelete() //CellSaveDataSetList *setList, CellSaveDataSetBuf
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListSave() //unsigned int version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserListSave() //u32 version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListLoad() //unsigned int version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserListLoad() //u32 version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataListCallback funcList, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserFixedSave() //unsigned int version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserFixedSave() //u32 version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserFixedLoad() //unsigned int version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserFixedLoad() //u32 version, CellSysutilUserId userId, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserAutoSave() //unsigned int version, CellSysutilUserId userId, const char *dirName, unsigned int errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserAutoSave() //u32 version, CellSysutilUserId userId, const char *dirName, u32 errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserAutoLoad() //unsigned int version, CellSysutilUserId userId, const char *dirName, unsigned int errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserAutoLoad() //u32 version, CellSysutilUserId userId, const char *dirName, u32 errDialog, CellSaveDataSetBuf *setBuf, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListAutoSave() //unsigned int version, CellSysutilUserId userId, unsigned int errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserListAutoSave() //u32 version, CellSysutilUserId userId, u32 errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListAutoLoad() //unsigned int version, CellSysutilUserId userId, unsigned int errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata int cellSaveDataUserListAutoLoad() //u32 version, CellSysutilUserId userId, u32 errDialog, CellSaveDataSetList *setList, CellSaveDataSetBuf *setBuf, CellSaveDataFixedCallback funcFixed, CellSaveDataStatCallback funcStat, CellSaveDataFileCallback funcFile, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
@ -302,31 +324,31 @@ int cellSaveDataListDelete() //CellSaveDataSetList *setList, CellSaveDataSetBuf
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataListImport() //CellSaveDataSetList *setList, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataListImport() //CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataListExport() //CellSaveDataSetList *setList, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataListExport() //CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataFixedImport() //const char *dirName, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataFixedImport() //const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataFixedExport() //const char *dirName, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataFixedExport() //const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataGetListItem() //const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, unsigned int *bind, int *sizeKB int cellSaveDataGetListItem() //const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, mem32_t bind, mem32_t sizeKB
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
@ -338,31 +360,31 @@ int cellSaveDataUserListDelete() //CellSysutilUserId userId, CellSaveDataSetList
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListImport() //CellSysutilUserId userId, CellSaveDataSetList *setList, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataUserListImport() //CellSysutilUserId userId, CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserListExport() //CellSysutilUserId userId, CellSaveDataSetList *setList, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataUserListExport() //CellSysutilUserId userId, CellSaveDataSetList *setList, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserFixedImport() //CellSysutilUserId userId, const char *dirName, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataUserFixedImport() //CellSysutilUserId userId, const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserFixedExport() //CellSysutilUserId userId, const char *dirName, unsigned int maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata int cellSaveDataUserFixedExport() //CellSysutilUserId userId, const char *dirName, u32 maxSizeKB, CellSaveDataDoneCallback funcDone, sys_memory_container_t container, void *userdata
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;
} }
int cellSaveDataUserGetListItem() //CellSysutilUserId userId, const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, unsigned int *bind, int *sizeKB int cellSaveDataUserGetListItem() //CellSysutilUserId userId, const char *dirName, CellSaveDataDirStat *dir, CellSaveDataSystemFileParam *sysFileParam, mem32_t bind, mem32_t sizeKB
{ {
UNIMPLEMENTED_FUNC(cellSaveData); UNIMPLEMENTED_FUNC(cellSaveData);
return CELL_SAVEDATA_RET_OK; return CELL_SAVEDATA_RET_OK;

View file

@ -241,7 +241,7 @@ int sceNpTrophyGetGameInfo(u32 context, u32 handle, mem_ptr_t<SceNpTrophyGameDet
u32 trophy_id = atoi(n->GetAttribute("id").mb_str()); u32 trophy_id = atoi(n->GetAttribute("id").mb_str());
details->numTrophies++; details->numTrophies++;
switch (n->GetAttribute("ttype").mb_str()[0]) { switch (((const char *)n->GetAttribute("ttype").mb_str())[0]) {
case 'B': details->numBronze++; break; case 'B': details->numBronze++; break;
case 'S': details->numSilver++; break; case 'S': details->numSilver++; break;
case 'G': details->numGold++; break; case 'G': details->numGold++; break;
@ -251,7 +251,7 @@ int sceNpTrophyGetGameInfo(u32 context, u32 handle, mem_ptr_t<SceNpTrophyGameDet
if (ctxt.tropusr->GetTrophyUnlockState(trophy_id)) if (ctxt.tropusr->GetTrophyUnlockState(trophy_id))
{ {
data->unlockedTrophies++; data->unlockedTrophies++;
switch (n->GetAttribute("ttype").mb_str()[0]) { switch (((const char *)n->GetAttribute("ttype").mb_str())[0]) {
case 'B': data->unlockedBronze++; break; case 'B': data->unlockedBronze++; break;
case 'S': data->unlockedSilver++; break; case 'S': data->unlockedSilver++; break;
case 'G': data->unlockedGold++; break; case 'G': data->unlockedGold++; break;
@ -361,14 +361,14 @@ int sceNpTrophyGetTrophyInfo(u32 context, u32 handle, s32 trophyId, mem_ptr_t<Sc
if (n->GetName() == "trophy" && (trophyId == atoi(n->GetAttribute("id").mb_str()))) if (n->GetName() == "trophy" && (trophyId == atoi(n->GetAttribute("id").mb_str())))
{ {
details->trophyId = trophyId; details->trophyId = trophyId;
switch (n->GetAttribute("ttype").mb_str()[0]) { switch (((const char *)n->GetAttribute("ttype").mb_str())[0]) {
case 'B': details->trophyGrade = SCE_NP_TROPHY_GRADE_BRONZE; break; case 'B': details->trophyGrade = SCE_NP_TROPHY_GRADE_BRONZE; break;
case 'S': details->trophyGrade = SCE_NP_TROPHY_GRADE_SILVER; break; case 'S': details->trophyGrade = SCE_NP_TROPHY_GRADE_SILVER; break;
case 'G': details->trophyGrade = SCE_NP_TROPHY_GRADE_GOLD; break; case 'G': details->trophyGrade = SCE_NP_TROPHY_GRADE_GOLD; break;
case 'P': details->trophyGrade = SCE_NP_TROPHY_GRADE_PLATINUM; break; case 'P': details->trophyGrade = SCE_NP_TROPHY_GRADE_PLATINUM; break;
} }
switch (n->GetAttribute("hidden").mb_str()[0]) { switch (((const char *)n->GetAttribute("ttype").mb_str())[0]) {
case 'y': details->hidden = true; break; case 'y': details->hidden = true; break;
case 'n': details->hidden = false; break; case 'n': details->hidden = false; break;
} }

View file

@ -132,7 +132,7 @@ bool TROPUSRLoader::Generate(std::string& filepath, std::string& configpath)
{ {
u32 trophy_id = atoi(n->GetAttribute("id").mb_str()); u32 trophy_id = atoi(n->GetAttribute("id").mb_str());
u32 trophy_grade; u32 trophy_grade;
switch (n->GetAttribute("ttype").mb_str()[0]) switch (((const char *)n->GetAttribute("ttype").mb_str())[0])
{ {
case 'B': trophy_grade = 4; break; case 'B': trophy_grade = 4; break;
case 'S': trophy_grade = 3; break; case 'S': trophy_grade = 3; break;

View file

@ -300,6 +300,7 @@
<ClCompile Include="Emu\SysCalls\Modules\cellPngDec.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellPngDec.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellResc.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellResc.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellRtc.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellRtc.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellSpurs.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellSpurs.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellSync.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellSync.cpp" />
<ClCompile Include="Emu\SysCalls\Modules\cellSysmodule.cpp" /> <ClCompile Include="Emu\SysCalls\Modules\cellSysmodule.cpp" />

View file

@ -472,6 +472,9 @@
<ClCompile Include="Loader\TROPUSR.cpp"> <ClCompile Include="Loader\TROPUSR.cpp">
<Filter>Loader</Filter> <Filter>Loader</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="rpcs3.rc" /> <ResourceCompile Include="rpcs3.rc" />