diff --git a/rpcs3/Emu/Cell/Modules/cellSpurs.cpp b/rpcs3/Emu/Cell/Modules/cellSpurs.cpp index e35d03ea21..82e6b6aa59 100644 --- a/rpcs3/Emu/Cell/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSpurs.cpp @@ -2413,8 +2413,8 @@ s32 _spurs::add_workload(ppu_thread& ppu, vm::ptr spurs, vm::ptr vm::atomic_op(spurs->wklMaxContention[index], [&](u8& v) { - v &= (wnum <= 15 ? ~0xf : ~0xf0); - v |= (maxContention > 8 ? 8 : maxContention) << 4; + v &= (wnum <= 15 ? 0xf0 : 0x0f); + v |= (maxContention > 8 ? 8 : maxContention) << (wnum < CELL_SPURS_MAX_WORKLOAD ? 0 : 4); }); vm::atomic_op((wnum <= 15 ? spurs->wklSignal1 : spurs->wklSignal2), [&](be_t& data)