From 08a097e46ede953da0d34e0d96ead3b189d5f6f4 Mon Sep 17 00:00:00 2001 From: DH Date: Wed, 18 Oct 2023 20:35:08 +0300 Subject: [PATCH] [orbis-kernel] create SceLncSuspendBlock with init value --- orbis-kernel/src/sys/sys_sce.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/orbis-kernel/src/sys/sys_sce.cpp b/orbis-kernel/src/sys/sys_sce.cpp index 024bf44ba..fb6ab4b05 100644 --- a/orbis-kernel/src/sys/sys_sce.cpp +++ b/orbis-kernel/src/sys/sys_sce.cpp @@ -400,7 +400,15 @@ orbis::SysResult orbis::sys_osem_open(Thread *thread, auto sem = thread->tproc->context->findSemaphore(_name); if (sem == nullptr) { // FIXME: hack :) - return sys_osem_create(thread, name, kSemaAttrShared, 0, 10000); + if (std::string_view(_name).starts_with("SceLncSuspendBlock")) { + auto result = sys_osem_create(thread, name, kSemaAttrShared, 1, 10000); + ORBIS_LOG_WARNING(__FUNCTION__, _name, result.value(), thread->retval[0]); + return result; + } else { + auto result = sys_osem_create(thread, name, kSemaAttrShared, 0, 10000); + ORBIS_LOG_WARNING(__FUNCTION__, _name, result.value(), thread->retval[0]); + return result; + } return ErrorCode::SRCH; }