mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-30 12:25:49 +00:00
The silent stub entry grew past 1000 characters. The progress bar statement moves to its own entry unchanged.
2.9 KiB
2.9 KiB
libSceMsgDialog technical debt
Silent stubs
- libSceMsgDialog - only a user message dialog with button type 0, 1, 3 or 4 shows UI, and only while the video output has a window to draw it. A progress bar, a system message, a user message of any other button type, a dialog opened with no window, one opened while another dialog is shown and one that no flip drew within three seconds show none:
sceMsgDialogOpenopens them withoutsceMsgDialogInitializeas well, and they finish on the secondsceMsgDialogGetStatusorsceMsgDialogUpdateStatuscall; the first 160 characters of a user message are only logged. The button a player picks, or that a dialog without UI picks (2 forYES_NO_FOCUS_NO, otherwise 1), is kept but not returned, assceMsgDialogGetResultis exported by libSceMsgDialog.native. - libSceMsgDialog - a progress bar dialog runs until
sceMsgDialogCloseor for 30 seconds, andsceMsgDialogProgressBarInc,sceMsgDialogProgressBarSetMsgandsceMsgDialogProgressBarSetValueignore their arguments
Unknown function info
- sceMsgDialogOpen (libSceMsgDialog) - the
SceMsgDialogParamlayout 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 errors0x80b80003(not initialized),0x80b80007(busy),0x80b8000b(not running) and0x80b8000d(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 - sceMsgDialogOpen (libSceMsgDialog) - the dialog the overlay draws is not modelled on a PS5: the labels OK, Yes, No and Cancel are English and fixed, the message is drawn with the system keyboard's bitmap font, wrapped at 36 columns and cut to 8 lines with dots, and a character the font lacks is drawn as a box. Closes when: measured on a PS5
- sceMsgDialogOpen (libSceMsgDialog) - the button ids of an answer are the button's position plus one (OK 1; YES 1 and NO 2; OK 1 and CANCEL 2) and a cancel input picks the last button; neither is measured on a PS5, nor is the id after the title closes the dialog (libSceMsgDialog.native keeps 1). Button types from 5 on are not shown. Closes when: measured on a PS5