mirror of https://github.com/PCSX2/pcsx2.git
Fixed a problem around the VU clip code, introduced in r659. GoW and Persona (and more) now work without a gamefix.
I'll remove the gamefix if there is no problem. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@783 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
c483f17331
commit
2b843ce49d
|
@ -3002,21 +3002,22 @@ void VuInstruction::Recompile(list<VuInstruction>::iterator& itinst, u32 vuxyz)
|
||||||
|
|
||||||
if( !CHECK_VUCLIPFLAGHACK && pparentinst != NULL ) {
|
if( !CHECK_VUCLIPFLAGHACK && pparentinst != NULL ) {
|
||||||
|
|
||||||
if( pparentinst->pClipWrite == 0 ) {
|
|
||||||
pparentinst->pClipWrite = (uptr)SuperVUStaticAlloc(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
if( nParentCheckForExecution >= 0 ) {
|
if( nParentCheckForExecution >= 0 ) {
|
||||||
|
if( pparentinst->pClipWrite == 0 )
|
||||||
|
pparentinst->pClipWrite = (uptr)SuperVUStaticAlloc(4);
|
||||||
|
|
||||||
if( s_ClipRead == 0 )
|
if( s_ClipRead == 0 )
|
||||||
s_ClipRead = (uptr)&VU->VI[REG_CLIP_FLAG];
|
s_ClipRead = (uptr)&VU->VI[REG_CLIP_FLAG];
|
||||||
|
|
||||||
CMP32ItoM((uptr)&g_nLastBlockExecuted, nParentCheckForExecution);
|
CMP32ItoM((uptr)&g_nLastBlockExecuted, nParentCheckForExecution);
|
||||||
u8* jptr = JNE8(0);
|
u8* jptr = JNE8(0);
|
||||||
|
CMP32ItoM((uptr)&s_ClipRead, (uptr)&VU->VI[REG_CLIP_FLAG]);
|
||||||
|
u8* jptr2 = JE8(0);
|
||||||
MOV32MtoR(EAX, pparentinst->pClipWrite);
|
MOV32MtoR(EAX, pparentinst->pClipWrite);
|
||||||
MOV32RtoM(s_ClipRead, EAX);
|
MOV32RtoM(s_ClipRead, EAX);
|
||||||
x86SetJ8(jptr);
|
x86SetJ8(jptr);
|
||||||
|
x86SetJ8(jptr2);
|
||||||
}
|
}
|
||||||
else s_ClipRead = (uptr)&VU->VI[REG_CLIP_FLAG];
|
|
||||||
}
|
}
|
||||||
else s_ClipRead = (uptr)&VU->VI[REG_CLIP_FLAG];
|
else s_ClipRead = (uptr)&VU->VI[REG_CLIP_FLAG];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue