From 378eccc6ea5a53500eabe1d396e39d1d1a7d9d33 Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Thu, 3 Dec 2020 17:53:02 +0000 Subject: [PATCH] IPU: Stop IPU0 looping when there's no data for it to read Fixes bad slowdowns in Ratchet games when using EE Timing fix caused by bad IPU streams --- pcsx2/IPU/IPU_Fifo.cpp | 3 ++- pcsx2/IPU/IPUdma.cpp | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pcsx2/IPU/IPU_Fifo.cpp b/pcsx2/IPU/IPU_Fifo.cpp index a1f53b7487..3361c3d114 100644 --- a/pcsx2/IPU/IPU_Fifo.cpp +++ b/pcsx2/IPU/IPU_Fifo.cpp @@ -125,7 +125,8 @@ int IPU_Fifo_Output::write(const u32 *value, uint size) --transsize; } /*} while(true);*/ - + if(ipu0ch.chcr.STR) + IPU_INT_FROM(64); return origsize - size; } diff --git a/pcsx2/IPU/IPUdma.cpp b/pcsx2/IPU/IPUdma.cpp index 0387a125b5..d9cd6f2d02 100644 --- a/pcsx2/IPU/IPUdma.cpp +++ b/pcsx2/IPU/IPUdma.cpp @@ -196,7 +196,6 @@ void IPU0dma() { if(!ipuRegs.ctrl.OFC) { - IPU_INT_FROM( 64 ); IPUProcessInterrupt(); return; }