#pragma once #include "cellRtc.h" #include "Utilities/BEType.h" #include error_code sceNpInit(u32 poolsize, vm::ptr poolptr); error_code sceNpTerm(); using np_in_addr_t = u32; using np_in_port_t = u16; using np_sa_family_t = u8; using np_socklen_t = u32; struct np_in_addr { np_in_addr_t np_s_addr; // TODO: alignment? }; using sys_memory_container_t = u32; using system_time_t = s64; using second_t = u32; using usecond_t = u64; using SceNpBasicAttachmentDataId = u32; using SceNpBasicMessageId = u64; using SceNpBasicMessageRecvAction = u32; using SceNpClanId = u32; using SceNpClansMessageId = u32; using SceNpClansMemberStatus = s32; using SceNpCustomMenuIndexMask = u32; using SceNpCustomMenuSelectedType = u32; using SceNpFriendlistCustomOptions = u64; using SceNpPlatformType = s32; using SceNpScoreBoardId = u32; using SceNpScoreClansBoardId = u32; using SceNpScorePcId = s32; using SceNpScoreRankNumber = u32; using SceNpScoreValue = s64; using SceNpTime = s64; // Error Codes enum SceNpError : u32 { // NP Manager Utility SCE_NP_ERROR_NOT_INITIALIZED = 0x8002aa01, SCE_NP_ERROR_ALREADY_INITIALIZED = 0x8002aa02, SCE_NP_ERROR_INVALID_ARGUMENT = 0x8002aa03, SCE_NP_ERROR_OUT_OF_MEMORY = 0x8002aa04, SCE_NP_ERROR_ID_NO_SPACE = 0x8002aa05, SCE_NP_ERROR_ID_NOT_FOUND = 0x8002aa06, SCE_NP_ERROR_SESSION_RUNNING = 0x8002aa07, SCE_NP_ERROR_LOGINID_ALREADY_EXISTS = 0x8002aa08, SCE_NP_ERROR_INVALID_TICKET_SIZE = 0x8002aa09, SCE_NP_ERROR_INVALID_STATE = 0x8002aa0a, SCE_NP_ERROR_ABORTED = 0x8002aa0b, SCE_NP_ERROR_OFFLINE = 0x8002aa0c, SCE_NP_ERROR_VARIANT_ACCOUNT_ID = 0x8002aa0d, SCE_NP_ERROR_GET_CLOCK = 0x8002aa0e, SCE_NP_ERROR_INSUFFICIENT_BUFFER = 0x8002aa0f, SCE_NP_ERROR_EXPIRED_TICKET = 0x8002aa10, SCE_NP_ERROR_TICKET_PARAM_NOT_FOUND = 0x8002aa11, SCE_NP_ERROR_UNSUPPORTED_TICKET_VERSION = 0x8002aa12, SCE_NP_ERROR_TICKET_STATUS_CODE_INVALID = 0x8002aa13, SCE_NP_ERROR_INVALID_TICKET_VERSION = 0x8002aa14, SCE_NP_ERROR_ALREADY_USED = 0x8002aa15, SCE_NP_ERROR_DIFFERENT_USER = 0x8002aa16, SCE_NP_ERROR_ALREADY_DONE = 0x8002aa17, // NP Basic Utility SCE_NP_BASIC_ERROR_ALREADY_INITIALIZED = 0x8002a661, SCE_NP_BASIC_ERROR_NOT_INITIALIZED = 0x8002a662, SCE_NP_BASIC_ERROR_NOT_SUPPORTED = 0x8002a663, SCE_NP_BASIC_ERROR_OUT_OF_MEMORY = 0x8002a664, SCE_NP_BASIC_ERROR_INVALID_ARGUMENT = 0x8002a665, SCE_NP_BASIC_ERROR_BAD_ID = 0x8002a666, SCE_NP_BASIC_ERROR_IDS_DIFFER = 0x8002a667, SCE_NP_BASIC_ERROR_PARSER_FAILED = 0x8002a668, SCE_NP_BASIC_ERROR_TIMEOUT = 0x8002a669, SCE_NP_BASIC_ERROR_NO_EVENT = 0x8002a66a, SCE_NP_BASIC_ERROR_EXCEEDS_MAX = 0x8002a66b, SCE_NP_BASIC_ERROR_INSUFFICIENT = 0x8002a66c, SCE_NP_BASIC_ERROR_NOT_REGISTERED = 0x8002a66d, SCE_NP_BASIC_ERROR_DATA_LOST = 0x8002a66e, SCE_NP_BASIC_ERROR_BUSY = 0x8002a66f, SCE_NP_BASIC_ERROR_STATUS = 0x8002a670, SCE_NP_BASIC_ERROR_CANCEL = 0x8002a671, SCE_NP_BASIC_ERROR_INVALID_MEMORY_CONTAINER = 0x8002a672, SCE_NP_BASIC_ERROR_INVALID_DATA_ID = 0x8002a673, SCE_NP_BASIC_ERROR_BROKEN_DATA = 0x8002a674, SCE_NP_BASIC_ERROR_BLOCKLIST_ADD_FAILED = 0x8002a675, SCE_NP_BASIC_ERROR_BLOCKLIST_IS_FULL = 0x8002a676, SCE_NP_BASIC_ERROR_SEND_FAILED = 0x8002a677, SCE_NP_BASIC_ERROR_NOT_CONNECTED = 0x8002a678, SCE_NP_BASIC_ERROR_INSUFFICIENT_DISK_SPACE = 0x8002a679, SCE_NP_BASIC_ERROR_INTERNAL_FAILURE = 0x8002a67a, SCE_NP_BASIC_ERROR_DOES_NOT_EXIST = 0x8002a67b, SCE_NP_BASIC_ERROR_INVALID = 0x8002a67c, SCE_NP_BASIC_ERROR_UNKNOWN = 0x8002a6bf, SCE_NP_EXT_ERROR_CONTEXT_DOES_NOT_EXIST = 0x8002a6a1, SCE_NP_EXT_ERROR_CONTEXT_ALREADY_EXISTS = 0x8002a6a2, SCE_NP_EXT_ERROR_NO_CONTEXT = 0x8002a6a3, SCE_NP_EXT_ERROR_NO_ORIGIN = 0x8002a6a4, // NP Common Utility SCE_NP_UTIL_ERROR_INVALID_ARGUMENT = 0x8002ab01, SCE_NP_UTIL_ERROR_OUT_OF_MEMORY = 0x8002ab02, SCE_NP_UTIL_ERROR_INSUFFICIENT = 0x8002ab03, SCE_NP_UTIL_ERROR_PARSER_FAILED = 0x8002ab04, SCE_NP_UTIL_ERROR_INVALID_PROTOCOL_ID = 0x8002ab05, SCE_NP_UTIL_ERROR_INVALID_NP_ID = 0x8002ab06, SCE_NP_UTIL_ERROR_INVALID_NP_LOBBY_ID = 0x8002ab07, SCE_NP_UTIL_ERROR_INVALID_NP_ROOM_ID = 0x8002ab08, SCE_NP_UTIL_ERROR_INVALID_NP_ENV = 0x8002ab09, SCE_NP_UTIL_ERROR_INVALID_TITLEID = 0x8002ab0a, SCE_NP_UTIL_ERROR_INVALID_CHARACTER = 0x8002ab0b, SCE_NP_UTIL_ERROR_INVALID_ESCAPE_STRING = 0x8002ab0c, SCE_NP_UTIL_ERROR_UNKNOWN_TYPE = 0x8002ab0d, SCE_NP_UTIL_ERROR_UNKNOWN = 0x8002ab0e, SCE_NP_UTIL_ERROR_NOT_MATCH = 0x8002ab0f, SCE_NP_UTIL_ERROR_UNKNOWN_PLATFORM_TYPE = 0x8002ab10, // NP Friendlist Utility SCE_NP_FRIENDLIST_ERROR_ALREADY_INITIALIZED = 0x8002ab20, SCE_NP_FRIENDLIST_ERROR_NOT_INITIALIZED = 0x8002ab21, SCE_NP_FRIENDLIST_ERROR_OUT_OF_MEMORY = 0x8002ab22, SCE_NP_FRIENDLIST_ERROR_INVALID_MEMORY_CONTAINER = 0x8002ab23, SCE_NP_FRIENDLIST_ERROR_INSUFFICIENT = 0x8002ab24, SCE_NP_FRIENDLIST_ERROR_CANCEL = 0x8002ab25, SCE_NP_FRIENDLIST_ERROR_STATUS = 0x8002ab26, SCE_NP_FRIENDLIST_ERROR_BUSY = 0x8002ab27, SCE_NP_FRIENDLIST_ERROR_INVALID_ARGUMENT = 0x8002ab28, // NP Profile Utility SCE_NP_PROFILE_ERROR_ALREADY_INITIALIZED = 0x8002ab40, SCE_NP_PROFILE_ERROR_NOT_INITIALIZED = 0x8002ab41, SCE_NP_PROFILE_ERROR_OUT_OF_MEMORY = 0x8002ab42, SCE_NP_PROFILE_ERROR_NOT_SUPPORTED = 0x8002ab43, SCE_NP_PROFILE_ERROR_INSUFFICIENT = 0x8002ab44, SCE_NP_PROFILE_ERROR_CANCEL = 0x8002ab45, SCE_NP_PROFILE_ERROR_STATUS = 0x8002ab46, SCE_NP_PROFILE_ERROR_BUSY = 0x8002ab47, SCE_NP_PROFILE_ERROR_INVALID_ARGUMENT = 0x8002ab48, SCE_NP_PROFILE_ERROR_ABORT = 0x8002ab49, // NP Community Utility SCE_NP_COMMUNITY_ERROR_ALREADY_INITIALIZED = 0x8002a101, SCE_NP_COMMUNITY_ERROR_NOT_INITIALIZED = 0x8002a102, SCE_NP_COMMUNITY_ERROR_OUT_OF_MEMORY = 0x8002a103, SCE_NP_COMMUNITY_ERROR_INVALID_ARGUMENT = 0x8002a104, SCE_NP_COMMUNITY_ERROR_NO_TITLE_SET = 0x8002a105, SCE_NP_COMMUNITY_ERROR_NO_LOGIN = 0x8002a106, SCE_NP_COMMUNITY_ERROR_TOO_MANY_OBJECTS = 0x8002a107, SCE_NP_COMMUNITY_ERROR_TRANSACTION_STILL_REFERENCED = 0x8002a108, SCE_NP_COMMUNITY_ERROR_ABORTED = 0x8002a109, SCE_NP_COMMUNITY_ERROR_NO_RESOURCE = 0x8002a10a, SCE_NP_COMMUNITY_ERROR_BAD_RESPONSE = 0x8002a10b, SCE_NP_COMMUNITY_ERROR_BODY_TOO_LARGE = 0x8002a10c, SCE_NP_COMMUNITY_ERROR_HTTP_SERVER = 0x8002a10d, SCE_NP_COMMUNITY_ERROR_INVALID_SIGNATURE = 0x8002a10e, SCE_NP_COMMUNITY_ERROR_TIMEOUT = 0x8002a10f, SCE_NP_COMMUNITY_ERROR_INSUFFICIENT_ARGUMENT = 0x8002a1a1, SCE_NP_COMMUNITY_ERROR_UNKNOWN_TYPE = 0x8002a1a2, SCE_NP_COMMUNITY_ERROR_INVALID_ID = 0x8002a1a3, SCE_NP_COMMUNITY_ERROR_INVALID_ONLINE_ID = 0x8002a1a4, SCE_NP_COMMUNITY_ERROR_INVALID_TICKET = 0x8002a1a5, SCE_NP_COMMUNITY_ERROR_CLIENT_HANDLE_ALREADY_EXISTS = 0x8002a1a6, SCE_NP_COMMUNITY_ERROR_INSUFFICIENT_BUFFER = 0x8002a1a7, SCE_NP_COMMUNITY_ERROR_INVALID_TYPE = 0x8002a1a8, SCE_NP_COMMUNITY_ERROR_TRANSACTION_ALREADY_END = 0x8002a1a9, SCE_NP_COMMUNITY_ERROR_TRANSACTION_BEFORE_END = 0x8002a1aa, SCE_NP_COMMUNITY_ERROR_BUSY_BY_ANOTEHR_TRANSACTION = 0x8002a1ab, SCE_NP_COMMUNITY_ERROR_INVALID_ALIGNMENT = 0x8002a1ac, SCE_NP_COMMUNITY_ERROR_TOO_MANY_NPID = 0x8002a1ad, SCE_NP_COMMUNITY_ERROR_TOO_LARGE_RANGE = 0x8002a1ae, SCE_NP_COMMUNITY_ERROR_INVALID_PARTITION = 0x8002a1af, SCE_NP_COMMUNITY_ERROR_TOO_MANY_SLOTID = 0x8002a1b1, // NP Community Server SCE_NP_COMMUNITY_SERVER_ERROR_BAD_REQUEST = 0x8002a401, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_TICKET = 0x8002a402, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_SIGNATURE = 0x8002a403, SCE_NP_COMMUNITY_SERVER_ERROR_EXPIRED_TICKET = 0x8002a404, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_NPID = 0x8002a405, SCE_NP_COMMUNITY_SERVER_ERROR_FORBIDDEN = 0x8002a406, SCE_NP_COMMUNITY_SERVER_ERROR_INTERNAL_SERVER_ERROR = 0x8002a407, SCE_NP_COMMUNITY_SERVER_ERROR_VERSION_NOT_SUPPORTED = 0x8002a408, SCE_NP_COMMUNITY_SERVER_ERROR_SERVICE_UNAVAILABLE = 0x8002a409, SCE_NP_COMMUNITY_SERVER_ERROR_PLAYER_BANNED = 0x8002a40a, SCE_NP_COMMUNITY_SERVER_ERROR_CENSORED = 0x8002a40b, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_RECORD_FORBIDDEN = 0x8002a40c, SCE_NP_COMMUNITY_SERVER_ERROR_USER_PROFILE_NOT_FOUND = 0x8002a40d, SCE_NP_COMMUNITY_SERVER_ERROR_UPLOADER_DATA_NOT_FOUND = 0x8002a40e, SCE_NP_COMMUNITY_SERVER_ERROR_QUOTA_MASTER_NOT_FOUND = 0x8002a40f, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_TITLE_NOT_FOUND = 0x8002a410, SCE_NP_COMMUNITY_SERVER_ERROR_BLACKLISTED_USER_ID = 0x8002a411, SCE_NP_COMMUNITY_SERVER_ERROR_GAME_RANKING_NOT_FOUND = 0x8002a412, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_STORE_NOT_FOUND = 0x8002a414, SCE_NP_COMMUNITY_SERVER_ERROR_NOT_BEST_SCORE = 0x8002a415, SCE_NP_COMMUNITY_SERVER_ERROR_LATEST_UPDATE_NOT_FOUND = 0x8002a416, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_BOARD_MASTER_NOT_FOUND = 0x8002a417, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_GAME_DATA_MASTER_NOT_FOUND = 0x8002a418, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ANTICHEAT_DATA = 0x8002a419, SCE_NP_COMMUNITY_SERVER_ERROR_TOO_LARGE_DATA = 0x8002a41a, SCE_NP_COMMUNITY_SERVER_ERROR_NO_SUCH_USER_NPID = 0x8002a41b, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ENVIRONMENT = 0x8002a41d, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ONLINE_NAME_CHARACTER = 0x8002a41f, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ONLINE_NAME_LENGTH = 0x8002a420, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ABOUT_ME_CHARACTER = 0x8002a421, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_ABOUT_ME_LENGTH = 0x8002a422, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_SCORE = 0x8002a423, SCE_NP_COMMUNITY_SERVER_ERROR_OVER_THE_RANKING_LIMIT = 0x8002a424, SCE_NP_COMMUNITY_SERVER_ERROR_FAIL_TO_CREATE_SIGNATURE = 0x8002a426, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_MASTER_INFO_NOT_FOUND = 0x8002a427, SCE_NP_COMMUNITY_SERVER_ERROR_OVER_THE_GAME_DATA_LIMIT = 0x8002a428, SCE_NP_COMMUNITY_SERVER_ERROR_SELF_DATA_NOT_FOUND = 0x8002a42a, SCE_NP_COMMUNITY_SERVER_ERROR_USER_NOT_ASSIGNED = 0x8002a42b, SCE_NP_COMMUNITY_SERVER_ERROR_GAME_DATA_ALREADY_EXISTS = 0x8002a42c, SCE_NP_COMMUNITY_SERVER_ERROR_TOO_MANY_RESULTS = 0x8002a42d, SCE_NP_COMMUNITY_SERVER_ERROR_NOT_RECORDABLE_VERSION = 0x8002a42e, SCE_NP_COMMUNITY_SERVER_ERROR_USER_STORAGE_TITLE_MASTER_NOT_FOUND = 0x8002a448, SCE_NP_COMMUNITY_SERVER_ERROR_INVALID_VIRTUAL_USER = 0x8002a449, SCE_NP_COMMUNITY_SERVER_ERROR_USER_STORAGE_DATA_NOT_FOUND = 0x8002a44a, SCE_NP_COMMUNITY_SERVER_ERROR_CONDITIONS_NOT_SATISFIED = 0x8002a473, SCE_NP_COMMUNITY_SERVER_ERROR_MATCHING_BEFORE_SERVICE = 0x8002a4a0, SCE_NP_COMMUNITY_SERVER_ERROR_MATCHING_END_OF_SERVICE = 0x8002a4a1, SCE_NP_COMMUNITY_SERVER_ERROR_MATCHING_MAINTENANCE = 0x8002a4a2, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_BEFORE_SERVICE = 0x8002a4a3, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_END_OF_SERVICE = 0x8002a4a4, SCE_NP_COMMUNITY_SERVER_ERROR_RANKING_MAINTENANCE = 0x8002a4a5, SCE_NP_COMMUNITY_SERVER_ERROR_NO_SUCH_TITLE = 0x8002a4a6, SCE_NP_COMMUNITY_SERVER_ERROR_TITLE_USER_STORAGE_BEFORE_SERVICE = 0x8002a4aa, SCE_NP_COMMUNITY_SERVER_ERROR_TITLE_USER_STORAGE_END_OF_SERVICE = 0x8002a4ab, SCE_NP_COMMUNITY_SERVER_ERROR_TITLE_USER_STORAGE_MAINTENANCE = 0x8002a4ac, SCE_NP_COMMUNITY_SERVER_ERROR_UNSPECIFIED = 0x8002a4ff, // DRM SCE_NP_DRM_ERROR_LICENSE_NOT_FOUND = 0x80029521, SCE_NP_DRM_ERROR_OUT_OF_MEMORY = 0x80029501, SCE_NP_DRM_ERROR_INVALID_PARAM = 0x80029502, SCE_NP_DRM_ERROR_SERVER_RESPONSE = 0x80029509, SCE_NP_DRM_ERROR_NO_ENTITLEMENT = 0x80029513, SCE_NP_DRM_ERROR_BAD_ACT = 0x80029514, SCE_NP_DRM_ERROR_BAD_FORMAT = 0x80029515, SCE_NP_DRM_ERROR_NO_LOGIN = 0x80029516, SCE_NP_DRM_ERROR_INTERNAL = 0x80029517, SCE_NP_DRM_ERROR_BAD_PERM = 0x80029519, SCE_NP_DRM_ERROR_UNKNOWN_VERSION = 0x8002951a, SCE_NP_DRM_ERROR_TIME_LIMIT = 0x8002951b, SCE_NP_DRM_ERROR_DIFFERENT_ACCOUNT_ID = 0x8002951c, SCE_NP_DRM_ERROR_DIFFERENT_DRM_TYPE = 0x8002951d, SCE_NP_DRM_ERROR_SERVICE_NOT_STARTED = 0x8002951e, SCE_NP_DRM_ERROR_BUSY = 0x80029520, SCE_NP_DRM_ERROR_IO = 0x80029525, SCE_NP_DRM_ERROR_FORMAT = 0x80029530, SCE_NP_DRM_ERROR_FILENAME = 0x80029533, SCE_NP_DRM_ERROR_K_LICENSEE = 0x80029534, // Auth SCE_NP_AUTH_EINVAL = 0x8002a002, SCE_NP_AUTH_ENOMEM = 0x8002a004, SCE_NP_AUTH_ESRCH = 0x8002a005, SCE_NP_AUTH_EBUSY = 0x8002a00a, SCE_NP_AUTH_EABORT = 0x8002a00c, SCE_NP_AUTH_EEXIST = 0x8002a014, SCE_NP_AUTH_EINVALID_ARGUMENT = 0x8002a015, // Auth extended SCE_NP_AUTH_ERROR_SERVICE_END = 0x8002a200, SCE_NP_AUTH_ERROR_SERVICE_DOWN = 0x8002a201, SCE_NP_AUTH_ERROR_SERVICE_BUSY = 0x8002a202, SCE_NP_AUTH_ERROR_SERVER_MAINTENANCE = 0x8002a203, SCE_NP_AUTH_ERROR_INVALID_DATA_LENGTH = 0x8002a210, SCE_NP_AUTH_ERROR_INVALID_USER_AGENT = 0x8002a211, SCE_NP_AUTH_ERROR_INVALID_VERSION = 0x8002a212, SCE_NP_AUTH_ERROR_INVALID_SERVICE_ID = 0x8002a220, SCE_NP_AUTH_ERROR_INVALID_CREDENTIAL = 0x8002a221, SCE_NP_AUTH_ERROR_INVALID_ENTITLEMENT_ID = 0x8002a222, SCE_NP_AUTH_ERROR_INVALID_CONSUMED_COUNT = 0x8002a223, SCE_NP_AUTH_ERROR_INVALID_CONSOLE_ID = 0x8002a224, SCE_NP_AUTH_ERROR_CONSOLE_ID_SUSPENDED = 0x8002a227, SCE_NP_AUTH_ERROR_ACCOUNT_CLOSED = 0x8002a230, SCE_NP_AUTH_ERROR_ACCOUNT_SUSPENDED = 0x8002a231, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_EULA = 0x8002a232, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT1 = 0x8002a240, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT2 = 0x8002a241, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT3 = 0x8002a242, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT4 = 0x8002a243, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT5 = 0x8002a244, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT6 = 0x8002a245, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT7 = 0x8002a246, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT8 = 0x8002a247, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT9 = 0x8002a248, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT10 = 0x8002a249, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT11 = 0x8002a24a, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT12 = 0x8002a24b, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT13 = 0x8002a24c, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT14 = 0x8002a24d, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT15 = 0x8002a24e, SCE_NP_AUTH_ERROR_ACCOUNT_RENEW_ACCOUNT16 = 0x8002a24f, SCE_NP_AUTH_ERROR_UNKNOWN = 0x8002a280, // Core Utility SCE_NP_CORE_UTIL_ERROR_INVALID_ARGUMENT = 0x8002a501, SCE_NP_CORE_UTIL_ERROR_OUT_OF_MEMORY = 0x8002a502, SCE_NP_CORE_UTIL_ERROR_INSUFFICIENT = 0x8002a503, SCE_NP_CORE_UTIL_ERROR_PARSER_FAILED = 0x8002a504, SCE_NP_CORE_UTIL_ERROR_INVALID_PROTOCOL_ID = 0x8002a505, SCE_NP_CORE_UTIL_ERROR_INVALID_EXTENSION = 0x8002a506, SCE_NP_CORE_UTIL_ERROR_INVALID_TEXT = 0x8002a507, SCE_NP_CORE_UTIL_ERROR_UNKNOWN_TYPE = 0x8002a508, SCE_NP_CORE_UTIL_ERROR_UNKNOWN = 0x8002a509, // Core Parser SCE_NP_CORE_PARSER_ERROR_NOT_INITIALIZED = 0x8002a511, SCE_NP_CORE_PARSER_ERROR_ALREADY_INITIALIZED = 0x8002a512, SCE_NP_CORE_PARSER_ERROR_OUT_OF_MEMORY = 0x8002a513, SCE_NP_CORE_PARSER_ERROR_INSUFFICIENT = 0x8002a514, SCE_NP_CORE_PARSER_ERROR_INVALID_FORMAT = 0x8002a515, SCE_NP_CORE_PARSER_ERROR_INVALID_ARGUMENT = 0x8002a516, SCE_NP_CORE_PARSER_ERROR_INVALID_HANDLE = 0x8002a517, SCE_NP_CORE_PARSER_ERROR_INVALID_ICON = 0x8002a518, SCE_NP_CORE_PARSER_ERROR_UNKNOWN = 0x8002a519, // Core Errors SCE_NP_CORE_ERROR_ALREADY_INITIALIZED = 0x8002a521, SCE_NP_CORE_ERROR_NOT_INITIALIZED = 0x8002a522, SCE_NP_CORE_ERROR_INVALID_ARGUMENT = 0x8002a523, SCE_NP_CORE_ERROR_OUT_OF_MEMORY = 0x8002a524, SCE_NP_CORE_ERROR_ID_NOT_AVAILABLE = 0x8002a525, SCE_NP_CORE_ERROR_USER_OFFLINE = 0x8002a526, SCE_NP_CORE_ERROR_SESSION_RUNNING = 0x8002a527, SCE_NP_CORE_ERROR_SESSION_NOT_ESTABLISHED = 0x8002a528, SCE_NP_CORE_ERROR_SESSION_INVALID_STATE = 0x8002a529, SCE_NP_CORE_ERROR_SESSION_ID_TOO_LONG = 0x8002a52a, SCE_NP_CORE_ERROR_SESSION_INVALID_NAMESPACE = 0x8002a52b, SCE_NP_CORE_ERROR_CONNECTION_TIMEOUT = 0x8002a52c, SCE_NP_CORE_ERROR_GETSOCKOPT = 0x8002a52d, SCE_NP_CORE_ERROR_SSL_NOT_INITIALIZED = 0x8002a52e, SCE_NP_CORE_ERROR_SSL_ALREADY_INITIALIZED = 0x8002a52f, SCE_NP_CORE_ERROR_SSL_NO_CERT = 0x8002a530, SCE_NP_CORE_ERROR_SSL_NO_TRUSTWORTHY_CA = 0x8002a531, SCE_NP_CORE_ERROR_SSL_INVALID_CERT = 0x8002a532, SCE_NP_CORE_ERROR_SSL_CERT_VERIFY = 0x8002a533, SCE_NP_CORE_ERROR_SSL_CN_CHECK = 0x8002a534, SCE_NP_CORE_ERROR_SSL_HANDSHAKE_FAILED = 0x8002a535, SCE_NP_CORE_ERROR_SSL_SEND = 0x8002a536, SCE_NP_CORE_ERROR_SSL_RECV = 0x8002a537, SCE_NP_CORE_ERROR_SSL_CREATE_CTX = 0x8002a538, SCE_NP_CORE_ERROR_PARSE_PEM = 0x8002a539, SCE_NP_CORE_ERROR_INVALID_INITIATE_STREAM = 0x8002a53a, SCE_NP_CORE_ERROR_SASL_NOT_SUPPORTED = 0x8002a53b, SCE_NP_CORE_ERROR_NAMESPACE_ALREADY_EXISTS = 0x8002a53c, SCE_NP_CORE_ERROR_FROM_ALREADY_EXISTS = 0x8002a53d, SCE_NP_CORE_ERROR_MODULE_NOT_REGISTERED = 0x8002a53e, SCE_NP_CORE_ERROR_MODULE_FROM_NOT_FOUND = 0x8002a53f, SCE_NP_CORE_ERROR_UNKNOWN_NAMESPACE = 0x8002a540, SCE_NP_CORE_ERROR_INVALID_VERSION = 0x8002a541, SCE_NP_CORE_ERROR_LOGIN_TIMEOUT = 0x8002a542, SCE_NP_CORE_ERROR_TOO_MANY_SESSIONS = 0x8002a543, SCE_NP_CORE_ERROR_SENDLIST_NOT_FOUND = 0x8002a544, SCE_NP_CORE_ERROR_NO_ID = 0x8002a545, SCE_NP_CORE_ERROR_LOAD_CERTS = 0x8002a546, SCE_NP_CORE_ERROR_NET_SELECT = 0x8002a547, SCE_NP_CORE_ERROR_DISCONNECTED = 0x8002a548, SCE_NP_CORE_ERROR_TICKET_TOO_SMALL = 0x8002a549, SCE_NP_CORE_ERROR_INVALID_TICKET = 0x8002a54a, SCE_NP_CORE_ERROR_INVALID_ONLINEID = 0x8002a54b, SCE_NP_CORE_ERROR_GETHOSTBYNAME = 0x8002a54c, SCE_NP_CORE_ERROR_UNDEFINED_STREAM_ERROR = 0x8002a54d, SCE_NP_CORE_ERROR_INTERNAL = 0x8002a5ff, // Core DNS SCE_NP_CORE_ERROR_DNS_HOST_NOT_FOUND = 0x8002af01, SCE_NP_CORE_ERROR_DNS_TRY_AGAIN = 0x8002af02, SCE_NP_CORE_ERROR_DNS_NO_RECOVERY = 0x8002af03, SCE_NP_CORE_ERROR_DNS_NO_DATA = 0x8002af04, SCE_NP_CORE_ERROR_DNS_NO_ADDRESS = 0x8002afff, // Core Server SCE_NP_CORE_SERVER_ERROR_CONFLICT = 0x8002a303, SCE_NP_CORE_SERVER_ERROR_NOT_AUTHORIZED = 0x8002a30d, SCE_NP_CORE_SERVER_ERROR_REMOTE_CONNECTION_FAILED = 0x8002a30f, SCE_NP_CORE_SERVER_ERROR_RESOURCE_CONSTRAINT = 0x8002a310, SCE_NP_CORE_SERVER_ERROR_SYSTEM_SHUTDOWN = 0x8002a313, SCE_NP_CORE_SERVER_ERROR_UNSUPPORTED_CLIENT_VERSION = 0x8002a319, // Signaling SCE_NP_SIGNALING_ERROR_NOT_INITIALIZED = 0x8002a801, SCE_NP_SIGNALING_ERROR_ALREADY_INITIALIZED = 0x8002a802, SCE_NP_SIGNALING_ERROR_OUT_OF_MEMORY = 0x8002a803, SCE_NP_SIGNALING_ERROR_CTXID_NOT_AVAILABLE = 0x8002a804, SCE_NP_SIGNALING_ERROR_CTX_NOT_FOUND = 0x8002a805, SCE_NP_SIGNALING_ERROR_REQID_NOT_AVAILABLE = 0x8002a806, SCE_NP_SIGNALING_ERROR_REQ_NOT_FOUND = 0x8002a807, SCE_NP_SIGNALING_ERROR_PARSER_CREATE_FAILED = 0x8002a808, SCE_NP_SIGNALING_ERROR_PARSER_FAILED = 0x8002a809, SCE_NP_SIGNALING_ERROR_INVALID_NAMESPACE = 0x8002a80a, SCE_NP_SIGNALING_ERROR_NETINFO_NOT_AVAILABLE = 0x8002a80b, SCE_NP_SIGNALING_ERROR_PEER_NOT_RESPONDING = 0x8002a80c, SCE_NP_SIGNALING_ERROR_CONNID_NOT_AVAILABLE = 0x8002a80d, SCE_NP_SIGNALING_ERROR_CONN_NOT_FOUND = 0x8002a80e, SCE_NP_SIGNALING_ERROR_PEER_UNREACHABLE = 0x8002a80f, SCE_NP_SIGNALING_ERROR_TERMINATED_BY_PEER = 0x8002a810, SCE_NP_SIGNALING_ERROR_TIMEOUT = 0x8002a811, SCE_NP_SIGNALING_ERROR_CTX_MAX = 0x8002a812, SCE_NP_SIGNALING_ERROR_RESULT_NOT_FOUND = 0x8002a813, SCE_NP_SIGNALING_ERROR_CONN_IN_PROGRESS = 0x8002a814, SCE_NP_SIGNALING_ERROR_INVALID_ARGUMENT = 0x8002a815, SCE_NP_SIGNALING_ERROR_OWN_NP_ID = 0x8002a816, SCE_NP_SIGNALING_ERROR_TOO_MANY_CONN = 0x8002a817, SCE_NP_SIGNALING_ERROR_TERMINATED_BY_MYSELF = 0x8002a818, // Custom Menu SCE_NP_CUSTOM_MENU_ERROR_ALREADY_INITIALIZED = 0x80023b01, SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED = 0x80023b02, SCE_NP_CUSTOM_MENU_ERROR_OUT_OF_MEMORY = 0x80023b03, SCE_NP_CUSTOM_MENU_ERROR_NOT_SUPPORTED = 0x80023b04, SCE_NP_CUSTOM_MENU_ERROR_INSUFFICIENT = 0x80023b05, SCE_NP_CUSTOM_MENU_ERROR_CANCEL = 0x80023b06, SCE_NP_CUSTOM_MENU_ERROR_STATUS = 0x80023b07, SCE_NP_CUSTOM_MENU_ERROR_BUSY = 0x80023b08, SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT = 0x80023b09, SCE_NP_CUSTOM_MENU_ERROR_ABORT = 0x80023b0a, SCE_NP_CUSTOM_MENU_ERROR_NOT_REGISTERED = 0x80023b0b, SCE_NP_CUSTOM_MENU_ERROR_EXCEEDS_MAX = 0x80023b0c, SCE_NP_CUSTOM_MENU_ERROR_INVALID_CHARACTER = 0x80023b0d, }; // Basic presence options enum { SCE_NP_BASIC_PRESENCE_OPTIONS_SET_DATA = 0x00000001, SCE_NP_BASIC_PRESENCE_OPTIONS_SET_STATUS = 0x00000002, SCE_NP_BASIC_PRESENCE_OPTIONS_ALL_OPTIONS = 0x00000003, // sum of all other options }; // Basic presence states enum { SCE_NP_BASIC_PRESENCE_STATE_OFFLINE = 0, SCE_NP_BASIC_PRESENCE_STATE_OUT_OF_CONTEXT = 1, SCE_NP_BASIC_PRESENCE_STATE_IN_CONTEXT = 2 }; // Basic player options enum { SCE_NP_BASIC_PLAYERS_HISTORY_OPTIONS_BY_NP_COMM_ID = 0, SCE_NP_BASIC_PLAYERS_HISTORY_OPTIONS_ALL = 1 }; // Custom menu selection types enum : SceNpCustomMenuSelectedType { SCE_NP_CUSTOM_MENU_SELECTED_TYPE_ME = 1, SCE_NP_CUSTOM_MENU_SELECTED_TYPE_FRIEND = 2, SCE_NP_CUSTOM_MENU_SELECTED_TYPE_PLAYER = 3, }; // Custom menu action masks enum SceNpCustomMenuActionMask : u32 { SCE_NP_CUSTOM_MENU_ACTION_MASK_ME = 0x00000001, SCE_NP_CUSTOM_MENU_ACTION_MASK_FRIEND = 0x00000002, SCE_NP_CUSTOM_MENU_ACTION_MASK_PLAYER = 0x00000004, SCE_NP_CUSTOM_MENU_ACTION_MASK_ALL = 0x00000007 // sum of all other masks }; // Custom menu index mask enum { SCE_NP_CUSTOM_MENU_INDEX_BITS = (sizeof(SceNpCustomMenuIndexMask) * 8), SCE_NP_CUSTOM_MENU_INDEX_BITS_ALL = (static_cast(-1)), SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT = 5, SCE_NP_CUSTOM_MENU_INDEX_BITS_MASK = (SCE_NP_CUSTOM_MENU_INDEX_BITS - 1), SCE_NP_CUSTOM_MENU_INDEX_BITS_MAX = 127, SCE_NP_CUSTOM_MENU_INDEX_SETSIZE = 128, }; #define SCE_NP_CUSTOM_MENU_INDEX_SET(n, p) ((p)->index_bits[(n) >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT] |= (1 << ((n) & SCE_NP_CUSTOM_MENU_INDEX_BITS_MASK))) #define SCE_NP_CUSTOM_MENU_INDEX_CLR(n, p) ((p)->index_bits[(n) >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT] &= ~(1 << ((n) & SCE_NP_CUSTOM_MENU_INDEX_BITS_MASK))) #define SCE_NP_CUSTOM_MENU_INDEX_ISSET(n, p) ((p)->index_bits[(n) >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT] & (1 << ((n) & SCE_NP_CUSTOM_MENU_INDEX_BITS_MASK))) #define SCE_NP_CUSTOM_MENU_INDEX_ZERO(p) ( for (u32 i = 0; i < (SCE_NP_CUSTOM_MENU_INDEX_SETSIZE >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT); i++) p->index_bits[i] = 0; ) #define SCE_NP_CUSTOM_MENU_INDEX_SET_ALL(p) ( for (u32 i = 0; i < (SCE_NP_CUSTOM_MENU_INDEX_SETSIZE >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT); i++) p->index_bits[i] = SCE_NP_CUSTOM_MENU_INDEX_BITS_ALL; ) enum { SCE_NP_MIN_POOLSIZE = 128 * 1024 }; enum { SCE_NP_DRM_OPEN_FLAG = 2 }; // NP Manager Utility statuses enum { SCE_NP_MANAGER_STATUS_OFFLINE = -1, SCE_NP_MANAGER_STATUS_GETTING_TICKET = 0, SCE_NP_MANAGER_STATUS_GETTING_PROFILE = 1, SCE_NP_MANAGER_STATUS_LOGGING_IN = 2, SCE_NP_MANAGER_STATUS_ONLINE = 3, }; // Event types enum { SCE_NP_BASIC_EVENT_UNKNOWN = -1, SCE_NP_BASIC_EVENT_OFFLINE = 0, SCE_NP_BASIC_EVENT_PRESENCE = 1, SCE_NP_BASIC_EVENT_MESSAGE = 2, SCE_NP_BASIC_EVENT_ADD_FRIEND_RESULT = 3, SCE_NP_BASIC_EVENT_INCOMING_ATTACHMENT = 4, SCE_NP_BASIC_EVENT_INCOMING_INVITATION = 5, SCE_NP_BASIC_EVENT_END_OF_INITIAL_PRESENCE = 6, SCE_NP_BASIC_EVENT_SEND_ATTACHMENT_RESULT = 7, SCE_NP_BASIC_EVENT_RECV_ATTACHMENT_RESULT = 8, SCE_NP_BASIC_EVENT_OUT_OF_CONTEXT = 9, SCE_NP_BASIC_EVENT_FRIEND_REMOVED = 10, SCE_NP_BASIC_EVENT_ADD_BLOCKLIST_RESULT = 11, SCE_NP_BASIC_EVENT_SEND_MESSAGE_RESULT = 12, SCE_NP_BASIC_EVENT_SEND_INVITATION_RESULT = 13, SCE_NP_BASIC_EVENT_RECV_INVITATION_RESULT = 14, SCE_NP_BASIC_EVENT_MESSAGE_MARKED_AS_USED_RESULT = 15, SCE_NP_BASIC_EVENT_INCOMING_CUSTOM_INVITATION = 16, SCE_NP_BASIC_EVENT_INCOMING_CLAN_MESSAGE = 17, SCE_NP_BASIC_EVENT_ADD_PLAYERS_HISTORY_RESULT = 18, SCE_NP_BASIC_EVENT_SEND_CUSTOM_DATA_RESULT = 19, SCE_NP_BASIC_EVENT_RECV_CUSTOM_DATA_RESULT = 20, SCE_NP_BASIC_EVENT_INCOMING_CUSTOM_DATA_MESSAGE = 21, SCE_NP_BASIC_EVENT_SEND_URL_ATTACHMENT_RESULT = 22, SCE_NP_BASIC_EVENT_INCOMING_BOOTABLE_INVITATION = 23, SCE_NP_BASIC_EVENT_BLOCKLIST_UPDATE = 24, SCE_NP_BASIC_EVENT_INCOMING_BOOTABLE_CUSTOM_DATA_MESSAGE = 25, }; // IDs for attachment data objects enum : SceNpBasicAttachmentDataId { SCE_NP_BASIC_INVALID_ATTACHMENT_DATA_ID = 0, SCE_NP_BASIC_INVALID_MESSAGE_ID = 0, SCE_NP_BASIC_SELECTED_INVITATION_DATA = 1, SCE_NP_BASIC_SELECTED_MESSAGE_DATA = 2, }; // Actions made in system GUI enum { SCE_NP_BASIC_MESSAGE_ACTION_UNKNOWN = 0, SCE_NP_BASIC_MESSAGE_ACTION_USE = 1, SCE_NP_BASIC_MESSAGE_ACTION_ACCEPT = 2, SCE_NP_BASIC_MESSAGE_ACTION_DENY = 3, }; // Main types of messages enum SceNpBasicMessageMainType : u16 { SCE_NP_BASIC_MESSAGE_MAIN_TYPE_DATA_ATTACHMENT = 0, SCE_NP_BASIC_MESSAGE_MAIN_TYPE_GENERAL = 1, SCE_NP_BASIC_MESSAGE_MAIN_TYPE_ADD_FRIEND = 2, SCE_NP_BASIC_MESSAGE_MAIN_TYPE_INVITE = 3, SCE_NP_BASIC_MESSAGE_MAIN_TYPE_CUSTOM_DATA = 4, SCE_NP_BASIC_MESSAGE_MAIN_TYPE_URL_ATTACHMENT = 5, }; // Sub types of messages enum SceNpBasicMessageSubType : u16 { SCE_NP_BASIC_MESSAGE_DATA_ATTACHMENT_SUBTYPE_ACTION_USE = 0, SCE_NP_BASIC_MESSAGE_GENERAL_SUBTYPE_NONE = 0, SCE_NP_BASIC_MESSAGE_ADD_FRIEND_SUBTYPE_NONE = 0, SCE_NP_BASIC_MESSAGE_INVITE_SUBTYPE_ACTION_ACCEPT_DENY = 0, SCE_NP_BASIC_MESSAGE_CUSTOM_DATA_SUBTYPE_ACTION_USE = 0, SCE_NP_BASIC_MESSAGE_URL_ATTACHMENT_SUBTYPE_ACTION_USE = 0, SCE_NP_BASIC_MESSAGE_INVITE_SUBTYPE_ACTION_ACCEPT = 1, }; // Applicable features of messages #define SCE_NP_BASIC_MESSAGE_FEATURES_EXP_MIN(min) (((static_cast(min) << 16) | (0 << 15)) & 0xFFFF8000) enum SceNpBasicMessageFeatures : u32 { SCE_NP_BASIC_MESSAGE_FEATURES_MULTI_RECEIPIENTS = 0x00000001, SCE_NP_BASIC_MESSAGE_FEATURES_BOOTABLE = 0x00000002, SCE_NP_BASIC_MESSAGE_FEATURES_ASSUME_SEND = 0x00000004, SCE_NP_BASIC_MESSAGE_FEATURES_ALL_FEATURES = SCE_NP_BASIC_MESSAGE_FEATURES_MULTI_RECEIPIENTS | SCE_NP_BASIC_MESSAGE_FEATURES_BOOTABLE | SCE_NP_BASIC_MESSAGE_FEATURES_ASSUME_SEND | SCE_NP_BASIC_MESSAGE_FEATURES_EXP_MIN(0xffff) }; // Types of messages enum SceNpBasicMessageInfoType : u32 { SCE_NP_BASIC_MESSAGE_INFO_TYPE_MESSAGE_ATTACHMENT = 0, SCE_NP_BASIC_MESSAGE_INFO_TYPE_MATCHING_INVITATION = 1, SCE_NP_BASIC_MESSAGE_INFO_TYPE_CLAN_MESSAGE = 3, SCE_NP_BASIC_MESSAGE_INFO_TYPE_CUSTOM_DATA_MESSAGE = 4, SCE_NP_BASIC_MESSAGE_INFO_TYPE_ANY_UNREAD_MESSAGE = 5, SCE_NP_BASIC_MESSAGE_INFO_TYPE_BOOTABLE_INVITATION = 6, SCE_NP_BASIC_MESSAGE_INFO_TYPE_BOOTABLE_CUSTOM_DATA_MESSAGE = 7, }; // Context options (signaling) enum { SCE_NP_SIGNALING_CTX_OPT_BANDWIDTH_PROBE_DISABLE = 0, SCE_NP_SIGNALING_CTX_OPT_BANDWIDTH_PROBE_ENABLE = 1, SCE_NP_SIGNALING_CTX_OPT_BANDWIDTH_PROBE = 1, }; // Event types (including extended ones) enum { SCE_NP_SIGNALING_EVENT_DEAD = 0, SCE_NP_SIGNALING_EVENT_ESTABLISHED = 1, SCE_NP_SIGNALING_EVENT_NETINFO_ERROR = 2, SCE_NP_SIGNALING_EVENT_NETINFO_RESULT = 3, SCE_NP_SIGNALING_EVENT_EXT_PEER_ACTIVATED = 10, SCE_NP_SIGNALING_EVENT_EXT_PEER_DEACTIVATED = 11, SCE_NP_SIGNALING_EVENT_EXT_MUTUAL_ACTIVATED = 12, }; // Connection states enum { SCE_NP_SIGNALING_CONN_STATUS_INACTIVE = 0, SCE_NP_SIGNALING_CONN_STATUS_PENDING = 1, SCE_NP_SIGNALING_CONN_STATUS_ACTIVE = 2, }; // Connection information to obtain enum { SCE_NP_SIGNALING_CONN_INFO_RTT = 1, SCE_NP_SIGNALING_CONN_INFO_BANDWIDTH = 2, SCE_NP_SIGNALING_CONN_INFO_PEER_NPID = 3, SCE_NP_SIGNALING_CONN_INFO_PEER_ADDRESS = 4, SCE_NP_SIGNALING_CONN_INFO_MAPPED_ADDRESS = 5, SCE_NP_SIGNALING_CONN_INFO_PACKET_LOSS = 6, }; // NAT status type enum { SCE_NP_SIGNALING_NETINFO_NAT_STATUS_UNKNOWN = 0, SCE_NP_SIGNALING_NETINFO_NAT_STATUS_TYPE1 = 1, SCE_NP_SIGNALING_NETINFO_NAT_STATUS_TYPE2 = 2, SCE_NP_SIGNALING_NETINFO_NAT_STATUS_TYPE3 = 3, }; // UPnP status enum { SCE_NP_SIGNALING_NETINFO_UPNP_STATUS_UNKNOWN = 0, SCE_NP_SIGNALING_NETINFO_UPNP_STATUS_INVALID = 1, SCE_NP_SIGNALING_NETINFO_UPNP_STATUS_VALID = 2, }; // NP port status enum { SCE_NP_SIGNALING_NETINFO_NPPORT_STATUS_CLOSED = 0, SCE_NP_SIGNALING_NETINFO_NPPORT_STATUS_OPEN = 1, }; // NP Receive message options enum SceNpBasicMessageRecvOptions : u32 { SCE_NP_BASIC_RECV_MESSAGE_OPTIONS_PRESERVE = 0x00000001, SCE_NP_BASIC_RECV_MESSAGE_OPTIONS_INCLUDE_BOOTABLE = 0x00000002, SCE_NP_BASIC_RECV_MESSAGE_OPTIONS_ASSUME_LATEST = 0x00000004, SCE_NP_BASIC_RECV_MESSAGE_OPTIONS_ALL_OPTIONS = 0x00000007 // sum of all other options }; // Constants for common NP functions and structures enum { SCE_NET_NP_AVATAR_IMAGE_MAX_SIZE = 204800, SCE_NET_NP_AVATAR_IMAGE_MAX_SIZE_LARGE = 204800, SCE_NET_NP_AVATAR_IMAGE_MAX_SIZE_MIDDLE = 102400, SCE_NET_NP_AVATAR_IMAGE_MAX_SIZE_SMALL = 10240, SCE_NET_NP_AVATAR_URL_MAX_LENGTH = 127, SCE_NET_NP_ONLINEID_MIN_LENGTH = 3, SCE_NET_NP_ONLINEID_MAX_LENGTH = 16, SCE_NET_NP_ONLINENAME_MAX_LENGTH = 48, SCE_NET_NP_ABOUT_ME_MAX_LENGTH = 63, SCE_NP_FRIEND_MAX_NUM = 100, SCE_NET_NP_COMMUNICATION_PASSPHRASE_SIZE = 128, SCE_NP_COMMUNICATION_SIGNATURE_SIZE = 160, SCE_NP_COMMUNICATION_PASSPHRASE_SIZE = SCE_NET_NP_COMMUNICATION_PASSPHRASE_SIZE, }; enum SceNpAvatarSizeType { SCE_NP_AVATAR_SIZE_LARGE, SCE_NP_AVATAR_SIZE_MIDDLE, SCE_NP_AVATAR_SIZE_SMALL }; // Constants for basic NP functions and structures enum { SCE_NP_BASIC_MAX_MESSAGE_SIZE = 512, SCE_NP_BASIC_MAX_PRESENCE_SIZE = 128, SCE_NP_BASIC_MAX_MESSAGE_ATTACHMENT_SIZE = 1048576, SCE_NP_BASIC_SUBJECT_CHARACTER_MAX = 18, SCE_NP_BASIC_BODY_CHARACTER_MAX = 512, SCE_NP_BASIC_DESCRIPTION_CHARACTER_MAX = 341, SCE_NP_BASIC_SEND_MESSAGE_MAX_RECIPIENTS = 12, SCE_NP_BASIC_PRESENCE_TITLE_SIZE_MAX = 128, SCE_NP_BASIC_PRESENCE_STATUS_SIZE_MAX = 64, SCE_NP_BASIC_PRESENCE_STATUS_CHARACTER_MAX = 21, SCE_NP_BASIC_PRESENCE_EXTENDED_STATUS_SIZE_MAX = 192, SCE_NP_BASIC_PRESENCE_EXTENDED_STATUS_CHARACTER_MAX = 63, SCE_NP_BASIC_PRESENCE_COMMENT_SIZE_MAX = 64, SCE_NP_BASIC_MAX_INVITATION_DATA_SIZE = 1024, SCE_NP_BASIC_MAX_URL_ATTACHMENT_SIZE = 2048, SCE_NP_BASIC_PLAYER_HISTORY_MAX_PLAYERS = 8, }; // Common constants of sceNpClans enum { SCE_NP_CLANS_CLAN_NAME_MAX_LENGTH = 64, SCE_NP_CLANS_CLAN_TAG_MAX_LENGTH = 8, SCE_NP_CLANS_CLAN_DESCRIPTION_MAX_LENGTH = 255, }; // Constants for custom menu functions and structures enum { SCE_NP_CUSTOM_MENU_ACTION_CHARACTER_MAX = 21, SCE_NP_CUSTOM_MENU_ACTION_ITEMS_MAX = 7, SCE_NP_CUSTOM_MENU_ACTION_ITEMS_TOTAL_MAX = 16, SCE_NP_CUSTOM_MENU_EXCEPTION_ITEMS_MAX = 256, }; // Constants for manager functions and structures enum { SCE_NP_COOKIE_MAX_SIZE = 1024, SCE_NP_TICKET_MAX_SIZE = 65536, SCE_NP_TICKET_PARAM_DATA_LEN = 256, SCE_NP_ENTITLEMENT_ID_SIZE = 32, }; // Constants for ranking (score) functions and structures enum { SCE_NP_SCORE_MAX_CTX_NUM = 32, SCE_NP_SCORE_COMMENT_MAXLEN = 63, SCE_NP_SCORE_GAMEDATA_ID_LEN = 63, SCE_NP_SCORE_GAMEINFO_SIZE = 64, SCE_NP_SCORE_PASSPHRASE_SIZE = 128, SCE_NP_SCORE_CENSOR_COMMENT_MAXLEN = 255, SCE_NP_SCORE_SANITIZE_COMMENT_MAXLEN = 255, SCE_NP_SCORE_MAX_RANGE_NUM_PER_TRANS = 100, SCE_NP_SCORE_MAX_NPID_NUM_PER_TRANS = 101, SCE_NP_SCORE_MAX_CLAN_NUM_PER_TRANS = 101, SCE_NP_SCORE_MAX_SELECTED_FRIENDS_NUM = 100, SCE_NP_SCORE_VARIABLE_SIZE_GAMEINFO_MAXSIZE = 189, }; enum { SCE_NP_SCORE_NORMAL_UPDATE = 0, SCE_NP_SCORE_FORCE_UPDATE = 1 }; enum { SCE_NP_SCORE_DESCENDING_ORDER = 0, SCE_NP_SCORE_ASCENDING_ORDER = 1 }; // Constants for signaling functions and structures enum { SCE_NP_SIGNALING_CTX_MAX = 8, }; enum : SceNpPlatformType { SCE_NP_PLATFORM_TYPE_NONE = 0, SCE_NP_PLATFORM_TYPE_PS3 = 1, SCE_NP_PLATFORM_TYPE_VITA = 2, SCE_NP_PLATFORM_TYPE_PS4 = 3, // Note: unknown on which fw versions it appears, but sdk version is unchecked }; enum { SCE_NP_MATCHING_GUI_EVENT_CREATE_ROOM = 0x0001, SCE_NP_MATCHING_GUI_EVENT_JOIN_ROOM = 0x0002, SCE_NP_MATCHING_GUI_EVENT_RESERVED2 = 0x0003, SCE_NP_MATCHING_GUI_EVENT_SEARCH_JOIN = 0x0004, SCE_NP_MATCHING_GUI_EVENT_QUICK_MATCH = 0x0005, SCE_NP_MATCHING_GUI_EVENT_SEND_INVITATION = 0x0006, SCE_NP_MATCHING_GUI_EVENT_ACCEPT_INVITATION = 0x0007, SCE_NP_MATCHING_GUI_EVENT_COMMON_LOAD = 0x0008, SCE_NP_MATCHING_GUI_EVENT_COMMON_UNLOAD = 0x0009, SCE_NP_MATCHING_GUI_EVENT_RESERVED3 = 0x000a, SCE_NP_MATCHING_GUI_EVENT_GET_ROOM_LIST_LIMIT = 0x000b }; struct SceNpDrmKey { u8 keydata[16]; }; struct SceNpDrmOpenArg { be_t flag; }; // NP communication ID structure struct SceNpCommunicationId { char data[9]; char term; u8 num; char dummy; }; // OnlineId structure struct SceNpOnlineId { char data[16]; char term; char dummy[3]; }; // NP ID structure struct SceNpId { SceNpOnlineId handle; union { // This field (system reserved) seems to be combined of two parts // The second is used by sceNpUtilSetPlatformType and sceNpUtilGetPlatformType u8 opt[8]; nse_t unk1[2]; }; u8 reserved[8]; }; CHECK_SIZE_ALIGN(SceNpId, 0x24, 1); // Online Name structure struct SceNpOnlineName { char data[48]; char term; char padding[3]; }; // Avatar structure struct SceNpAvatarUrl { char data[127]; char term; }; // Avatar image structure struct SceNpAvatarImage { u8 data[SCE_NET_NP_AVATAR_IMAGE_MAX_SIZE]; be_t size; u8 reserved[12]; }; // Self introduction structure struct SceNpAboutMe { char data[SCE_NET_NP_ABOUT_ME_MAX_LENGTH]; char term; }; // User information structure struct SceNpUserInfo { SceNpId userId; SceNpOnlineName name; SceNpAvatarUrl icon; }; // User information structure struct SceNpUserInfo2 { SceNpId npId; vm::bptr onlineName; vm::bptr avatarUrl; }; // Often used languages structure struct SceNpMyLanguages { be_t language1; be_t language2; be_t language3; u8 padding[4]; }; // NP communication passphrase struct SceNpCommunicationPassphrase { u8 data[SCE_NP_COMMUNICATION_PASSPHRASE_SIZE]; }; // NP communication signature struct SceNpCommunicationSignature { u8 data[SCE_NP_COMMUNICATION_SIGNATURE_SIZE]; }; // NP cache information structure struct SceNpManagerCacheParam { be_t size; SceNpOnlineId onlineId; SceNpId npId; SceNpOnlineName onlineName; SceNpAvatarUrl avatarUrl; }; // Message attachment data struct SceNpBasicAttachmentData { be_t id; // SceNpBasicAttachmentDataId be_t size; }; // Message extended attachment data struct SceNpBasicExtendedAttachmentData { be_t flags; be_t msgId; SceNpBasicAttachmentData data; be_t userAction; b8 markedAsUsed; u8 reserved[3]; }; // Message structure struct SceNpBasicMessageDetails { be_t msgId; be_t mainType; be_t subType; be_t msgFeatures; const SceNpId npids; be_t count; const s8 subject; const s8 body; const be_t data; be_t size; }; // Presence details of an user struct SceNpBasicPresenceDetails { s8 title[SCE_NP_BASIC_PRESENCE_TITLE_SIZE_MAX]; s8 status[SCE_NP_BASIC_PRESENCE_STATUS_SIZE_MAX]; s8 comment[SCE_NP_BASIC_PRESENCE_COMMENT_SIZE_MAX]; u8 data[SCE_NP_BASIC_MAX_PRESENCE_SIZE]; be_t size; be_t state; }; // Extended presence details of an user struct SceNpBasicPresenceDetails2 { be_t struct_size; be_t state; s8 title[SCE_NP_BASIC_PRESENCE_TITLE_SIZE_MAX]; s8 status[SCE_NP_BASIC_PRESENCE_EXTENDED_STATUS_SIZE_MAX]; s8 comment[SCE_NP_BASIC_PRESENCE_COMMENT_SIZE_MAX]; u8 data[SCE_NP_BASIC_MAX_PRESENCE_SIZE]; be_t size; }; // Country/region code struct SceNpCountryCode { s8 data[2]; s8 term; s8 padding[1]; }; // Date information struct SceNpDate { be_t year; u8 month; u8 day; }; // Entitlement ID (fixed-length) struct SceNpEntitlementId { u8 data[SCE_NP_ENTITLEMENT_ID_SIZE]; // Unsigned char? What is the right type...? }; // Callback for getting the connection status using SceNpManagerCallback = void(s32 event, s32 result, u32 arg_addr); // Score data unique to the application struct SceNpScoreGameInfo { u8 nativeData[SCE_NP_SCORE_GAMEINFO_SIZE]; }; // Ranking comment structure struct SceNpScoreComment { s8 data[SCE_NP_SCORE_COMMENT_MAXLEN]; s8 term[1]; }; // Ranking information structure struct SceNpScoreRankData { SceNpId npId; SceNpOnlineName onlineName; be_t pcId; be_t serialRank; be_t rank; be_t highestRank; be_t scoreValue; be_t hasGameData; u8 pad0[4]; CellRtcTick recordDate; }; // Ranking information of a player or a clan member struct SceNpScorePlayerRankData { be_t hasData; u8 pad0[4]; SceNpScoreRankData rankData; }; // Scoreboard information struct SceNpScoreBoardInfo { be_t rankLimit; be_t updateMode; be_t sortMode; be_t uploadNumLimit; be_t uploadSizeLimit; }; // NOTE: Use SceNpCommunicationPassphrase instead // Authentication information per NP Communication ID for score ranking // SceNpCommunicationPassphrase SceNpScorePassphrase; // NP ID structure with player character ID struct SceNpScoreNpIdPcId { SceNpId npId; be_t pcId; u8 pad[4]; }; // Basic clan information to be used in raking struct SceNpScoreClanBasicInfo { s8 clanName[SCE_NP_CLANS_CLAN_NAME_MAX_LENGTH + 1]; s8 clanTag[SCE_NP_CLANS_CLAN_TAG_MAX_LENGTH + 1]; u8 reserved[10]; }; // Clan member information handled in ranking struct SceNpScoreClansMemberDescription { s8 description[SCE_NP_CLANS_CLAN_DESCRIPTION_MAX_LENGTH + 1]; }; // Clan ranking information struct SceNpScoreClanRankData { be_t clanId; SceNpScoreClanBasicInfo clanInfo; be_t regularMemberCount; be_t recordMemberCount; be_t serialRank; be_t rank; be_t scoreValue; CellRtcTick recordDate; SceNpId npId; SceNpOnlineName onlineName; u8 reserved[32]; }; // Clan ranking information to be obtained for a specified clan ID struct SceNpScoreClanIdRankData { be_t hasData; u8 pad0[4]; SceNpScoreClanRankData rankData; }; // Union for connection information union SceNpSignalingConnectionInfo { be_t rtt; be_t bandwidth; SceNpId npId; struct { np_in_addr addr; // in_addr np_in_port_t port; // in_port_t } address; be_t packet_loss; }; // Network information structure struct SceNpSignalingNetInfo { be_t size; be_t local_addr; // in_addr be_t mapped_addr; // in_addr be_t nat_status; be_t upnp_status; be_t npport_status; be_t npport; }; struct SceNpCustomMenuAction { be_t options; char name[SCE_NP_CUSTOM_MENU_ACTION_CHARACTER_MAX]; be_t mask; }; struct SceNpCustomMenu { be_t options; vm::bptr actions; be_t numActions; }; struct SceNpCustomMenuIndexArray { be_t index_bits[SCE_NP_CUSTOM_MENU_INDEX_SETSIZE >> SCE_NP_CUSTOM_MENU_INDEX_BITS_SHIFT]; }; struct SceNpCustomMenuActionExceptions { be_t options; SceNpId npid; SceNpCustomMenuIndexArray actions; u8 reserved[4]; }; struct SceNpCommerceProductCategory { be_t version; vm::bcptr data; be_t dataSize; be_t dval; u8 reserved[16]; }; struct SceNpCommerceProductSkuInfo { vm::bptr pc; vm::bcptr data; u8 reserved[8]; }; struct SceNpCommerceCategoryInfo { vm::bptr pc; vm::bcptr data; u8 reserved[8]; }; struct SceNpCommerceCurrencyInfo { vm::bptr pc; vm::bcptr data; u8 reserved[8]; }; struct SceNpCommercePrice { be_t integer; be_t fractional; }; struct SceNpTicketVersion { be_t major; be_t minor; }; union SceNpTicketParam { be_t i32; be_t i64; be_t ui32; be_t ui64; SceNpDate date; u8 data[SCE_NP_TICKET_PARAM_DATA_LEN]; }; struct SceNpEntitlement { SceNpEntitlementId id; be_t created_date; be_t expire_date; be_t type; be_t remaining_count; be_t consumed_count; u8 padding[4]; }; struct SceNpLobbyId { u8 opt[28]; u8 reserved[8]; }; struct SceNpRoomId { u8 opt[28]; u8 reserved[8]; }; struct SceNpMatchingAttr { vm::bptr next; be_t type; be_t id; union { be_t num; struct { vm::bptr ptr; be_t size; } data; } value; }; struct SceNpMatchingSearchCondition { vm::bptr next; be_t target_attr_type; be_t target_attr_id; be_t comp_op; be_t comp_type; SceNpMatchingAttr compared; }; struct SceNpMatchingReqRange { be_t start; be_t max; }; struct SceNpScoreVariableSizeGameInfo { be_t infoSize; u8 data[SCE_NP_SCORE_VARIABLE_SIZE_GAMEINFO_MAXSIZE]; u8 pad[3]; }; struct SceNpScoreRecordOptParam { be_t size; vm::bptr vsInfo; vm::bptr reserved; }; // NP callback functions using SceNpCustomMenuEventHandler = s32(s32 retCode, u32 index, vm::cptr npid, SceNpCustomMenuSelectedType type, vm::ptr arg); using SceNpBasicEventHandler = s32(s32 event, s32 retCode, u32 reqId, vm::ptr arg); using SceNpCommerceHandler = void(u32 ctx_id, u32 subject_id, s32 event, s32 error_code, vm::ptr arg); using SceNpSignalingHandler = void(u32 ctx_id, u32 subject_id, s32 event, s32 error_code, u32 arg_addr); using SceNpFriendlistResultHandler = s32(s32 retCode, vm::ptr arg); using SceNpMatchingHandler = void(u32 ctx_id, u32 req_id, s32 event, s32 error_code, vm::ptr arg); using SceNpMatchingGUIHandler = void(u32 ctx_id, s32 event, s32 error_code, vm::ptr arg); using SceNpProfileResultHandler = s32(s32 result, vm::ptr arg); using SceNpManagerSubSigninCallback = void(s32 result, vm::ptr npId, vm::ptr cb_arg);