diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h b/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h index 8ddd9a7d72..8fd6561d13 100644 --- a/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h +++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h @@ -46,7 +46,8 @@ inline void SetFI(int FI) inline void UpdateFPSCR() { FPSCR.VX = (FPSCR.Hex & FPSCR_VX_ANY) != 0; - FPSCR.FEX = 0; // we assume that "?E" bits are always 0 + FPSCR.FEX = (FPSCR.VX & FPSCR.VE) | (FPSCR.OX & FPSCR.OE) | (FPSCR.UX & FPSCR.UE) | + (FPSCR.ZX & FPSCR.ZE) | (FPSCR.XX & FPSCR.XE); } inline double ForceSingle(double value)