installer: load dialog sysmodules before use (fixes boot panic)

This commit is contained in:
SirHumza committed 2026-09-24 16:59:08 +02:00
1 parent bbdc7d8238
commit fef0a578f6
5 files changed
+18 -1

No files matched your search

Binary file not shown.
+1
View File
@@ -162,6 +162,7 @@ static void step_tweaks(void){
int main(void){
char tok[160];
int first_run;
if(ui_init() != 0) return 1; /* no dialogs possible; exit, don't crash */
tok[0] = 0;
icfg_token_load(ICFG_PATH, tok, sizeof tok);
first_run = !token_valid(tok);
+1 -1
View File
@@ -3,7 +3,7 @@
<volume>
<volume_type>pkg_ps4_app</volume_type>
<volume_id>PS4VOLUME</volume_id>
<volume_ts>2026-09-24 16:49:26</volume_ts>
<volume_ts>2026-09-24 16:59:07</volume_ts>
<package content_id="IV0000-ORPC00001_00-ORBISRPCSETUP000" passcode="00000000000000000000000000000000"
storage_type="digital50" app_type="full" />
<chunk_info chunk_count="1" scenario_count="1">
+11
View File
@@ -21,6 +21,17 @@ static void base_init(OrbisMsgDialogParam *param){
param->mode = ORBIS_MSG_DIALOG_MODE_USER_MSG;
}
static int ui_ready = 0;
int ui_init(void){
if(ui_ready) return 0;
if(sceSysmoduleLoadModule(ORBIS_SYSMODULE_MESSAGE_DIALOG) < 0) return -1;
if(sceSysmoduleLoadModule(ORBIS_SYSMODULE_IME_DIALOG) < 0) return -1;
if(sceCommonDialogInitialize() < 0) return -1;
ui_ready = 1;
return 0;
}
int ui_ok(const char *msg){
OrbisMsgDialogParam param;
OrbisMsgDialogUserMessageParam um;
+5
View File
@@ -3,6 +3,11 @@
#define INSTALLER_UI_H
#include <stddef.h>
/* Must run once before any dialog: loads MsgDialog/ImeDialog sysmodules
* and inits CommonDialog. Calling dialogs without this panics the box
* (unloaded-sysmodule call at startup). 0 ok, -1 fatal. */
int ui_init(void);
/* Info dialog with OK. 0 shown, -1 failed to open. */
int ui_ok(const char *msg);
/* Yes/No dialog, focus on No (safe default). 1 yes, 0 no/closed, -1 error. */