diff --git a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp index 75835ffa24..43bfb308ba 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp @@ -502,7 +502,7 @@ error_code _sys_lwcond_queue_wait(ppu_thread& ppu, u32 lwcond_id, u32 lwmutex_id if (!cond || !mutex) { - return CELL_ESRCH; + return { CELL_ESRCH, fmt::format("lwmutex_id: 0x%x, lwcond_id: 0x%x", lwmutex_id, lwcond_id) }; } if (ppu.state & cpu_flag::again) diff --git a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp index a56bffedca..ca8d7f1260 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwmutex.cpp @@ -183,7 +183,12 @@ error_code _sys_lwmutex_lock(ppu_thread& ppu, u32 lwmutex_id, u64 timeout) if (!mutex) { - return CELL_ESRCH; + if (lwmutex_id >> 24 == lv2_lwmutex::id_base >> 24) + { + return { CELL_ESRCH, lwmutex_id }; + } + + return { CELL_ESRCH, "Invalid ID" }; } if (mutex.ret) @@ -313,7 +318,12 @@ error_code _sys_lwmutex_trylock(ppu_thread& ppu, u32 lwmutex_id) if (!mutex) { - return CELL_ESRCH; + if (lwmutex_id >> 24 == lv2_lwmutex::id_base >> 24) + { + return { CELL_ESRCH, lwmutex_id }; + } + + return { CELL_ESRCH, "Invalid ID" }; } if (!mutex.ret)