diff --git a/bin/GameIndex.yaml b/bin/GameIndex.yaml index 37613fedf6..d05d8074ad 100644 --- a/bin/GameIndex.yaml +++ b/bin/GameIndex.yaml @@ -7667,8 +7667,6 @@ SLES-50358: name: "Devil May Cry" region: "PAL-M5" compat: 5 - clampModes: - vuClampMode: 3 # Fixes out of place polys (COP2). SLES-50362: name: "Jonny Moseley Mad Trix" region: "PAL-E" @@ -21440,8 +21438,6 @@ SLPM-65038: name: "Devil May Cry" region: "NTSC-J" compat: 5 - clampModes: - vuClampMode: 3 # Fixes out of place polys (COP2). SLPM-65039: name: "Densha de Go! Shinkansen" region: "NTSC-J" @@ -27445,8 +27441,6 @@ SLPM-67502: name: "Devil May Cry" region: "NTSC-K" compat: 5 - clampModes: - vuClampMode: 3 # Fixes out of place polys (COP2). SLPM-67507: name: "Onimusha Warlords" region: "NTSC-K" @@ -33051,8 +33045,6 @@ SLUS-20216: name: "Devil May Cry" region: "NTSC-U" compat: 5 - clampModes: - vuClampMode: 3 # Fixes out of place polys (COP2). patches: 79B8A95F: content: |- @@ -40601,8 +40593,6 @@ SLUS-29008: SLUS-29009: name: "Devil May Cry [Demo]" region: "NTSC-U" - clampModes: - vuClampMode: 3 # Fixes out of place polys (COP2). SLUS-29010: name: "Crash Bandicoot - The Wrath of Cortex [Demo]" region: "NTSC-U" diff --git a/pcsx2/x86/microVU_Alloc.inl b/pcsx2/x86/microVU_Alloc.inl index 1dba98bdec..9ce1e4ea12 100644 --- a/pcsx2/x86/microVU_Alloc.inl +++ b/pcsx2/x86/microVU_Alloc.inl @@ -114,9 +114,11 @@ __fi void mVUallocCFLAGb(mV, const x32& reg, int fInstance) // On COP2 modifying the CLIP flag we need to update the microVU version for when it's restored on new program if (fInstance == 0xff) { - xMOVDZX(xmmT1, reg); - xSHUF.PS(xmmT1, xmmT1, 0); - xMOVAPS(ptr128[&mVU.regs().micro_clipflags], xmmT1); + int t0reg = _allocTempXMMreg(XMMT_INT, -1); + xMOVDZX(xRegisterSSE(t0reg), reg); + xPSHUF.D(xRegisterSSE(t0reg), xRegisterSSE(t0reg), 0); + xMOVDQA(ptr128[&mVU.regs().micro_clipflags], xRegisterSSE(t0reg)); + _freeXMMreg(t0reg); } }