From 482dd0e8f80720d785fa4d00ca19dd3068df0232 Mon Sep 17 00:00:00 2001 From: Eladash Date: Sun, 9 Jul 2023 12:41:48 +0300 Subject: [PATCH] SPU: Remove wrong clamp in MFC_Size Just crashes real MFC. --- rpcs3/Emu/Cell/SPURecompiler.cpp | 2 +- rpcs3/Emu/Cell/SPUThread.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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; }