diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 1042ab5552..15ac17c446 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -6811,7 +6811,7 @@ public: } case MFC_Size: { - set_reg_fixed(s_reg_mfc_size, trunc(val & 0x7fff).eval(m_ir)); + set_reg_fixed(s_reg_mfc_size, trunc(val).eval(m_ir)); return; } case MFC_TagID: diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 1ec16af2cb..06eb02b1cb 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -5278,7 +5278,7 @@ bool spu_thread::set_ch_value(u32 ch, u32 value) case MFC_Size: { - ch_mfc_cmd.size = value & 0x7fff; + ch_mfc_cmd.size = static_cast(std::min(value, 0xffff)); return true; }