From 9edc22a4a930287cd650f739e0659872b168b2a3 Mon Sep 17 00:00:00 2001 From: Kikoarl <7354010+Kikoarl@users.noreply.github.com> Date: Tue, 6 Oct 2026 21:40:39 +0200 Subject: [PATCH] feat(libSceMsgDialog.native): implement sceMsgDialogGetStatus --- core/libs/prx/libSceMsgDialog.native/Export.cpp | 6 ++---- core/libs/tests/GuestMsgDialogNative.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/libs/prx/libSceMsgDialog.native/Export.cpp b/core/libs/prx/libSceMsgDialog.native/Export.cpp index 678c37088..edb76df0f 100644 --- a/core/libs/prx/libSceMsgDialog.native/Export.cpp +++ b/core/libs/prx/libSceMsgDialog.native/Export.cpp @@ -83,10 +83,8 @@ int APS5_VABI sceMsgDialogProgressBarSetValue(int target, std::uint32_t rate) { return g_status.load() == COMMON_DIALOG_STATUS_RUNNING ? 0 : COMMON_DIALOG_ERROR_NOT_RUNNING; } -APS5_EXPORT("CWVW78Qc3fI", sceMsgDialogUnknown00); -int APS5_VABI sceMsgDialogUnknown00(void) { - NotImplemented_nid_no_patch("CWVW78Qc3fI"); - return 0; +int APS5_VABI sceMsgDialogGetStatus(void) { + return g_status.load(); } } diff --git a/core/libs/tests/GuestMsgDialogNative.cpp b/core/libs/tests/GuestMsgDialogNative.cpp index 34f98d06b..dd43d10b4 100644 --- a/core/libs/tests/GuestMsgDialogNative.cpp +++ b/core/libs/tests/GuestMsgDialogNative.cpp @@ -6,6 +6,7 @@ extern "C" { int APS5_VABI sceMsgDialogInitialize(void); int APS5_VABI sceMsgDialogOpen(const void* param); +int APS5_VABI sceMsgDialogGetStatus(void); int APS5_VABI sceMsgDialogUpdateStatus(void); int APS5_VABI sceMsgDialogGetResult(MsgDialogResult* result); int APS5_VABI sceMsgDialogClose(void); @@ -31,19 +32,23 @@ int main() { Require(sceMsgDialogClose() == kErrNotRunning); Require(sceMsgDialogUpdateStatus() == 0); + Require(sceMsgDialogGetStatus() == 0); Require(sceMsgDialogInitialize() == 0); Require(sceMsgDialogClose() == kErrNotRunning); Require(sceMsgDialogUpdateStatus() == kStatusInitialized); + Require(sceMsgDialogGetStatus() == kStatusInitialized); Require(sceMsgDialogProgressBarSetValue(0, 50) == kErrNotRunning); Require(sceMsgDialogOpen(param) == 0); Require(sceMsgDialogUpdateStatus() == kStatusFinished); + Require(sceMsgDialogGetStatus() == kStatusFinished); Require(sceMsgDialogProgressBarInc(0, 10) == kErrNotRunning); Require(sceMsgDialogProgressBarSetMsg(0, "progress") == kErrNotRunning); Require(sceMsgDialogProgressBarSetValue(0, 100) == kErrNotRunning); Require(sceMsgDialogClose() == kErrNotRunning); Require(sceMsgDialogUpdateStatus() == kStatusFinished); + Require(sceMsgDialogGetStatus() == kStatusFinished); MsgDialogResult result{}; result.button_id = -1; @@ -53,4 +58,5 @@ int main() { Require(sceMsgDialogTerminate() == 0); Require(sceMsgDialogClose() == kErrNotRunning); + Require(sceMsgDialogGetStatus() == 0); }