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)); }