From 42e0625ab3e182c7784921c5048bef247c9d96ba Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Fri, 23 May 2025 02:52:03 -0500 Subject: [PATCH] Interpreter: Fix FTOI on negative numbers --- pcsx2/VUops.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pcsx2/VUops.cpp b/pcsx2/VUops.cpp index 81f14646fb..05fa9a4855 100644 --- a/pcsx2/VUops.cpp +++ b/pcsx2/VUops.cpp @@ -879,12 +879,10 @@ static __fi u32 floatToInt(u32 uvalue) float fvalue = std::bit_cast(uvalue); if (Offset) fvalue *= std::bit_cast(0x3f800000 + (Offset << 23)); - s32 svalue = std::bit_cast(fvalue); + uvalue = std::bit_cast(fvalue); - if (svalue >= static_cast(0x4f000000)) - return 0x7fffffff; - else if (svalue <= static_cast(0xcf000000)) - return 0x80000000; + if ((uvalue & 0x7f800000) >= 0x4f000000) + return (uvalue & 0x80000000) ? 0x80000000 : 0x7fffffff; else return static_cast(static_cast(fvalue)); }