diff --git a/rpcs3/Emu/Cell/RawSPUThread.cpp b/rpcs3/Emu/Cell/RawSPUThread.cpp index 10dfc9de6e..f122fa9a61 100644 --- a/rpcs3/Emu/Cell/RawSPUThread.cpp +++ b/rpcs3/Emu/Cell/RawSPUThread.cpp @@ -141,8 +141,8 @@ bool RawSPUThread::write_reg(const u32 addr, const u32 value) case MFC_Size_Tag_offs: { - g_tls_mfc[index].tag = value & 0xff; - g_tls_mfc[index].size = value >> 16; + g_tls_mfc[index].tag = value & 0x1f; + g_tls_mfc[index].size = (value >> 16) & 0x7fff; return true; } diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 40c660329b..2eca529ee6 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -1422,13 +1422,13 @@ bool SPUThread::set_ch_value(u32 ch, u32 value) case MFC_Size: { - ch_mfc_cmd.size = value & 0xffff; + ch_mfc_cmd.size = value & 0x7fff; return true; } case MFC_TagID: { - ch_mfc_cmd.tag = value & 0xff; + ch_mfc_cmd.tag = value & 0x1f; return true; }