@@ -0,0 +1,19 @@
#pragma once

#include <stdint.h>

#include <sce/types/userservice.h>

typedef enum SceErrorDialogStatus {
SCE_ERROR_DIALOG_STATUS_NONE = 0,
SCE_ERROR_DIALOG_STATUS_INITIALIZED = 1,
SCE_ERROR_DIALOG_STATUS_RUNNING = 2,
SCE_ERROR_DIALOG_STATUS_FINISHED = 3
} SceErrorDialogStatus;

typedef struct SceErrorDialogParam {
int32_t size;
int32_t errorCode;
SceUserServiceUserId userId;
int32_t reserved;
} SceErrorDialogParam;
@@ -0,0 +1,97 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/commondialog.h>
#include <sce/types/userservice.h>

#define SCE_MSG_DIALOG_USER_MSG_SIZE (8192)

typedef int32_t SceMsgDialogMode;
#define SCE_MSG_DIALOG_MODE_INVALID (0)
#define SCE_MSG_DIALOG_MODE_USER_MSG (1)
#define SCE_MSG_DIALOG_MODE_PROGRESS_BAR (2)
#define SCE_MSG_DIALOG_MODE_SYSTEM_MSG (3)

typedef int32_t SceMsgDialogSystemMessageType;
#define SCE_MSG_DIALOG_SYSMSG_TYPE_TRC_EMPTY_STORE (0)
#define SCE_MSG_DIALOG_SYSMSG_TYPE_TRC_PSN_CHAT_RESTRICTION (1)
#define SCE_MSG_DIALOG_SYSMSG_TYPE_TRC_PSN_UGC_RESTRICTION (2)
#define SCE_MSG_DIALOG_SYSMSG_TYPE_CAMERA_NOT_CONNECTED (4)
#define SCE_MSG_DIALOG_SYSMSG_TYPE_WARNING_PROFILE_PICTURE_AND_NAME_NOT_SHARED (5)

typedef int32_t SceMsgDialogButtonType;
#define SCE_MSG_DIALOG_BUTTON_TYPE_OK (0)
#define SCE_MSG_DIALOG_BUTTON_TYPE_YESNO (1)
#define SCE_MSG_DIALOG_BUTTON_TYPE_NONE (2)
#define SCE_MSG_DIALOG_BUTTON_TYPE_OK_CANCEL (3)
#define SCE_MSG_DIALOG_BUTTON_TYPE_CANCEL (4)
#define SCE_MSG_DIALOG_BUTTON_TYPE_WAIT (5)
#define SCE_MSG_DIALOG_BUTTON_TYPE_WAIT_CANCEL (6)
#define SCE_MSG_DIALOG_BUTTON_TYPE_YESNO_FOCUS_NO (7)
#define SCE_MSG_DIALOG_BUTTON_TYPE_OK_CANCEL_FOCUS_CANCEL (8)
#define SCE_MSG_DIALOG_BUTTON_TYPE_2BUTTONS (9)

typedef int32_t SceMsgDialogButtonId;
#define SCE_MSG_DIALOG_BUTTON_ID_INVALID (0)
#define SCE_MSG_DIALOG_BUTTON_ID_OK (1)
#define SCE_MSG_DIALOG_BUTTON_ID_YES (1)
#define SCE_MSG_DIALOG_BUTTON_ID_NO (2)
#define SCE_MSG_DIALOG_BUTTON_ID_BUTTON1 (1)
#define SCE_MSG_DIALOG_BUTTON_ID_BUTTON2 (2)

typedef int32_t SceMsgDialogProgressBarType;
#define SCE_MSG_DIALOG_PROGRESSBAR_TYPE_PERCENTAGE (0)
#define SCE_MSG_DIALOG_PROGRESSBAR_TYPE_PERCENTAGE_CANCEL (1)

typedef int32_t SceMsgDialogProgressBarTarget;
#define SCE_MSG_DIALOG_PROGRESSBAR_TARGET_BAR_DEFAULT (0)

#define SCE_MSG_DIALOG_BUTTON_MSG_SIZE (64)

typedef struct SceMsgDialogButtonsParam {
const char *msg1;
const char *msg2;
char reserved[32];
} SceMsgDialogButtonsParam;

typedef struct SceMsgDialogUserMessageParam {
SceMsgDialogButtonType buttonType;
int : 32;
const char *msg;
SceMsgDialogButtonsParam *buttonsParam;
char reserved[24];
} SceMsgDialogUserMessageParam;

typedef struct SceMsgDialogSystemMessageParam {
SceMsgDialogSystemMessageType sysMsgType;
char reserved[32];
} SceMsgDialogSystemMessageParam;

typedef struct SceMsgDialogProgressBarParam {
SceMsgDialogProgressBarType barType;
int : 32;
const char *msg;
char reserved[64];
} SceMsgDialogProgressBarParam;

typedef struct SceMsgDialogParam {
SceCommonDialogBaseParam baseParam;
size_t size;
SceMsgDialogMode mode;
int : 32;
SceMsgDialogUserMessageParam *userMsgParam;
SceMsgDialogProgressBarParam *progBarParam;
SceMsgDialogSystemMessageParam *sysMsgParam;
SceUserServiceUserId userId;
char reserved[40];
int : 32;
} SceMsgDialogParam;

typedef struct SceMsgDialogResult {
SceMsgDialogMode mode;
int32_t result;
SceMsgDialogButtonId buttonId;
char reserved[32];
} SceMsgDialogResult;
@@ -0,0 +1,7 @@
#pragma once

#include <stdint.h>

typedef uint32_t SceNpServiceLabel;
#define SCE_NP_DEFAULT_SERVICE_LABEL (0x00000000)
#define SCE_NP_INVALID_SERVICE_LABEL (0xFFFFFFFF)
@@ -2,39 +2,49 @@

#include <stdint.h>

typedef struct vec_float3
{
float x;
float y;
float z;
}vec_float3;
typedef struct vec_float3 {
float x;
float y;
float z;
} vec_float3;

typedef struct vec_float4
{
float x;
float y;
float z;
float w;
}vec_float4;
typedef struct vec_float4 {
float x;
float y;
float z;
float w;
} vec_float4;

typedef struct ScePadData {
unsigned int buttons;
uint8_t lx;
uint8_t ly;
uint8_t rx;
uint8_t ry;
uint8_t l2;
uint8_t r2;
uint16_t padding;
vec_float4 quat;
vec_float3 vel;
vec_float3 acell;
uint8_t touch[24];
uint8_t connected;
uint64_t timestamp;
uint8_t ext[16];
uint8_t count;
uint8_t unknown[15];
}ScePadData;


unsigned int buttons;
uint8_t lx;
uint8_t ly;
uint8_t rx;
uint8_t ry;
uint8_t l2;
uint8_t r2;
uint16_t padding;
vec_float4 quat;
vec_float3 vel;
vec_float3 acell;
uint8_t touch[24];
uint8_t connected;
uint64_t timestamp;
uint8_t ext[16];
uint8_t count;
uint8_t unknown[15];
} ScePadData;

typedef struct ScePadVibrationParam {
uint8_t largeMotor;
uint8_t smallMotor;
} ScePadVibrationParam;

typedef struct ScePadColor{
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t reserve[1];
} ScePadColor;

typedef ScePadColor ScePadLightBarParam;
@@ -0,0 +1,7 @@
#pragma once

#include <stdint.h>

typedef struct SceRtcTick {
uint64_t tick;
} SceRtcTick;
@@ -0,0 +1,271 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/userservice.h>

/* Legacy */
#define SCE_SAVE_DATA_MEMORY_MAXSIZE (1 * 1024 * 1024)
#define SCE_SAVE_DATA_MEMORY_MAXSIZE2 (8 * 1024 * 1024)
#define SCE_SAVE_DATA_MEMORY_UNLOCK_LIMITATION_MAXSIZE (32 * 1024 * 1024)
#define SCE_SAVE_DATA_MEMORY_OPTION_UNLOCK_LIMITATION (0x00000001 << 2)
/* End Legacy */

#define SCE_SAVE_DATA_TITLE_ID_DATA_SIZE (10)
#define SCE_SAVE_DATA_DIRNAME_DATA_MAXSIZE (32)
#define SCE_SAVE_DATA_FINGERPRINT_DATA_SIZE (65)
#define SCE_SAVE_DATA_MOUNT_POINT_DATA_MAXSIZE (16)
#define SCE_SAVE_DATA_DIRNAME_MAX_COUNT (1024)

#define SCE_SAVE_DATA_TITLE_MAXSIZE (128)
#define SCE_SAVE_DATA_SUBTITLE_MAXSIZE (128)
#define SCE_SAVE_DATA_DETAIL_MAXSIZE (1024)

typedef uint32_t SceSaveDataMountMode;
#define SCE_SAVE_DATA_MOUNT_MODE_RDONLY (0x00000001)
#define SCE_SAVE_DATA_MOUNT_MODE_RDWR (0x00000002)
#define SCE_SAVE_DATA_MOUNT_MODE_CREATE (0x00000004)
#define SCE_SAVE_DATA_MOUNT_MODE_DESTRUCT_OFF (0x00000008)
#define SCE_SAVE_DATA_MOUNT_MODE_COPY_ICON (0x00000010)
#define SCE_SAVE_DATA_MOUNT_MODE_CREATE2 (0x00000020)

typedef uint32_t SceSaveDataMountStatus;
#define SCE_SAVE_DATA_MOUNT_STATUS_CREATED (0x00000001)

typedef uint32_t SceSaveDataParamType;
#define SCE_SAVE_DATA_PARAM_TYPE_ALL (0)
#define SCE_SAVE_DATA_PARAM_TYPE_TITLE (1)
#define SCE_SAVE_DATA_PARAM_TYPE_SUB_TITLE (2)
#define SCE_SAVE_DATA_PARAM_TYPE_DETAIL (3)
#define SCE_SAVE_DATA_PARAM_TYPE_USER_PARAM (4)
#define SCE_SAVE_DATA_PARAM_TYPE_MTIME (5)

typedef uint32_t SceSaveDataSortKey;
#define SCE_SAVE_DATA_SORT_KEY_DIRNAME (0)
#define SCE_SAVE_DATA_SORT_KEY_USER_PARAM (1)
#define SCE_SAVE_DATA_SORT_KEY_BLOCKS (2)
#define SCE_SAVE_DATA_SORT_KEY_MTIME (3)
#define SCE_SAVE_DATA_SORT_KEY_FREE_BLOCKS (5)

typedef uint32_t SceSaveDataSortOrder;
#define SCE_SAVE_DATA_SORT_ORDER_ASCENT (0)
#define SCE_SAVE_DATA_SORT_ORDER_DESCENT (1)

#define SCE_SAVE_DATA_ICON_WIDTH (228)
#define SCE_SAVE_DATA_ICON_HEIGHT (128)
#define SCE_SAVE_DATA_ICON_FILE_MAXSIZE (SCE_SAVE_DATA_ICON_WIDTH * SCE_SAVE_DATA_ICON_HEIGHT * 4)

typedef uint64_t SceSaveDataBlocks;
#define SCE_SAVE_DATA_BLOCK_SIZE (32768)
#define SCE_SAVE_DATA_BLOCKS_MIN2 (96)
#define SCE_SAVE_DATA_BLOCKS_MAX (32768)

typedef uint32_t SceSaveDataSaveDataMemoryOption;
#define SCE_SAVE_DATA_MEMORY_OPTION_NONE (0x00000000)
#define SCE_SAVE_DATA_MEMORY_OPTION_SET_PARAM (0x00000001 << 0)
#define SCE_SAVE_DATA_MEMORY_OPTION_DOUBLE_BUFFER (0x00000001 << 1)

#define SCE_SAVE_DATA_DIRNAME_SAVE_DATA_MEMORY "sce_sdmemory"
#define SCE_SAVE_DATA_FILENAME_SAVE_DATA_MEMORY "memory.dat"

typedef uint32_t SceSaveDataEventType;
#define SCE_SAVE_DATA_EVENT_TYPE_INVALID (0)
#define SCE_SAVE_DATA_EVENT_TYPE_UMOUNT_BACKUP_END (1)
#define SCE_SAVE_DATA_EVENT_TYPE_BACKUP_END (2)
#define SCE_SAVE_DATA_EVENT_TYPE_SAVE_DATA_MEMORY_SYNC_END (3)

typedef struct SceSaveDataTitleId {
char data[SCE_SAVE_DATA_TITLE_ID_DATA_SIZE];
char padding[6];
} SceSaveDataTitleId;

typedef struct SceSaveDataDirName {
char data[SCE_SAVE_DATA_DIRNAME_DATA_MAXSIZE];
} SceSaveDataDirName;

typedef struct SceSaveDataMountPoint {
char data[SCE_SAVE_DATA_MOUNT_POINT_DATA_MAXSIZE];
} SceSaveDataMountPoint;

typedef struct SceSaveDataFingerprint {
char data[SCE_SAVE_DATA_FINGERPRINT_DATA_SIZE];
char padding[15];
} SceSaveDataFingerprint;

typedef struct _SceSaveDataInitParams3 SceSaveDataInitParams3;

typedef struct SceSaveDataMount2 {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataDirName *dirName;
SceSaveDataBlocks blocks;
SceSaveDataMountMode mountMode;
uint8_t reserved[32];
int : 32;
} SceSaveDataMount2;

typedef struct SceSaveDataTransferringMount {
SceUserServiceUserId userId;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
const SceSaveDataFingerprint *fingerprint;
uint8_t reserved[32];
} SceSaveDataTransferringMount;

typedef struct SceSaveDataMountResult {
SceSaveDataMountPoint mountPoint;
SceSaveDataBlocks requiredBlocks;
uint32_t unused;
SceSaveDataMountStatus mountStatus;
uint8_t reserved[28];
int : 32;
} SceSaveDataMountResult;

typedef struct SceSaveDataMountInfo {
SceSaveDataBlocks blocks;
SceSaveDataBlocks freeBlocks;
uint8_t reserved[32];
} SceSaveDataMountInfo;

typedef struct SceSaveDataIcon {
void *buf;
size_t bufSize;
size_t dataSize;
uint8_t reserved[32];
} SceSaveDataIcon;

typedef struct SceSaveDataParam {
char title[SCE_SAVE_DATA_TITLE_MAXSIZE];
char subTitle[SCE_SAVE_DATA_SUBTITLE_MAXSIZE];
char detail[SCE_SAVE_DATA_DETAIL_MAXSIZE];
uint32_t userParam;
int : 32;
time_t mtime;
uint8_t reserved[32];
} SceSaveDataParam;

typedef struct SceSaveDataDelete {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
uint32_t unused;
uint8_t reserved[32];
int : 32;
} SceSaveDataDelete;

typedef struct SceSaveDataSearchInfo {
SceSaveDataBlocks blocks;
SceSaveDataBlocks freeBlocks;
uint8_t reserved[32];
} SceSaveDataSearchInfo;

typedef struct SceSaveDataDirNameSearchCond {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
SceSaveDataSortKey key;
SceSaveDataSortOrder order;
uint8_t reserved[32];
} SceSaveDataDirNameSearchCond;

typedef struct SceSaveDataDirNameSearchResult {
uint32_t hitNum;
int : 32;
SceSaveDataDirName *dirNames;
uint32_t dirNamesNum;
uint32_t setNum;
SceSaveDataParam *params;
SceSaveDataSearchInfo *infos;
uint8_t reserved[12];
int : 32;
} SceSaveDataDirNameSearchResult;

typedef struct SceSaveDataMemorySync {
SceUserServiceUserId userId;
uint8_t reserved[36];
} SceSaveDataMemorySync;

typedef struct SceSaveDataRestoreBackupData {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
const SceSaveDataFingerprint *fingerprint;
uint32_t unused;
uint8_t reserved[32];
int : 32;
} SceSaveDataRestoreBackupData;

typedef struct SceSaveDataCheckBackupData {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
SceSaveDataParam *param;
SceSaveDataIcon *icon;
uint8_t reserved[32];
} SceSaveDataCheckBackupData;

typedef struct SceSaveDataBackup {
SceUserServiceUserId userId;
int : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
const SceSaveDataFingerprint *fingerprint;
uint8_t reserved[32];
} SceSaveDataBackup;

typedef struct SceSaveDataMemoryData {
void *buf;
size_t bufSize;
off_t offset;
uint8_t reserved[40];
} SceSaveDataMemoryData;

typedef struct SceSaveDataMemorySetup2 {
SceSaveDataSaveDataMemoryOption option;
SceUserServiceUserId userId;
size_t memorySize;
size_t iconMemorySize;
const SceSaveDataParam *initParam;
const SceSaveDataIcon *initIcon;
uint8_t reserved[24];
} SceSaveDataMemorySetup2;

typedef struct SceSaveDataMemorySetupResult {
size_t existedMemorySize;
uint8_t reserved[16];
} SceSaveDataMemorySetupResult;

typedef struct SceSaveDataMemoryGet2 {
SceUserServiceUserId userId;
uint8_t padding[4];
SceSaveDataMemoryData *data;
SceSaveDataParam *param;
SceSaveDataIcon *icon;
uint8_t reserved[32];
} SceSaveDataMemoryGet2;

typedef struct SceSaveDataMemorySet2 {
SceUserServiceUserId userId;
uint8_t padding[4];
const SceSaveDataMemoryData *data;
const SceSaveDataParam *param;
const SceSaveDataIcon *icon;
uint8_t reserved[32];
} SceSaveDataMemorySet2;

typedef struct _SceSaveDataEventParam SceSaveDataEventParam;

typedef struct SceSaveDataEvent {
SceSaveDataEventType type;
int32_t errorCode;
SceUserServiceUserId userId;
uint8_t padding[4];
SceSaveDataTitleId titleId;
SceSaveDataDirName dirName;
uint8_t reserved[40];
} SceSaveDataEvent;
@@ -0,0 +1,181 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/commondialog.h>
#include <sce/types/savedata.h>
#include <sce/types/userservice.h>

#define SCE_SAVE_DATA_DIALOG_USER_MSG_MAXSIZE (256)

typedef int32_t SceSaveDataDialogMode;
#define SCE_SAVE_DATA_DIALOG_MODE_INVALID (0)
#define SCE_SAVE_DATA_DIALOG_MODE_LIST (1)
#define SCE_SAVE_DATA_DIALOG_MODE_USER_MSG (2)
#define SCE_SAVE_DATA_DIALOG_MODE_SYSTEM_MSG (3)
#define SCE_SAVE_DATA_DIALOG_MODE_ERROR_CODE (4)
#define SCE_SAVE_DATA_DIALOG_MODE_PROGRESS_BAR (5)

typedef int32_t SceSaveDataDialogType;
#define SCE_SAVE_DATA_DIALOG_TYPE_INVALID (0)
#define SCE_SAVE_DATA_DIALOG_TYPE_SAVE (1)
#define SCE_SAVE_DATA_DIALOG_TYPE_LOAD (2)
#define SCE_SAVE_DATA_DIALOG_TYPE_DELETE (3)

typedef int32_t SceSaveDataDialogFocusPos;
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_LISTHEAD (0)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_LISTTAIL (1)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_DATAHEAD (2)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_DATATAIL (3)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_DATALATEST (4)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_DATAOLDEST (5)
#define SCE_SAVE_DATA_DIALOG_FOCUS_POS_DIRNAME (6)

typedef int32_t SceSaveDataDialogSystemMessageType;
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_INVALID (0)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_NODATA (1)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_CONFIRM (2)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_OVERWRITE (3)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_NOSPACE (4)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_PROGRESS (5)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_FILE_CORRUPTED (6)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_FINISHED (7)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_NOSPACE_CONTINUABLE (8)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_CORRUPTED_AND_DELETE (10)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_CORRUPTED_AND_CREATE (11)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_CORRUPTED_AND_RESTORE (13)
#define SCE_SAVE_DATA_DIALOG_SYSMSG_TYPE_TOTAL_SIZE_EXCEEDED (14)

typedef int32_t SceSaveDataDialogButtonType;
#define SCE_SAVE_DATA_DIALOG_BUTTON_TYPE_OK (0)
#define SCE_SAVE_DATA_DIALOG_BUTTON_TYPE_YESNO (1)
#define SCE_SAVE_DATA_DIALOG_BUTTON_TYPE_NONE (2)
#define SCE_SAVE_DATA_DIALOG_BUTTON_TYPE_OKCANCEL (3)

typedef int32_t SceSaveDataDialogButtonId;
#define SCE_SAVE_DATA_DIALOG_BUTTON_ID_INVALID (0)
#define SCE_SAVE_DATA_DIALOG_BUTTON_ID_OK (1)
#define SCE_SAVE_DATA_DIALOG_BUTTON_ID_YES (1)
#define SCE_SAVE_DATA_DIALOG_BUTTON_ID_NO (2)

typedef int32_t SceSaveDataDialogOptionBack;
#define SCE_SAVE_DATA_DIALOG_OPTION_BACK_ENABLE (0)
#define SCE_SAVE_DATA_DIALOG_OPTION_BACK_DISABLE (1)

typedef int32_t SceSaveDataDialogProgressBarType;
#define SCE_SAVE_DATA_DIALOG_PROGRESSBAR_TYPE_PERCENTAGE (0)

typedef int32_t SceSaveDataDialogProgressBarTarget;
#define SCE_SAVE_DATA_DIALOG_PROGRESSBAR_TARGET_BAR_DEFAULT (0)

typedef int32_t SceSaveDataDialogItemStyle;
#define SCE_SAVE_DATA_DIALOG_ITEM_STYLE_TITLE_DATESIZE_SUBTITLE (0)
#define SCE_SAVE_DATA_DIALOG_ITEM_STYLE_TITLE_SUBTITLE_DATESIZE (1)
#define SCE_SAVE_DATA_DIALOG_ITEM_STYLE_TITLE_DATESIZE (2)

typedef int32_t SceSaveDataDialogAnimation;
#define SCE_SAVE_DATA_DIALOG_ANIMATION_ON (0)
#define SCE_SAVE_DATA_DIALOG_ANIMATION_OFF (1)

typedef int32_t SceSaveDataDialogUserMessageType;
#define SCE_SAVE_DATA_DIALOG_USERMSG_TYPE_NORMAL (0)
#define SCE_SAVE_DATA_DIALOG_USERMSG_TYPE_ERROR (1)

typedef int32_t SceSaveDataDialogProgressSystemMessageType;
#define SCE_SAVE_DATA_DIALOG_PRGRESS_SYSMSG_TYPE_INVALID (0)
#define SCE_SAVE_DATA_DIALOG_PRGRESS_SYSMSG_TYPE_PROGRESS (1)
#define SCE_SAVE_DATA_DIALOG_PRGRESS_SYSMSG_TYPE_RESTORE (2)

typedef struct SceSaveDataDialogAnimationParam {
SceSaveDataDialogAnimation userOK;
SceSaveDataDialogAnimation userCancel;
uint8_t reserved[32];
} SceSaveDataDialogAnimationParam;

typedef struct SceSaveDataDialogNewItem {
const char *title;
void *iconBuf;
size_t iconSize;
uint8_t reserved[32];
} SceSaveDataDialogNewItem;

typedef struct SceSaveDataDialogItems {
SceUserServiceUserId userId;
int32_t : 32;
const SceSaveDataTitleId *titleId;
const SceSaveDataDirName *dirName;
uint32_t dirNameNum;
int32_t : 32;
const SceSaveDataDialogNewItem *newItem;
SceSaveDataDialogFocusPos focusPos;
int32_t : 32;
const SceSaveDataDirName *focusPosDirName;
SceSaveDataDialogItemStyle itemStyle;
uint8_t reserved[36];
} SceSaveDataDialogItems;

typedef struct SceSaveDataDialogUserMessageParam {
SceSaveDataDialogButtonType buttonType;
SceSaveDataDialogUserMessageType msgType;
const char *msg;
uint8_t reserved[32];
} SceSaveDataDialogUserMessageParam;

typedef struct SceSaveDataDialogSystemMessageParam {
SceSaveDataDialogSystemMessageType sysMsgType;
int32_t : 32;
uint64_t value;
uint8_t reserved[32];
} SceSaveDataDialogSystemMessageParam;

typedef struct SceSaveDataDialogErrorCodeParam {
int32_t errorCode;
uint8_t reserved[32];
} SceSaveDataDialogErrorCodeParam;

typedef struct SceSaveDataDialogProgressBarParam {
SceSaveDataDialogProgressBarType barType;
int32_t : 32;
const char *msg;
SceSaveDataDialogProgressSystemMessageType sysMsgType;
uint8_t reserved[28];
} SceSaveDataDialogProgressBarParam;

typedef struct SceSaveDataDialogOptionParam {
SceSaveDataDialogOptionBack back;
uint8_t reserved[32];
} SceSaveDataDialogOptionParam;

typedef struct SceSaveDataDialogParam {
SceCommonDialogBaseParam baseParam;
int32_t size;
SceSaveDataDialogMode mode;
SceSaveDataDialogType dispType;
int32_t : 32;
SceSaveDataDialogAnimationParam *animParam;
SceSaveDataDialogItems *items;
SceSaveDataDialogUserMessageParam *userMsgParam;
SceSaveDataDialogSystemMessageParam *sysMsgParam;
SceSaveDataDialogErrorCodeParam *errorCodeParam;
SceSaveDataDialogProgressBarParam *progBarParam;
void *userData;
SceSaveDataDialogOptionParam *optionParam;
uint8_t reserved[24];
} SceSaveDataDialogParam;

typedef struct SceSaveDataDialogCloseParam {
SceSaveDataDialogAnimation anim;
uint8_t reserved[32];
} SceSaveDataDialogCloseParam;

typedef struct SceSaveDataDialogResult {
SceSaveDataDialogMode mode;
int32_t result;
SceSaveDataDialogButtonId buttonId;
int32_t : 32;
SceSaveDataDirName *dirName;
SceSaveDataParam *param;
void *userData;
uint8_t reserved[32];
} SceSaveDataDialogResult;
@@ -0,0 +1,135 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/np.h>
#include <sce/types/rtc.h>

#define SCE_NP_TROPHY_NUM_MAX (128)
#define SCE_NP_TROPHY_SCREENSHOT_TARGET_NUM_MAX (4)

#define SCE_NP_TROPHY_GAME_TITLE_MAX_SIZE (128)
#define SCE_NP_TROPHY_GAME_DESCR_MAX_SIZE (1024)
#define SCE_NP_TROPHY_GROUP_TITLE_MAX_SIZE (128)
#define SCE_NP_TROPHY_GROUP_DESCR_MAX_SIZE (1024)
#define SCE_NP_TROPHY_NAME_MAX_SIZE (128)
#define SCE_NP_TROPHY_DESCR_MAX_SIZE (1024)

#define SCE_NP_TROPHY_GRADE_UNKNOWN (0)
#define SCE_NP_TROPHY_GRADE_PLATINUM (1)
#define SCE_NP_TROPHY_GRADE_GOLD (2)
#define SCE_NP_TROPHY_GRADE_SILVER (3)
#define SCE_NP_TROPHY_GRADE_BRONZE (4)

typedef int32_t SceNpTrophyHandle;
typedef int32_t SceNpTrophyContext;
typedef int32_t SceNpTrophyId;
typedef int32_t SceNpTrophyGroupId;
typedef int32_t SceNpTrophyGrade;

#define SCE_NP_TROPHY_INVALID_HANDLE (-1)
#define SCE_NP_TROPHY_INVALID_CONTEXT (-1)
#define SCE_NP_TROPHY_INVALID_TROPHY_ID (-1)
#define SCE_NP_TROPHY_INVALID_GROUP_ID (-2)
#define SCE_NP_TROPHY_BASE_GAME_GROUP_ID (-1)

#define SCE_NP_TROPHY_FLAG_SETSIZE (128)
#define SCE_NP_TROPHY_FLAG_BITS (sizeof(SceNpTrophyFlagMask) * 8)
#define SCE_NP_TROPHY_FLAG_BITS_ALL ((SceNpTrophyFlagMask)-1)
#define SCE_NP_TROPHY_FLAG_BITS_SHIFT (5)
#define SCE_NP_TROPHY_FLAG_BITS_MASK (SCE_NP_TROPHY_FLAG_BITS - 1)
#define SCE_NP_TROPHY_FLAG_BITS_MAX (SCE_NP_TROPHY_FLAG_SETSIZE - 1)

typedef uint32_t SceNpTrophyFlagMask;
typedef struct SceNpTrophyFlagArray {
SceNpTrophyFlagMask flagBits[SCE_NP_TROPHY_FLAG_SETSIZE >> SCE_NP_TROPHY_FLAG_BITS_SHIFT];
} SceNpTrophyFlagArray;

#define SCE_NP_TROPHY_FLAG_SET(n, p) ((p)->flagBits[(n) >> SCE_NP_TROPHY_FLAG_BITS_SHIFT] |= (1 << ((n)&SCE_NP_TROPHY_FLAG_BITS_MASK)))
#define SCE_NP_TROPHY_FLAG_CLR(n, p) ((p)->flagBits[(n) >> SCE_NP_TROPHY_FLAG_BITS_SHIFT] &= ~(1 << ((n)&SCE_NP_TROPHY_FLAG_BITS_MASK)))
#define SCE_NP_TROPHY_FLAG_ISSET(n, p) ((p)->flagBits[(n) >> SCE_NP_TROPHY_FLAG_BITS_SHIFT] & (1 << ((n)&SCE_NP_TROPHY_FLAG_BITS_MASK)))
#define SCE_NP_TROPHY_FLAG_ZERO(p) \
do { \
SceNpTrophyFlagArray *__fa = (p); \
SceNpTrophyFlagMask __i; \
for (__i = 0; __i < (SCE_NP_TROPHY_FLAG_SETSIZE >> SCE_NP_TROPHY_FLAG_BITS_SHIFT); __i++) \
__fa->flagBits[__i] = 0; \
} while (0)
#define SCE_NP_TROPHY_FLAG_SET_ALL(p) \
do { \
SceNpTrophyFlagArray *__fa = (p); \
SceNpTrophyFlagMask __i; \
for (__i = 0; __i < (SCE_NP_TROPHY_FLAG_SETSIZE >> SCE_NP_TROPHY_FLAG_BITS_SHIFT); __i++) \
__fa->flagBits[__i] = SCE_NP_TROPHY_FLAG_BITS_ALL; \
} while (0)

typedef struct SceNpTrophyGameDetails {
size_t size;
uint32_t numGroups;
uint32_t numTrophies;
uint32_t numPlatinum;
uint32_t numGold;
uint32_t numSilver;
uint32_t numBronze;
char title[SCE_NP_TROPHY_GAME_TITLE_MAX_SIZE];
char description[SCE_NP_TROPHY_GAME_DESCR_MAX_SIZE];
} SceNpTrophyGameDetails;

typedef struct SceNpTrophyGameData {
size_t size;
uint32_t unlockedTrophies;
uint32_t unlockedPlatinum;
uint32_t unlockedGold;
uint32_t unlockedSilver;
uint32_t unlockedBronze;
uint32_t progressPercentage;
} SceNpTrophyGameData;

typedef struct SceNpTrophyGroupDetails {
size_t size;
SceNpTrophyGroupId groupId;
uint32_t numTrophies;
uint32_t numPlatinum;
uint32_t numGold;
uint32_t numSilver;
uint32_t numBronze;
char title[SCE_NP_TROPHY_GROUP_TITLE_MAX_SIZE];
char description[SCE_NP_TROPHY_GROUP_DESCR_MAX_SIZE];
} SceNpTrophyGroupDetails;

typedef struct SceNpTrophyGroupData {
size_t size;
SceNpTrophyGroupId groupId;
uint32_t unlockedTrophies;
uint32_t unlockedPlatinum;
uint32_t unlockedGold;
uint32_t unlockedSilver;
uint32_t unlockedBronze;
uint32_t progressPercentage;
uint8_t reserved[4];
} SceNpTrophyGroupData;

typedef struct SceNpTrophyDetails {
size_t size;
SceNpTrophyId trophyId;
SceNpTrophyGrade trophyGrade;
SceNpTrophyGroupId groupId;
bool hidden;
uint8_t reserved[3];
char name[SCE_NP_TROPHY_NAME_MAX_SIZE];
char description[SCE_NP_TROPHY_DESCR_MAX_SIZE];
} SceNpTrophyDetails;

typedef struct SceNpTrophyData {
size_t size;
SceNpTrophyId trophyId;
bool unlocked;
uint8_t reserved[3];
SceRtcTick timestamp;
} SceNpTrophyData;

typedef struct SceNpTrophyScreenshotTarget {
SceNpTrophyContext context;
SceNpTrophyId trophyId;
} SceNpTrophyScreenshotTarget;
@@ -2,5 +2,35 @@

#include <stdint.h>

typedef int32_t SceUserServiceUserId;

typedef int SceUserServiceUserId;
#define SCE_USER_SERVICE_MAX_LOGIN_USERS (4)
#define SCE_USER_SERVICE_MAX_USER_NAME_LENGTH (16)
#define SCE_USER_SERVICE_USER_ID_INVALID (-1)
#define SCE_USER_SERVICE_USER_ID_SYSTEM (0xFF)
#define SCE_USER_SERVICE_USER_ID_EVERYONE (0xFE)

typedef struct SceUserServiceInitializeParams {
int32_t priority;
} SceUserServiceInitializeParams;

typedef enum SceUserServiceEventType {
SCE_USER_SERVICE_EVENT_TYPE_LOGIN = 0,
SCE_USER_SERVICE_EVENT_TYPE_LOGOUT
} SceUserServiceEventType;

typedef struct SceUserServiceEvent {
SceUserServiceEventType eventType;
SceUserServiceUserId userId;
} SceUserServiceEvent;

typedef struct SceUserServiceLoginUserIdList {
SceUserServiceUserId userId[SCE_USER_SERVICE_MAX_LOGIN_USERS];
} SceUserServiceLoginUserIdList;

typedef enum SceUserServiceUserColor {
SCE_USER_SERVICE_USER_COLOR_BLUE = 0,
SCE_USER_SERVICE_USER_COLOR_RED,
SCE_USER_SERVICE_USER_COLOR_GREEN,
SCE_USER_SERVICE_USER_COLOR_PINK
} SceUserServiceUserColor;
@@ -0,0 +1,132 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/commondialog.h>
#include <sce/types/userservice.h>

#define SCE_WEB_BROWSER_DIALOG_URL_SIZE (2048)
#define SCE_WEB_BROWSER_DIALOG_URL_SIZE_EXTENDED (8192)
#define SCE_WEB_BROWSER_DIALOG_DOMAIN_SIZE (256)
#define SCE_WEB_BROWSER_DIALOG_DOMAIN_COUNT (20)

#define SCE_WEB_BROWSER_DIALOG_MODE_INVALID (0)
#define SCE_WEB_BROWSER_DIALOG_MODE_DEFAULT (1)
#define SCE_WEB_BROWSER_DIALOG_MODE_CUSTOM (2)

#define SCE_WEB_BROWSER_DIALOG_CALLBACK_PARAM_TYPE_NONE (0)
#define SCE_WEB_BROWSER_DIALOG_CALLBACK_PARAM_TYPE_URL (1)

#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_NONE (0)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_TITLE (1 << 0)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_ADDRESS (1 << 1)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_FOOTER (1 << 2)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_BACKGROUND (1 << 3)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_PARTS_WAIT_DIALOG (1 << 4)

#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_NONE (0)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_EXIT (1 << 0)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_RELOAD (1 << 1)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_BACK (1 << 2)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_FORWARD (1 << 3)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_ZOOM (1 << 4)
#define SCE_WEB_BROWSER_DIALOG_CUSTOM_CONTROL_EXIT_UNTIL_COMPLETE (1 << 5)

#define SCE_WEB_BROWSER_DIALOG_IME_OPTION_DEFAULT 0x00000000
#define SCE_WEB_BROWSER_DIALOG_IME_OPTION_NO_AUTO_CAPITALIZATION 0x00000002
#define SCE_WEB_BROWSER_DIALOG_IME_OPTION_NO_LEARNING 0x00000020
#define SCE_WEB_BROWSER_DIALOG_IME_OPTION_DISABLE_COPY_PASTE 0x00000080
#define SCE_WEB_BROWSER_DIALOG_IME_OPTION_DISABLE_AUTO_SPACE 0x00000200

#define SCE_WEB_BROWSER_DIALOG_WEBVIEW_OPTION_NONE (0)
#define SCE_WEB_BROWSER_DIALOG_WEBVIEW_OPTION_BACKGROUND_TRANSPARENCY (1 << 0)
#define SCE_WEB_BROWSER_DIALOG_WEBVIEW_OPTION_CURSOR_NONE (1 << 1)

#define SCE_WEB_BROWSER_DIALOG_ANIMATION_DEFAULT (0)
#define SCE_WEB_BROWSER_DIALOG_ANIMATION_DISABLE (1)

#define SCE_WEB_BROWSER_DIALOG_COOKIE_COUNT (10)
#define SCE_WEB_BROWSER_DIALOG_COOKIE_URL_SIZE (2048)
#define SCE_WEB_BROWSER_DIALOG_COOKIE_DATA_SIZE (4096)

typedef struct SceWebBrowserDialogCallbackInitParam {
size_t size;
int32_t type;
int : 32;
const char* data;
char reserved[32];
} SceWebBrowserDialogCallbackInitParam;

typedef struct SceWebBrowserDialogCallbackResultParam {
size_t size;
int32_t type;
char data[SCE_WEB_BROWSER_DIALOG_URL_SIZE];
uint8_t reserved0[4];
char* buffer;
uint32_t bufferSize;
char reserved[20];
} SceWebBrowserDialogCallbackResultParam;

typedef struct SceWebBrowserDialogImeParam {
size_t size;
uint32_t option;
char reserved[256];
int : 32;
} SceWebBrowserDialogImeParam;

typedef struct SceWebBrowserDialogWebViewParam {
size_t size;
uint32_t option;
char reserved[256];
int : 32;
} SceWebBrowserDialogWebViewParam;

typedef struct SceWebBrowserDialogPredeterminedContentParam {
size_t size;
const char* domain[SCE_WEB_BROWSER_DIALOG_DOMAIN_COUNT];
char reserved[256];
} SceWebBrowserDialogPredeterminedContentParam;

typedef struct SceWebBrowserDialogParam {
SceCommonDialogBaseParam baseParam;
size_t size;
int32_t mode;
SceUserServiceUserId userId;
const char* url;
SceWebBrowserDialogCallbackInitParam* callbackInitParam;
uint16_t width;
uint16_t height;
uint16_t positionX;
uint16_t positionY;
uint32_t parts;
uint16_t headerWidth;
uint16_t headerPositionX;
uint16_t headerPositionY;
short : 16;
uint32_t control;
SceWebBrowserDialogImeParam* imeParam;
SceWebBrowserDialogWebViewParam* webviewParam;
uint32_t animation;
char reserved[202];
short : 16;
} SceWebBrowserDialogParam;

typedef struct SceWebBrowserDialogResult {
int32_t result;
int : 32;
SceWebBrowserDialogCallbackResultParam* callbackResultParam;
char reserved[240];
} SceWebBrowserDialogResult;

typedef struct SceWebBrowserDialogResetCookieParam {
size_t size;
char reserved[256];
} SceWebBrowserDialogResetCookieParam;

typedef struct SceWebBrowserDialogSetCookieParam {
size_t size;
const char* url;
const char* cookie;
char reserved[256];
} SceWebBrowserDialogSetCookieParam;
@@ -1,7 +1,16 @@
#pragma once

#include <stddef.h>
#include <stdint.h>

#include <sce/types/userservice.h>
int sceUserServiceInitialize(int *params);
int sceUserServiceTerminate();
int sceUserServiceGetInitialUser(SceUserServiceUserId *userId);
// #include for sceKernelCpumask

int32_t sceUserServiceInitialize(const SceUserServiceInitializeParams *initParams);
// int32_t sceUserServiceInitialize2(int threadPriority, SceKernelCpumask cpuAffinityMask);
int32_t sceUserServiceTerminate();
int32_t sceUserServiceGetLoginUserIdList(SceUserServiceLoginUserIdList *userIdList);
int32_t sceUserServiceGetEvent(SceUserServiceEvent *event);
int32_t sceUserServiceGetInitialUser(SceUserServiceUserId *userId);
int32_t sceUserServiceGetUserName(const SceUserServiceUserId userId, char *userName, const size_t size);
int32_t sceUserServiceGetUserColor(const SceUserServiceUserId userId, SceUserServiceUserColor *color);
@@ -0,0 +1,24 @@
#pragma once

#include <stdint.h>
#include <string.h>

#include <sce/commondialog.h>
#include <sce/types/webdialog.h>

int32_t sceWebBrowserDialogInitialize(void);
int32_t sceWebBrowserDialogOpen(const SceWebBrowserDialogParam *param);
int32_t sceWebBrowserDialogOpenForPredeterminedContent(const SceWebBrowserDialogParam *param, SceWebBrowserDialogPredeterminedContentParam *param2);
SceCommonDialogStatus sceWebBrowserDialogUpdateStatus(void);
SceCommonDialogStatus sceWebBrowserDialogGetStatus(void);
int32_t sceWebBrowserDialogGetResult(SceWebBrowserDialogResult *result);
int32_t sceWebBrowserDialogTerminate(void);
int32_t sceWebBrowserDialogClose(void);
int32_t sceWebBrowserDialogResetCookie(const SceWebBrowserDialogResetCookieParam *param);
int32_t sceWebBrowserDialogSetCookie(const SceWebBrowserDialogSetCookieParam *param);

static inline void sceWebBrowserDialogParamInitialize(SceWebBrowserDialogParam *param) {
memset(param, 0x0, sizeof(SceWebBrowserDialogParam));
_sceCommonDialogBaseParamInit(&param->baseParam);
param->size = sizeof(SceWebBrowserDialogParam);
}