feat(libs): implement scePlayGoDialogGetStatus

Rename the NOAMxY2EGS0 stub and return the dialog's current status
without advancing it.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Adrià Franch 2026-10-05 19:32:16 +02:00
parent 0518f0e021
commit cf7c599087
2 changed files with 7 additions and 4 deletions

View File

@ -74,10 +74,8 @@ int APS5_VABI scePlayGoDialogGetResult(void* result) {
return 0;
}
APS5_EXPORT("NOAMxY2EGS0", scePlayGoDialogUnknown00);
int APS5_VABI scePlayGoDialogUnknown00(void) {
NotImplemented_nid_no_patch("NOAMxY2EGS0");
return 0;
int APS5_VABI scePlayGoDialogGetStatus(void) {
return g_status.load();
}
}

View File

@ -10,6 +10,7 @@ int APS5_VABI scePlayGoDialogTerminate(void);
int APS5_VABI scePlayGoDialogOpen(const void* param);
int APS5_VABI scePlayGoDialogClose(void);
int APS5_VABI scePlayGoDialogUpdateStatus(void);
int APS5_VABI scePlayGoDialogGetStatus(void);
int APS5_VABI scePlayGoDialogGetResult(void* result);
}
@ -21,6 +22,7 @@ int main() {
constexpr std::int32_t paramInvalid = static_cast<std::int32_t>(0x80ED0003);
constexpr std::int32_t invalidState = static_cast<std::int32_t>(0x80ED0005);
Require(scePlayGoDialogGetStatus() == 0);
Require(scePlayGoDialogTerminate() == notInitialized);
Require(scePlayGoDialogOpen(nullptr) == paramInvalid);
Require(scePlayGoDialogGetResult(nullptr) == notInitialized);
@ -29,11 +31,13 @@ int main() {
Require(scePlayGoDialogOpen(&openParam) == invalidState);
Require(scePlayGoDialogInitialize() == 0);
Require(scePlayGoDialogGetStatus() == 1);
Require(scePlayGoDialogInitialize() == alreadyInitialized);
Require(scePlayGoDialogOpen(nullptr) == paramInvalid);
Require(scePlayGoDialogUpdateStatus() == 1);
Require(scePlayGoDialogOpen(&openParam) == 0);
Require(scePlayGoDialogGetStatus() == 3);
Require(scePlayGoDialogUpdateStatus() == 3);
PlayGoDialogResult result{};
@ -41,6 +45,7 @@ int main() {
Require(result.result == 0);
Require(scePlayGoDialogClose() == 0);
Require(scePlayGoDialogTerminate() == 0);
Require(scePlayGoDialogGetStatus() == 0);
Require(scePlayGoDialogTerminate() == notInitialized);
return 0;
}