diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 45424d8479..46a029d33f 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -4458,7 +4458,9 @@ bool spu_thread::set_ch_value(u32 ch, u32 value) if (res == CELL_EAGAIN) { + // Restore mailboxes state ch_out_mbox.set_value(data); + ch_in_mbox.try_pop(data); return false; } @@ -4529,7 +4531,9 @@ bool spu_thread::set_ch_value(u32 ch, u32 value) if (res == CELL_EAGAIN) { + // Restore mailboxes state ch_out_mbox.set_value(data); + ch_in_mbox.try_pop(data); return false; }