initial save data library

This commit is contained in:
georgemoralis 2023-11-14 09:06:15 +02:00
parent 3c12c48f52
commit 5084145cd9
3 changed files with 69 additions and 1 deletions

View File

@ -6,7 +6,7 @@
#include "core/hle/libraries/libpad/pad.h"
#include "core/hle/libraries/libsystemservice/system_service.h"
#include "core/hle/libraries/libc/libc.h"
#include "core/hle/libraries/libsavedata/save_data.h"
namespace Core::Libraries {
void InitHLELibs(Loader::SymbolsResolver* sym) {
@ -17,6 +17,7 @@ void InitHLELibs(Loader::SymbolsResolver* sym) {
LibPad::padSymbolsRegister(sym);
LibSystemService::systemServiceSymbolsRegister(sym);
LibC::libcSymbolsRegister(sym);
LibSaveData::saveDataSymbolsRegister(sym);
}
} // namespace Core::Libraries

View File

@ -0,0 +1,16 @@
#include "save_data.h"
#include <core/hle/error_codes.h>
#include <core/hle/libraries/libs.h>
#include "common/log.h"
namespace Core::Libraries::LibSaveData {
s32 sceSaveDataMount2(const SceSaveDataMount2* mount, SceSaveDataMountResult* mountResult) {
PRINT_DUMMY_FUNCTION_NAME();
return SCE_OK;
}
void saveDataSymbolsRegister(Loader::SymbolsResolver* sym) {
LIB_FUNCTION("0z45PIH+SNI", "libSceSaveData", 1, "libSceSaveData", 1, 1, sceSaveDataMount2);
}
} // namespace Core::Libraries::LibSaveData

View File

@ -0,0 +1,51 @@
#pragma once
#include <core/hle/libraries/libuserservice/libuserservice.h>
#include "common/types.h"
namespace Core::Loader {
class SymbolsResolver;
}
namespace Core::Libraries::LibSaveData {
constexpr int SCE_SAVE_DATA_TITLE_ID_DATA_SIZE = 10; // Save data title ID size
constexpr int SCE_SAVE_DATA_DIRNAME_DATA_MAXSIZE = 32; // Maximum size for a save data directory name
constexpr int SCE_SAVE_DATA_MOUNT_POINT_DATA_MAXSIZE = 16; // Maximum size for a mount point name
constexpr int SCE_SAVE_DATA_FINGERPRINT_DATA_SIZE = 65; // Fingerprint size
constexpr int SCE_SAVE_DATA_TITLE_MAXSIZE = 128; // Maximum size for a save data title name (NULL-terminated, UTF-8)
constexpr int SCE_SAVE_DATA_SUBTITLE_MAXSIZE = 128; // Maximum size for a save data subtitle name (NULL-terminated, UTF-8)
constexpr int SCE_SAVE_DATA_DETAIL_MAXSIZE = 1024; // Maximum size for save data detailed information (NULL-terminated, UTF-8)
struct SceSaveDataDirName {
char data[SCE_SAVE_DATA_DIRNAME_DATA_MAXSIZE];
};
struct SceSaveDataMountPoint {
char data[SCE_SAVE_DATA_MOUNT_POINT_DATA_MAXSIZE];
};
struct SceSaveDataMount2 {
Core::Libraries::LibUserService::SceUserServiceUserId userId;
s32 padding;
const SceSaveDataDirName* dirName;
u64 blocks;
u32 mountMode;
u08 reserved[32];
s32 padding2;
};
struct SceSaveDataMountResult {
SceSaveDataMountPoint mountPoint;
u64 requiredBlocks;
u32 unused;
u32 mountStatus;
u08 reserved[28];
s32 padding;
};
s32 sceSaveDataMount2(const SceSaveDataMount2* mount, SceSaveDataMountResult* mountResult);
void saveDataSymbolsRegister(Loader::SymbolsResolver* sym);
} // namespace Core::Libraries::LibSaveData