diff --git a/pcsx2/IPU/IPU_Fifo.cpp b/pcsx2/IPU/IPU_Fifo.cpp index 9170385654..a1f53b7487 100644 --- a/pcsx2/IPU/IPU_Fifo.cpp +++ b/pcsx2/IPU/IPU_Fifo.cpp @@ -119,18 +119,8 @@ int IPU_Fifo_Output::write(const u32 *value, uint size) size -= transsize; while (transsize > 0) { - //For some reason this causes stack corruption or something - //and it loses the pointer causing access violations in Klonoa 2 - Ref - //CopyQWC(&data[writepos], value); - //Here's the workaround - data[writepos] = value[0]; - writepos = (writepos + 1) & 31; - data[writepos] = value[1]; - writepos = (writepos + 1) & 31; - data[writepos] = value[2]; - writepos = (writepos + 1) & 31; - data[writepos] = value[3]; - writepos = (writepos + 1) & 31; + CopyQWC(&data[writepos], value); + writepos = (writepos + 4) & 31; value += 4; --transsize; }