Files
AnyPS5/docs/dev/debt/libSceMsgDialog.md

1.7 KiB

libSceMsgDialog technical debt

Silent stubs

  • libSceMsgDialog - message dialogs show no UI. sceMsgDialogOpen opens one without sceMsgDialogInitialize as well, and a user message or system message dialog finishes on the second sceMsgDialogGetStatus or sceMsgDialogUpdateStatus call; the first 160 characters of a user message are only logged. The button it picks (2 for YES_NO_FOCUS_NO, otherwise 1) is kept but not returned, as sceMsgDialogGetResult is exported by libSceMsgDialog.native. A progress bar dialog runs until sceMsgDialogClose or for 30 seconds, and sceMsgDialogProgressBarInc, sceMsgDialogProgressBarSetMsg and sceMsgDialogProgressBarSetValue ignore their arguments

Unknown function info

  • sceMsgDialogOpen (libSceMsgDialog) - the SceMsgDialogParam layout it reads is not measured on a PS5: the mode at 0x38 (1 user message, 2 progress bar, 3 system message), the user message parameter pointer at 0x40, and in that parameter the button type at 0 and the message pointer at 8. A mode outside 1 to 3, or a parameter that cannot be read, is treated as a user message; only Windows checks that the memory is readable, so on Linux any non-null pointer is read. The errors 0x80b80003 (not initialized), 0x80b80007 (busy), 0x80b8000b (not running) and 0x80b8000d (null argument) are not measured either. PPSA21564 01.007.000 (at 0x1D8C) and PPSA30839 01.003.000 (0x19690), disassembled for this entry, write this layout: 0x88 at 0x30, mode 1 and the parameter at 0x40 with the message at 8, and PPSA21564 the button type at 0. Closes when: measured on a PS5