Fixed long standing bug with Syphon Filter - The Omega Strain involved in the handing of Filling Writes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4240 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction 2011-01-21 15:58:55 +00:00
parent 07bb54acc4
commit e607fa4ee8
1 changed files with 9 additions and 3 deletions

View File

@ -182,12 +182,18 @@ void VifUnpackSSE_Dynarec::CompileRoutine() {
if (++vCL == blockSize) vCL = 0;
}
else if (isFill) {
//Filling doesn't need anything fancy, it's pretty much a normal write, just doesnt increment the source.
//DevCon.WriteLn("filling mode!");
VifUnpackSSE_Dynarec fill( VifUnpackSSE_Dynarec::FillingWrite( *this ) );
fill.xUnpack(upkNum);
fill.xMovDest();
xUnpack(upkNum);
xMovDest();
dstIndirect += 16;
if( IsUnmaskedOp() ) {
++destReg;
++workReg;
}
vNum--;
if (++vCL == blockSize) vCL = 0;
}