installer: internal service modules at boot (pguest pattern)

This commit is contained in:
SirHumza committed 2026-09-24 22:30:01 +02:00
1 parent 91bf00d5e7
commit e44c5da290
2 files changed
+9 -2

No files matched your search

+4 -2
View File
@@ -13,6 +13,7 @@
#include <sys/select.h>
#ifdef INSTALLER_PS4
#include <orbis/Net.h>
#include <orbis/Sysmodule.h>
#endif
#define SEND_CHUNK (64u*1024u)
@@ -23,8 +24,9 @@ int net_init(void){
static int done = 0;
int probe;
if(done) return 0;
/* Best-effort: the stack may already be up (re-init calls then fail
* harmlessly). Ground truth is a probe socket, not return codes. */
/* Internal NET module (Payload Guest boot pattern) + best-effort
* stack init. Ground truth is a probe socket, not return codes. */
(void)sceSysmoduleLoadModuleInternal(ORBIS_SYSMODULE_INTERNAL_NET);
(void)sceNetInit();
(void)sceNetPoolCreate("orbisrpc", 64*1024, 0);
probe = socket(AF_INET, SOCK_STREAM, 0);
+5
View File
@@ -35,6 +35,11 @@ int ui_init(void){
up.priority = ORBIS_KERNEL_PRIO_FIFO_LOWEST;
(void)sceUserServiceInitialize(&up);
}
/* Internal service modules first (Payload Guest boot pattern):
* dialogs and system calls misbehave when these aren't up. */
if(sceSysmoduleLoadModuleInternal(ORBIS_SYSMODULE_INTERNAL_SYSTEM_SERVICE) != 0) return -1;
if(sceSysmoduleLoadModuleInternal(ORBIS_SYSMODULE_INTERNAL_USER_SERVICE) != 0) return -1;
if(sceSysmoduleLoadModuleInternal(ORBIS_SYSMODULE_INTERNAL_COMMON_DIALOG) != 0) return -1;
if(sceSysmoduleLoadModule(ORBIS_SYSMODULE_MESSAGE_DIALOG) < 0) return -1;
if(sceSysmoduleLoadModule(ORBIS_SYSMODULE_IME_DIALOG) < 0){
sceSysmoduleUnloadModule(ORBIS_SYSMODULE_MESSAGE_DIALOG);