From 94d959ba4461d2dd755d694e85a0a267fd892d71 Mon Sep 17 00:00:00 2001 From: DH Date: Wed, 27 Dec 2023 21:47:59 +0300 Subject: [PATCH] [rpcsx-os] ipmi: fix SceUserService 0x30011 handler --- rpcsx-os/main.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/rpcsx-os/main.cpp b/rpcsx-os/main.cpp index b43695cc9..bfe8a2309 100644 --- a/rpcsx-os/main.cpp +++ b/rpcsx-os/main.cpp @@ -1013,16 +1013,15 @@ static void createShellCoreObjects(orbis::Process *process) { createIpmiServer(process, "SceDbRecoveryShellCore"); createIpmiServer(process, "SceUserService") .sendMsg(SceUserServiceEvent{.eventType = 0, .user = 1}) - .createSyncHandler( + .createSyncHandler( 0x30011, - [](void *ptr, std::uint64_t size, uint32_t data) -> std::int32_t { - ORBIS_LOG_TODO("SceUserService: get_initial_user_id"); - - if (size != sizeof(orbis::uint32_t)) { + [](void *ptr, std::uint64_t &size) -> std::int32_t { + if (size < sizeof(orbis::uint32_t)) { return 0x8000'0000; } - *(uint32_t *)ptr = 1; + *(orbis::uint32_t *)ptr = 1; + size = sizeof(orbis::uint32_t); return 0; }); createIpmiServer(process, "SceDbPreparationServer");