Fixed System 11 emulation in Tekken 5

(EErec bug: madd should be signed multiplication, not unsigned)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1474 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
cottonvibes 2009-07-06 23:58:59 +00:00
parent 90e7944577
commit d9963bb54e
1 changed files with 4 additions and 5 deletions

View File

@ -783,7 +783,6 @@ void recDIVU1_constt(int info)
EERECOMPILE_CODE0(DIVU1, XMMINFO_READS|XMMINFO_READT); EERECOMPILE_CODE0(DIVU1, XMMINFO_READS|XMMINFO_READT);
void recMADD() void recMADD()
{ {
EEINST_SETSIGNEXT(_Rs_); EEINST_SETSIGNEXT(_Rs_);
@ -816,7 +815,7 @@ void recMADD()
MOV32RtoM( (int)&cpuRegs.HI.UL[1], EDX ); MOV32RtoM( (int)&cpuRegs.HI.UL[1], EDX );
return; return;
} }
_deleteEEreg(XMMGPR_LO, 1); _deleteEEreg(XMMGPR_LO, 1);
_deleteEEreg(XMMGPR_HI, 1); _deleteEEreg(XMMGPR_HI, 1);
_deleteGPRtoXMMreg(_Rs_, 1); _deleteGPRtoXMMreg(_Rs_, 1);
@ -826,15 +825,15 @@ void recMADD()
if( GPR_IS_CONST1(_Rs_) ) { if( GPR_IS_CONST1(_Rs_) ) {
MOV32ItoR( EAX, g_cpuConstRegs[_Rs_].UL[0] ); MOV32ItoR( EAX, g_cpuConstRegs[_Rs_].UL[0] );
MUL32M( (int)&cpuRegs.GPR.r[ _Rt_ ].UL[ 0 ] ); IMUL32M( (int)&cpuRegs.GPR.r[ _Rt_ ].UL[ 0 ] );
} }
else if ( GPR_IS_CONST1(_Rt_) ) { else if ( GPR_IS_CONST1(_Rt_) ) {
MOV32ItoR( EAX, g_cpuConstRegs[_Rt_].UL[0] ); MOV32ItoR( EAX, g_cpuConstRegs[_Rt_].UL[0] );
MUL32M( (int)&cpuRegs.GPR.r[ _Rs_ ].UL[ 0 ] ); IMUL32M( (int)&cpuRegs.GPR.r[ _Rs_ ].UL[ 0 ] );
} }
else { else {
MOV32MtoR( EAX, (int)&cpuRegs.GPR.r[ _Rs_ ].UL[ 0 ] ); MOV32MtoR( EAX, (int)&cpuRegs.GPR.r[ _Rs_ ].UL[ 0 ] );
MUL32M( (int)&cpuRegs.GPR.r[ _Rt_ ].UL[ 0 ] ); IMUL32M( (int)&cpuRegs.GPR.r[ _Rt_ ].UL[ 0 ] );
} }
MOV32RtoR( ECX, EDX ); MOV32RtoR( ECX, EDX );