From c3c6841d108df8c0265f11230c9a9da5653aaace Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Wed, 8 Apr 2026 20:07:08 +0300 Subject: [PATCH] improved logging --- .../np_profile_dialog/np_profile_dialog.cpp | 58 +++++++++++++++++-- .../np/np_profile_dialog/np_profile_dialog.h | 16 ++--- 2 files changed, 57 insertions(+), 17 deletions(-) diff --git a/src/core/libraries/np/np_profile_dialog/np_profile_dialog.cpp b/src/core/libraries/np/np_profile_dialog/np_profile_dialog.cpp index 823616cc3..9c410017f 100644 --- a/src/core/libraries/np/np_profile_dialog/np_profile_dialog.cpp +++ b/src/core/libraries/np/np_profile_dialog/np_profile_dialog.cpp @@ -17,17 +17,22 @@ static NpProfileDialogState g_state{}; static OrbisNpProfileDialogResult g_result{}; static NpProfileDialogUi g_profile_dialog_ui; -Libraries::CommonDialog::Error PS4_SYSV_ABI -sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) { +Libraries::CommonDialog::Error sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) { if (g_status != Libraries::CommonDialog::Status::INITIALIZED && g_status != Libraries::CommonDialog::Status::FINISHED) { - LOG_INFO(Lib_NpProfileDialog, "called without initialize"); + LOG_ERROR(Lib_NpProfileDialog, "called without initialize"); return Libraries::CommonDialog::Error::INVALID_STATE; } if (param == nullptr) { + LOG_ERROR(Lib_NpProfileDialog, "param is nullptr"); return Libraries::CommonDialog::Error::ARG_NULL; } - LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + + LOG_DEBUG(Lib_NpProfileDialog, + "param details: mode={}, userId={}, targetOnlineId='{}', userData={}", + static_cast(param->mode), param->userId, param->targetOnlineId.data, + fmt::ptr(param->userData)); + NpProfileDialogState state{}; state.onlineId = std::string(param->targetOnlineId.data); state.hasAccountId = false; @@ -37,7 +42,13 @@ sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) { g_result = {}; g_result.userData = param->userData; g_status = Libraries::CommonDialog::Status::RUNNING; + + LOG_DEBUG(Lib_NpProfileDialog, "creating UI with onlineId='{}', mode={}, userId={}", + state.onlineId, static_cast(state.mode), state.userId); + g_profile_dialog_ui = NpProfileDialogUi(&g_state, &g_status, &g_result); + + LOG_INFO(Lib_NpProfileDialog, "dialog opened successfully for user {}", param->userId); return Libraries::CommonDialog::Error::OK; } @@ -56,16 +67,25 @@ Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogClose() { Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogGetResult(OrbisNpProfileDialogResult* result) { LOG_DEBUG(Lib_NpProfileDialog, "called"); + if (g_status == Libraries::CommonDialog::Status::NONE) { + LOG_INFO(Lib_NpProfileDialog, "failed: not initialized (g_status=NONE)"); return Libraries::CommonDialog::Error::NOT_INITIALIZED; } if (result == nullptr) { + LOG_INFO(Lib_NpProfileDialog, "failed: result pointer is nullptr"); return Libraries::CommonDialog::Error::ARG_NULL; } if (g_status != Libraries::CommonDialog::Status::FINISHED) { + LOG_INFO(Lib_NpProfileDialog, "failed: dialog not finished (g_status={})", + static_cast(g_status)); return Libraries::CommonDialog::Error::NOT_FINISHED; } + *result = g_result; + + LOG_DEBUG(Lib_NpProfileDialog, "result details: resultCode={}, userAction={}, userData={}", + g_result.result, static_cast(g_result.userAction), fmt::ptr(g_result.userData)); return Libraries::CommonDialog::Error::OK; } @@ -76,17 +96,22 @@ Libraries::CommonDialog::Status PS4_SYSV_ABI sceNpProfileDialogGetStatus() { Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogInitialize() { if (!CommonDialog::g_isInitialized) { + LOG_INFO(Lib_NpProfileDialog, "failed: system not initialized"); return Libraries::CommonDialog::Error::NOT_SYSTEM_INITIALIZED; } if (g_status != Libraries::CommonDialog::Status::NONE) { - LOG_INFO(Lib_NpProfileDialog, "already initialized"); + LOG_INFO(Lib_NpProfileDialog, "failed: already initialized (g_status={})", + static_cast(g_status)); return Libraries::CommonDialog::Error::ALREADY_INITIALIZED; } if (CommonDialog::g_isUsed) { + LOG_INFO(Lib_NpProfileDialog, "failed: dialog system busy (g_isUsed=true)"); return Libraries::CommonDialog::Error::BUSY; } + g_status = Libraries::CommonDialog::Status::INITIALIZED; CommonDialog::g_isUsed = true; + LOG_INFO(Lib_NpProfileDialog, "initialized successfully"); return Libraries::CommonDialog::Error::OK; } @@ -94,13 +119,20 @@ Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogOpenA(OrbisNpProfileDialogParamA* param) { if (g_status != Libraries::CommonDialog::Status::INITIALIZED && g_status != Libraries::CommonDialog::Status::FINISHED) { - LOG_INFO(Lib_NpProfileDialog, "called without initialize"); + LOG_ERROR(Lib_NpProfileDialog, "called without initialize"); return Libraries::CommonDialog::Error::INVALID_STATE; } if (param == nullptr) { + LOG_ERROR(Lib_NpProfileDialog, "failed: param is nullptr"); return Libraries::CommonDialog::Error::ARG_NULL; } + + LOG_DEBUG(Lib_NpProfileDialog, + "param details: mode={}, userId={}, targetAccountId='{}', userData={}", + static_cast(param->mode), param->userId, param->targetAccountId, + fmt::ptr(param->userData)); LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called"); + NpProfileDialogState state{}; state.accountId = param->targetAccountId; state.hasAccountId = true; @@ -110,19 +142,33 @@ sceNpProfileDialogOpenA(OrbisNpProfileDialogParamA* param) { g_result = {}; g_result.userData = param->userData; g_status = Libraries::CommonDialog::Status::RUNNING; + + LOG_DEBUG(Lib_NpProfileDialog, "creating UI with accountId='{}', mode={}, userId={}", + state.accountId, static_cast(state.mode), state.userId); + g_profile_dialog_ui = NpProfileDialogUi(&g_state, &g_status, &g_result); + + LOG_INFO(Lib_NpProfileDialog, "dialog opened successfully for user {} (account ID variant)", + param->userId); return Libraries::CommonDialog::Error::OK; } Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogTerminate() { + LOG_DEBUG(Lib_NpProfileDialog, "called (g_status={})", static_cast(g_status)); + if (g_status == Libraries::CommonDialog::Status::RUNNING) { + LOG_ERROR(Lib_NpProfileDialog, "dialog is running, closing it first"); sceNpProfileDialogClose(); } if (g_status == Libraries::CommonDialog::Status::NONE) { + LOG_ERROR(Lib_NpProfileDialog, "failed: not initialized (g_status=NONE)"); return Libraries::CommonDialog::Error::NOT_INITIALIZED; } + g_status = Libraries::CommonDialog::Status::NONE; CommonDialog::g_isUsed = false; + + LOG_INFO(Lib_NpProfileDialog, "terminated successfully"); return Libraries::CommonDialog::Error::OK; } diff --git a/src/core/libraries/np/np_profile_dialog/np_profile_dialog.h b/src/core/libraries/np/np_profile_dialog/np_profile_dialog.h index 075f78aaf..c885a7db0 100644 --- a/src/core/libraries/np/np_profile_dialog/np_profile_dialog.h +++ b/src/core/libraries/np/np_profile_dialog/np_profile_dialog.h @@ -22,17 +22,11 @@ enum class OrbisNpProfileDialogMode : u32 { ORBIS_NP_PROFILE_DIALOG_MODE_GRIEF_REPORT = 4, }; -using OrbisNpProfileGriefReportItem = s32; -static constexpr OrbisNpProfileGriefReportItem - ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_INVALID = 0x00000000; -static constexpr OrbisNpProfileGriefReportItem - ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ONLINE_ID = 0x00000001; -static constexpr OrbisNpProfileGriefReportItem ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_NAME = - 0x00000002; -static constexpr OrbisNpProfileGriefReportItem - ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_PICTURE = 0x00000004; -static constexpr OrbisNpProfileGriefReportItem - ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ABOUT_ME = 0x00000008; +static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_INVALID = 0x00000000; +static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ONLINE_ID = 0x00000001; +static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_NAME = 0x00000002; +static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_PICTURE = 0x00000004; +static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ABOUT_ME = 0x00000008; struct OrbisNpProfileDialogParam { CommonDialog::BaseParam baseParam;