From b5d8426db735b8f0ae0b681efa1a878907b6c826 Mon Sep 17 00:00:00 2001 From: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com> Date: Sun, 7 Sep 2025 15:11:15 -0500 Subject: [PATCH] Libraries: Implement sceKernelIsInSandbox, update OrbisSysModule enum (#3546) * Implement sceKernelIsInSandbox libSceSysmodule uses this to determine if it should use sceKernelGetFsSandboxRandomWord or just hardcode "system" for retrieving modules. Also changes some function types to use our types. * Update OrbisSysModule enum Adds missing values based on library testing. * Clang --- src/core/libraries/kernel/process.cpp | 17 ++- src/core/libraries/kernel/process.h | 8 +- src/core/libraries/system/sysmodule.cpp | 2 +- src/core/libraries/system/sysmodule.h | 166 +++++++++++++----------- 4 files changed, 109 insertions(+), 84 deletions(-) diff --git a/src/core/libraries/kernel/process.cpp b/src/core/libraries/kernel/process.cpp index e22509a3a..22e41aaea 100644 --- a/src/core/libraries/kernel/process.cpp +++ b/src/core/libraries/kernel/process.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "common/config.h" @@ -12,18 +12,22 @@ namespace Libraries::Kernel { -int PS4_SYSV_ABI sceKernelIsNeoMode() { +s32 PS4_SYSV_ABI sceKernelIsInSandbox() { + return 1; +} + +s32 PS4_SYSV_ABI sceKernelIsNeoMode() { return Config::isNeoModeConsole() && Common::ElfInfo::Instance().GetPSFAttributes().support_neo_mode; } -int PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(int* ver) { - int version = Common::ElfInfo::Instance().RawFirmwareVer(); +s32 PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(s32* ver) { + s32 version = Common::ElfInfo::Instance().RawFirmwareVer(); *ver = version; return (version >= 0) ? ORBIS_OK : ORBIS_KERNEL_ERROR_EINVAL; } -int PS4_SYSV_ABI sceKernelGetCpumode() { +s32 PS4_SYSV_ABI sceKernelGetCpumode() { return 0; } @@ -33,7 +37,7 @@ void* PS4_SYSV_ABI sceKernelGetProcParam() { } s32 PS4_SYSV_ABI sceKernelLoadStartModule(const char* moduleFileName, u64 args, const void* argp, - u32 flags, const void* pOpt, int* pRes) { + u32 flags, const void* pOpt, s32* pRes) { LOG_INFO(Lib_Kernel, "called filename = {}, args = {}", moduleFileName, args); ASSERT(flags == 0); @@ -201,6 +205,7 @@ s32 PS4_SYSV_ABI exit(s32 status) { } void RegisterProcess(Core::Loader::SymbolsResolver* sym) { + LIB_FUNCTION("xeu-pV8wkKs", "libkernel", 1, "libkernel", 1, 1, sceKernelIsInSandbox); LIB_FUNCTION("WB66evu8bsU", "libkernel", 1, "libkernel", 1, 1, sceKernelGetCompiledSdkVersion); LIB_FUNCTION("WslcK1FQcGI", "libkernel", 1, "libkernel", 1, 1, sceKernelIsNeoMode); LIB_FUNCTION("VOx8NGmHXTs", "libkernel", 1, "libkernel", 1, 1, sceKernelGetCpumode); diff --git a/src/core/libraries/kernel/process.h b/src/core/libraries/kernel/process.h index 09e4276fb..6296fe404 100644 --- a/src/core/libraries/kernel/process.h +++ b/src/core/libraries/kernel/process.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -11,7 +11,7 @@ class SymbolsResolver; namespace Libraries::Kernel { -static constexpr size_t ORBIS_DBG_MAX_NAME_LENGTH = 256; +static constexpr u64 ORBIS_DBG_MAX_NAME_LENGTH = 256; struct OrbisModuleInfoForUnwind { u64 st_size; @@ -23,9 +23,9 @@ struct OrbisModuleInfoForUnwind { u64 seg0_size; }; -int PS4_SYSV_ABI sceKernelIsNeoMode(); +s32 PS4_SYSV_ABI sceKernelIsNeoMode(); -int PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(int* ver); +s32 PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(s32* ver); s32 PS4_SYSV_ABI sceKernelGetModuleInfoForUnwind(VAddr addr, s32 flags, OrbisModuleInfoForUnwind* info); diff --git a/src/core/libraries/system/sysmodule.cpp b/src/core/libraries/system/sysmodule.cpp index 7105fd66b..fabd0f6a3 100644 --- a/src/core/libraries/system/sysmodule.cpp +++ b/src/core/libraries/system/sysmodule.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #define MAGIC_ENUM_RANGE_MIN 0 diff --git a/src/core/libraries/system/sysmodule.h b/src/core/libraries/system/sysmodule.h index 27d0e19d4..3f1328e4b 100644 --- a/src/core/libraries/system/sysmodule.h +++ b/src/core/libraries/system/sysmodule.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -14,45 +14,45 @@ namespace Libraries::SysModule { enum class OrbisSysModule : u16 { ORBIS_SYSMODULE_INVALID = 0x0000, - ORBIS_SYSMODULE_FIBER = 0x0006, // libSceFiber.sprx - ORBIS_SYSMODULE_ULT = 0x0007, // libSceUlt.sprx - ORBIS_SYSMODULE_NGS2 = 0x000B, // libSceNgs2.sprx - ORBIS_SYSMODULE_XML = 0x0017, // libSceXml.sprx - ORBIS_SYSMODULE_NP_UTILITY = 0x0019, // libSceNpUtility.sprx - ORBIS_SYSMODULE_VOICE = 0x001A, // libSceVoice.sprx - ORBIS_SYSMODULE_VOICEQOS = 0x001B, // libSceVoiceQos.sprx - ORBIS_SYSMODULE_NP_MATCHING2 = 0x001C, // libSceNpMatching2.sprx - ORBIS_SYSMODULE_NP_SCORE_RANKING = 0x001E, // libSceNpScoreRanking.sprx - ORBIS_SYSMODULE_RUDP = 0x0021, // libSceRudp.sprx - ORBIS_SYSMODULE_NP_TUS = 0x002C, // libSceNpTus.sprx - ORBIS_SYSMODULE_FACE = 0x0038, - ORBIS_SYSMODULE_SMART = 0x0039, - ORBIS_SYSMODULE_JSON = 0x0080, + ORBIS_SYSMODULE_FIBER = 0x0006, // libSceFiber.sprx + ORBIS_SYSMODULE_ULT = 0x0007, // libSceUlt.sprx + ORBIS_SYSMODULE_NGS2 = 0x000B, // libSceNgs2.sprx + ORBIS_SYSMODULE_XML = 0x0017, // libSceXml.sprx + ORBIS_SYSMODULE_NP_UTILITY = 0x0019, // libSceNpUtility.sprx + ORBIS_SYSMODULE_VOICE = 0x001A, // libSceVoice.sprx + ORBIS_SYSMODULE_VOICEQOS = 0x001B, // libSceVoiceQos.sprx + ORBIS_SYSMODULE_NP_MATCHING2 = 0x001C, // libSceNpMatching2.sprx + ORBIS_SYSMODULE_NP_SCORE_RANKING = 0x001E, // libSceNpScoreRanking.sprx + ORBIS_SYSMODULE_RUDP = 0x0021, // libSceRudp.sprx + ORBIS_SYSMODULE_NP_TUS = 0x002C, // libSceNpTus.sprx + ORBIS_SYSMODULE_FACE = 0x0038, // libSceFace.sprx + ORBIS_SYSMODULE_SMART = 0x0039, // libSceSmart.sprx + ORBIS_SYSMODULE_JSON = 0x0080, // libSceJson.sprx ORBIS_SYSMODULE_GAME_LIVE_STREAMING = 0x0081, // libSceGameLiveStreaming.sprx ORBIS_SYSMODULE_COMPANION_UTIL = 0x0082, // libSceCompanionUtil.sprx ORBIS_SYSMODULE_PLAYGO = 0x0083, // libScePlayGo.sprx ORBIS_SYSMODULE_FONT = 0x0084, // libSceFont.sprx ORBIS_SYSMODULE_VIDEO_RECORDING = 0x0085, // libSceVideoRecording.sprx - ORBIS_SYSMODULE_S3DCONVERSION = 0x0086, - ORBIS_SYSMODULE_AUDIODEC = 0x0088, // libSceAudiodec.sprx - ORBIS_SYSMODULE_JPEG_DEC = 0x008A, // libSceJpegDec.sprx - ORBIS_SYSMODULE_JPEG_ENC = 0x008B, // libSceJpegEnc.sprx - ORBIS_SYSMODULE_PNG_DEC = 0x008C, // libScePngDec.sprx - ORBIS_SYSMODULE_PNG_ENC = 0x008D, // libScePngEnc.sprx - ORBIS_SYSMODULE_VIDEODEC = 0x008E, // libSceVideodec.sprx - ORBIS_SYSMODULE_MOVE = 0x008F, // libSceMove.sprx - ORBIS_SYSMODULE_PAD_TRACKER = 0x0091, // libScePadTracker.sprx - ORBIS_SYSMODULE_DEPTH = 0x0092, // libSceDepth.sprx - ORBIS_SYSMODULE_HAND = 0x0093, - ORBIS_SYSMODULE_LIBIME = 0x0095, // libSceIme.sprx - ORBIS_SYSMODULE_IME_DIALOG = 0x0096, // libSceImeDialog.sprx - ORBIS_SYSMODULE_NP_PARTY = 0x0097, // libSceNpParty.sprx - ORBIS_SYSMODULE_FONT_FT = 0x0098, // libSceFontFt.sprx - ORBIS_SYSMODULE_FREETYPE_OT = 0x0099, // libSceFreeTypeOt.sprx - ORBIS_SYSMODULE_FREETYPE_OL = 0x009A, // libSceFreeTypeOl.sprx - ORBIS_SYSMODULE_FREETYPE_OPT_OL = 0x009B, // libSceFreeTypeOptOl.sprx - ORBIS_SYSMODULE_SCREEN_SHOT = 0x009C, // libSceScreenShot.sprx - ORBIS_SYSMODULE_NP_AUTH = 0x009D, // libSceNpAuth.sprx + ORBIS_SYSMODULE_S3DCONVERSION = 0x0086, // libSceS3DConversion + ORBIS_SYSMODULE_AUDIODEC = 0x0088, // libSceAudiodec.sprx + ORBIS_SYSMODULE_JPEG_DEC = 0x008A, // libSceJpegDec.sprx + ORBIS_SYSMODULE_JPEG_ENC = 0x008B, // libSceJpegEnc.sprx + ORBIS_SYSMODULE_PNG_DEC = 0x008C, // libScePngDec.sprx + ORBIS_SYSMODULE_PNG_ENC = 0x008D, // libScePngEnc.sprx + ORBIS_SYSMODULE_VIDEODEC = 0x008E, // libSceVideodec.sprx + ORBIS_SYSMODULE_MOVE = 0x008F, // libSceMove.sprx + ORBIS_SYSMODULE_PAD_TRACKER = 0x0091, // libScePadTracker.sprx + ORBIS_SYSMODULE_DEPTH = 0x0092, // libSceDepth.sprx + ORBIS_SYSMODULE_HAND = 0x0093, // libSceHand.sprx + ORBIS_SYSMODULE_LIBIME = 0x0095, // libSceIme.sprx + ORBIS_SYSMODULE_IME_DIALOG = 0x0096, // libSceImeDialog.sprx + ORBIS_SYSMODULE_NP_PARTY = 0x0097, // libSceNpParty.sprx + ORBIS_SYSMODULE_FONT_FT = 0x0098, // libSceFontFt.sprx + ORBIS_SYSMODULE_FREETYPE_OT = 0x0099, // libSceFreeTypeOt.sprx + ORBIS_SYSMODULE_FREETYPE_OL = 0x009A, // libSceFreeTypeOl.sprx + ORBIS_SYSMODULE_FREETYPE_OPT_OL = 0x009B, // libSceFreeTypeOptOl.sprx + ORBIS_SYSMODULE_SCREEN_SHOT = 0x009C, // libSceScreenShot.sprx + ORBIS_SYSMODULE_NP_AUTH = 0x009D, // libSceNpAuth.sprx ORBIS_SYSMODULE_SULPHA = 0x009F, ORBIS_SYSMODULE_SAVE_DATA_DIALOG = 0x00A0, // libSceSaveDataDialog.sprx ORBIS_SYSMODULE_INVITATION_DIALOG = 0x00A2, // libSceInvitationDialog.sprx @@ -95,27 +95,27 @@ enum class OrbisSysModule : u16 { ORBIS_SYSMODULE_SHARE_UTILITY = 0x00C8, // libSceShareUtility.sprx ORBIS_SYSMODULE_AUDIODEC_CPU_DTS_HD_LBR = 0x00C9, // libSceAudiodecCpuDtsHdLbr.sprx ORBIS_SYSMODULE_DECI4H = 0x00CA, - ORBIS_SYSMODULE_HEAD_TRACKER = 0x00CB, - ORBIS_SYSMODULE_GAME_UPDATE = 0x00CC, // libSceGameUpdate.sprx - ORBIS_SYSMODULE_AUTO_MOUNTER_CLIENT = 0x00CD, // libSceAutoMounterClient.sprx - ORBIS_SYSMODULE_SYSTEM_GESTURE = 0x00CE, // libSceSystemGesture.sprx - ORBIS_SYSMODULE_VIDEODEC2 = 0x00CF, - ORBIS_SYSMODULE_VDECWRAP = 0x00D0, // libSceVdecwrap.sprx - ORBIS_SYSMODULE_AT9_ENC = 0x00D1, // libSceAt9Enc.sprx - ORBIS_SYSMODULE_CONVERT_KEYCODE = 0x00D2, // libSceConvertKeycode.sprx - ORBIS_SYSMODULE_SHARE_PLAY = 0x00D3, // libSceSharePlay.sprx - ORBIS_SYSMODULE_HMD = 0x00D4, // libSceHmd.sprx - ORBIS_SYSMODULE_USB_STORAGE = 0x00D5, // libSceUsbStorage.sprx - ORBIS_SYSMODULE_USB_STORAGE_DIALOG = 0x00D6, // libSceUsbStorageDialog.sprx - ORBIS_SYSMODULE_DISC_MAP = 0x00D7, // libSceDiscMap.sprx - ORBIS_SYSMODULE_FACE_TRACKER = 0x00D8, - ORBIS_SYSMODULE_HAND_TRACKER = 0x00D9, + ORBIS_SYSMODULE_HEAD_TRACKER = 0x00CB, // libSceHeadTracker.sprx + ORBIS_SYSMODULE_GAME_UPDATE = 0x00CC, // libSceGameUpdate.sprx + ORBIS_SYSMODULE_AUTO_MOUNTER_CLIENT = 0x00CD, // libSceAutoMounterClient.sprx + ORBIS_SYSMODULE_SYSTEM_GESTURE = 0x00CE, // libSceSystemGesture.sprx + ORBIS_SYSMODULE_VIDEODEC2 = 0x00CF, // libSceVideodec2.sprx + ORBIS_SYSMODULE_VDECWRAP = 0x00D0, // libSceVdecwrap.sprx + ORBIS_SYSMODULE_AT9_ENC = 0x00D1, // libSceAt9Enc.sprx + ORBIS_SYSMODULE_CONVERT_KEYCODE = 0x00D2, // libSceConvertKeycode.sprx + ORBIS_SYSMODULE_SHARE_PLAY = 0x00D3, // libSceSharePlay.sprx + ORBIS_SYSMODULE_HMD = 0x00D4, // libSceHmd.sprx + ORBIS_SYSMODULE_USB_STORAGE = 0x00D5, // libSceUsbStorage.sprx + ORBIS_SYSMODULE_USB_STORAGE_DIALOG = 0x00D6, // libSceUsbStorageDialog.sprx + ORBIS_SYSMODULE_DISC_MAP = 0x00D7, // libSceDiscMap.sprx + ORBIS_SYSMODULE_FACE_TRACKER = 0x00D8, // libSceFaceTracker.sprx + ORBIS_SYSMODULE_HAND_TRACKER = 0x00D9, // libSceHandTracker.sprx ORBIS_SYSMODULE_NP_SNS_YOUTUBE_DIALOG = 0x00DA, // libSceNpSnsYouTubeDialog.sprx ORBIS_SYSMODULE_PROFILE_CACHE_EXTERNAL = 0x00DC, // libSceProfileCacheExternal.sprx ORBIS_SYSMODULE_MUSIC_PLAYER_SERVICE = 0x00DD, // libSceMusicPlayerService.sprx ORBIS_SYSMODULE_SP_SYS_CALL_WRAPPER = 0x00DE, // libSceSpSysCallWrapper.sprx ORBIS_SYSMODULE_PS2_EMU_MENU_DIALOG = 0x00DF, // libScePs2EmuMenuDialog.sprx - ORBIS_SYSMODULE_NP_SNS_DIALYMOTION_DIALOG = 0x00E0, // libSceNpSnsDailyMotionDialog.sprx + ORBIS_SYSMODULE_NP_SNS_DAILYMOTION_DIALOG = 0x00E0, // libSceNpSnsDailyMotionDialog.sprx ORBIS_SYSMODULE_AUDIODEC_CPU_HEVAG = 0x00E1, // libSceAudiodecCpuHevag.sprx ORBIS_SYSMODULE_LOGIN_DIALOG = 0x00E2, // libSceLoginDialog.sprx ORBIS_SYSMODULE_LOGIN_SERVICE = 0x00E3, // libSceLoginService.sprx @@ -123,29 +123,49 @@ enum class OrbisSysModule : u16 { ORBIS_SYSMODULE_VDECSW = 0x00E5, // libSceVdecsw.sprx ORBIS_SYSMODULE_CUSTOM_MUSIC_CORE = 0x00E6, // libSceCustomMusicCore.sprx ORBIS_SYSMODULE_JSON2 = 0x00E7, // libSceJson2.sprx - ORBIS_SYSMODULE_AUDIO_LATENCY_ESTIMATION = 0x00E8, - ORBIS_SYSMODULE_WK_FONT_CONFIG = 0x00E9, // libSceWkFontConfig.sprx - ORBIS_SYSMODULE_RESERVED27 = 0x00EA, - ORBIS_SYSMODULE_HMD_SETUP_DIALOG = 0x00EB, // libSceHmdSetupDialog.sprx + ORBIS_SYSMODULE_AUDIO_LATENCY_ESTIMATION = 0x00E8, // libSceAudioLatencyEstimation.sprx + ORBIS_SYSMODULE_WK_FONT_CONFIG = 0x00E9, // libSceWkFontConfig.sprx + ORBIS_SYSMODULE_VORBIS_DEC = 0x00EA, // libSceVorbisDec.sprx + ORBIS_SYSMODULE_HMD_SETUP_DIALOG = 0x00EB, // libSceHmdSetupDialog.sprx ORBIS_SYSMODULE_RESERVED28 = 0x00EC, - ORBIS_SYSMODULE_VR_TRACKER = 0x00ED, // libSceVrTracker.sprx - ORBIS_SYSMODULE_CONTENT_DELETE = 0x00EE, // libSceContentDelete.sprx - ORBIS_SYSMODULE_IME_BACKEND = 0x00EF, // libSceImeBackend.sprx - ORBIS_SYSMODULE_NET_CTL_AP_DIALOG = 0x00F0, // libSceNetCtlApDialog.sprx - ORBIS_SYSMODULE_PLAYGO_DIALOG = 0x00F1, // libScePlayGoDialog.sprx - ORBIS_SYSMODULE_SOCIAL_SCREEN = 0x00F2, // libSceSocialScreen.sprx - ORBIS_SYSMODULE_EDIT_MP4 = 0x00F3, // libSceEditMp4.sprx - ORBIS_SYSMODULE_PSM_KIT_SYSTEM = 0x00F5, // libScePsmKitSystem.sprx - ORBIS_SYSMODULE_TEXT_TO_SPEECH = 0x00F6, // libSceTextToSpeech.sprx - ORBIS_SYSMODULE_NP_TOOLKIT = 0x00F7, - ORBIS_SYSMODULE_CUSTOM_MUSIC_SERVICE = 0x00F8, // libSceCustomMusicService.sprx - ORBIS_SYSMODULE_CL_SYS_CALL_WRAPPER = 0x00F9, // libSceClSysCallWrapper.sprx - ORBIS_SYSMODULE_SYSTEM_LOGGER = 0x00FA, // libSceSystemLogger.sprx - ORBIS_SYSMODULE_BLUETOOTH_HID = 0x00FB, // libSceBluetoothHid.sprx - ORBIS_SYSMODULE_VIDEO_DECODER_ARBITRATION = 0x00FC, // libSceVideoDecoderArbitration.sprx - ORBIS_SYSMODULE_VR_SERVICE_DIALOG = 0x00FD, // libSceVrServiceDialog.sprx - ORBIS_SYSMODULE_JOB_MANAGER = 0x00FE, - ORBIS_SYSMODULE_KEYBOARD = 0x0106, + ORBIS_SYSMODULE_VR_TRACKER = 0x00ED, // libSceVrTracker.sprx + ORBIS_SYSMODULE_CONTENT_DELETE = 0x00EE, // libSceContentDelete.sprx + ORBIS_SYSMODULE_IME_BACKEND = 0x00EF, // libSceImeBackend.sprx + ORBIS_SYSMODULE_NET_CTL_AP_DIALOG = 0x00F0, // libSceNetCtlApDialog.sprx + ORBIS_SYSMODULE_PLAYGO_DIALOG = 0x00F1, // libScePlayGoDialog.sprx + ORBIS_SYSMODULE_SOCIAL_SCREEN = 0x00F2, // libSceSocialScreen.sprx + ORBIS_SYSMODULE_EDIT_MP4 = 0x00F3, // libSceEditMp4.sprx + ORBIS_SYSMODULE_PSM_KIT_SYSTEM = 0x00F5, // libScePsmKitSystem.sprx + ORBIS_SYSMODULE_TEXT_TO_SPEECH = 0x00F6, // libSceTextToSpeech.sprx + ORBIS_SYSMODULE_NP_TOOLKIT = 0x00F7, // libSceNpToolkit.sprx + ORBIS_SYSMODULE_CUSTOM_MUSIC_SERVICE = 0x00F8, // libSceCustomMusicService.sprx + ORBIS_SYSMODULE_CL_SYS_CALL_WRAPPER = 0x00F9, // libSceClSysCallWrapper.sprx + ORBIS_SYSMODULE_SYSTEM_LOGGER = 0x00FA, // libSceSystemLogger.sprx + ORBIS_SYSMODULE_BLUETOOTH_HID = 0x00FB, // libSceBluetoothHid.sprx + ORBIS_SYSMODULE_VIDEO_DECODER_ARBITRATION = 0x00FC, // libSceVideoDecoderArbitration.sprx + ORBIS_SYSMODULE_VR_SERVICE_DIALOG = 0x00FD, // libSceVrServiceDialog.sprx + ORBIS_SYSMODULE_JOB_MANAGER = 0x00FE, // libSceJobManager.sprx + ORBIS_SYSMODULE_SHARE_FACTORY_UTIL = 0x00FF, // libSceShareFactoryUtil.sprx + ORBIS_SYSMODULE_SOCIAL_SCREEN_DIALOG = 0x0100, // libSceSocialScreenDialog.sprx + ORBIS_SYSMODULE_NP_SNS_DIALOG = 0x0101, // libSceNpSnsDialog.sprx + ORBIS_SYSMODULE_NP_TOOLKIT2 = 0x0102, // libSceNpToolkit2.sprx + ORBIS_SYSMODULE_SRC_UTL = 0x0103, // libSceSrcUtl.sprx + ORBIS_SYSMODULE_DISC_ID = 0x0104, // libSceDiscId.sprx + ORBIS_SYSMODULE_NP_UNIVERSAL_DATA_SYSTEM = 0x0105, // libSceNpUniversalDataSystem.sprx + ORBIS_SYSMODULE_KEYBOARD = 0x0106, // libSceKeyboard.sprx + ORBIS_SYSMODULE_GIC = 0x0107, // libSceGic.sprx + ORBIS_SYSMODULE_PLAY_READY2 = 0x0108, // libScePlayReady2.sprx + ORBIS_SYSMODULE_CES_CS = 0x010c, // libSceCesCs.sprx + ORBIS_SYSMODULE_PLAYER_INVITATION_DIALOG = 0x010d, // libScePlayerInvitationDialog.sprx + ORBIS_SYSMODULE_NP_SESSION_SIGNALING = 0x0112, // libSceNpSessionSignaling.sprx + ORBIS_SYSMODULE_NP_ENTITLEMENT_ACCESS = 0x0113, // libSceNpEntitlementAccess.sprx + ORBIS_SYSMODULE_NP_CPP_WEB_API = 0x0115, // libSceNpCppWebApi.sprx + ORBIS_SYSMODULE_HUB_APP_UTIL = 0x0116, // libSceHubAppUtil.sprx + ORBIS_SYSMODULE_NP_PARTNER001 = 0x011a, // libSceNpPartner001.sprx + ORBIS_SYSMODULE_FONT_GS = 0x012f, // libSceFontGs.sprx + ORBIS_SYSMODULE_FONT_GSM = 0x0135, // libSceFontGsm.sprx + ORBIS_SYSMODULE_NP_PARTNER_SUBSCRIPTION = 0x0138, // libSceNpPartnerSubscription.sprx + ORBIS_SYSMODULE_NP_AUTH_AUTHORIZED_APP_DIALOG = 0x0139, // libSceNpAuthAuthorizedAppDialog.sprx }; enum class OrbisSysModuleInternal : u32 {