diff --git a/CMakeLists.txt b/CMakeLists.txt index 808cb166e..4859d8a9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -594,6 +594,8 @@ set(NP_LIBS src/core/libraries/np_common/np_common.cpp src/core/libraries/np_party/np_party_error.h src/core/libraries/np_auth/np_auth.cpp src/core/libraries/np_auth/np_auth.h + src/core/libraries/np_profiledialog/np_profiledialog.cpp + src/core/libraries/np_profiledialog/np_profiledialog.h ) set(ZLIB_LIB src/core/libraries/zlib/zlib.cpp diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp index d711103fc..6198ec7f7 100644 --- a/src/common/logging/filter.cpp +++ b/src/common/logging/filter.cpp @@ -108,6 +108,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) { SUB(Lib, NpScore) \ SUB(Lib, NpTrophy) \ SUB(Lib, NpWebApi) \ + SUB(Lib, NpProfileDialog) \ SUB(Lib, Screenshot) \ SUB(Lib, LibCInternal) \ SUB(Lib, AppContent) \ diff --git a/src/common/logging/types.h b/src/common/logging/types.h index 54fe20fd9..268adf349 100644 --- a/src/common/logging/types.h +++ b/src/common/logging/types.h @@ -75,6 +75,7 @@ enum class Class : u8 { Lib_NpScore, ///< The LibSceNpScore implementation Lib_NpTrophy, ///< The LibSceNpTrophy implementation Lib_NpWebApi, ///< The LibSceWebApi implementation + Lib_NpProfileDialog, ///< The LibSceNpProfileDialog implementation Lib_Screenshot, ///< The LibSceScreenshot implementation Lib_LibCInternal, ///< The LibCInternal implementation. Lib_AppContent, ///< The LibSceAppContent implementation. @@ -84,7 +85,7 @@ enum class Class : u8 { Lib_Jpeg, ///< The LibSceJpeg implementation. Lib_PlayGo, ///< The LibScePlayGo implementation. Lib_PlayGoDialog, ///< The LibScePlayGoDialog implementation. - Lib_Random, ///< The libSceRandom implementation. + Lib_Random, ///< The LibSceRandom implementation. Lib_Usbd, ///< The LibSceUsbd implementation. Lib_Ajm, ///< The LibSceAjm implementation. Lib_ErrorDialog, ///< The LibSceErrorDialog implementation. diff --git a/src/core/libraries/libs.cpp b/src/core/libraries/libs.cpp index a047019da..2594ad671 100644 --- a/src/core/libraries/libs.cpp +++ b/src/core/libraries/libs.cpp @@ -34,6 +34,7 @@ #include "core/libraries/np_common/np_common.h" #include "core/libraries/np_manager/np_manager.h" #include "core/libraries/np_party/np_party.h" +#include "core/libraries/np_profiledialog/np_profiledialog.h" #include "core/libraries/np_score/np_score.h" #include "core/libraries/np_trophy/np_trophy.h" #include "core/libraries/np_web_api/np_web_api.h" @@ -95,6 +96,7 @@ void InitHLELibs(Core::Loader::SymbolsResolver* sym) { Libraries::NpScore::RegisterLib(sym); Libraries::NpTrophy::RegisterLib(sym); Libraries::NpWebApi::RegisterLib(sym); + Libraries::NpProfileDialog::RegisterLib(sym); Libraries::NpAuth::RegisterLib(sym); Libraries::ScreenShot::RegisterLib(sym); Libraries::AppContent::RegisterLib(sym); diff --git a/src/core/libraries/np_profiledialog/np_profiledialog.cpp b/src/core/libraries/np_profiledialog/np_profiledialog.cpp new file mode 100644 index 000000000..3bd67b661 --- /dev/null +++ b/src/core/libraries/np_profiledialog/np_profiledialog.cpp @@ -0,0 +1,72 @@ +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "common/logging/log.h" +#include "core/libraries/error_codes.h" +#include "core/libraries/libs.h" +#include "core/libraries/np_profiledialog/np_profiledialog.h" + +namespace Libraries::NpProfileDialog { + +s32 PS4_SYSV_ABI sceNpProfileDialogOpen() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogClose() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogGetResult() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogGetStatus() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogInitialize() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogOpenA() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogTerminate() { + LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceNpProfileDialogUpdateStatus() { + LOG_DEBUG(Lib_NpProfileDialog, "(STUBBED) called"); + return ORBIS_OK; +} + +void RegisterLib(Core::Loader::SymbolsResolver* sym) { + LIB_FUNCTION("uj9Cz7Tk0cc", "libSceNpProfileDialogCompat", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogOpen); + LIB_FUNCTION("wkwjz0Xdo2A", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogClose); + LIB_FUNCTION("8rhLl1-0W-o", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogGetResult); + LIB_FUNCTION("3BqoiFOjSsk", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogGetStatus); + LIB_FUNCTION("Lg+NCE6pTwQ", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogInitialize); + LIB_FUNCTION("uj9Cz7Tk0cc", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogOpen); + LIB_FUNCTION("nrQRlLKzdwE", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogOpenA); + LIB_FUNCTION("0Sp9vJcB1-w", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogTerminate); + LIB_FUNCTION("haVZE9FgKqE", "libSceNpProfileDialog", 1, "libSceNpProfileDialog", 1, 1, + sceNpProfileDialogUpdateStatus); +}; + +} // namespace Libraries::NpProfileDialog \ No newline at end of file diff --git a/src/core/libraries/np_profiledialog/np_profiledialog.h b/src/core/libraries/np_profiledialog/np_profiledialog.h new file mode 100644 index 000000000..78472f524 --- /dev/null +++ b/src/core/libraries/np_profiledialog/np_profiledialog.h @@ -0,0 +1,24 @@ +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/types.h" + +namespace Core::Loader { +class SymbolsResolver; +} + +namespace Libraries::NpProfileDialog { + +s32 PS4_SYSV_ABI sceNpProfileDialogOpen(); +s32 PS4_SYSV_ABI sceNpProfileDialogClose(); +s32 PS4_SYSV_ABI sceNpProfileDialogGetResult(); +s32 PS4_SYSV_ABI sceNpProfileDialogGetStatus(); +s32 PS4_SYSV_ABI sceNpProfileDialogInitialize(); +s32 PS4_SYSV_ABI sceNpProfileDialogOpenA(); +s32 PS4_SYSV_ABI sceNpProfileDialogTerminate(); +s32 PS4_SYSV_ABI sceNpProfileDialogUpdateStatus(); + +void RegisterLib(Core::Loader::SymbolsResolver* sym); +} // namespace Libraries::NpProfileDialog \ No newline at end of file