summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2008-04-11 23:10:07 +0000
committer smf- <smf-@users.noreply.github.com>2008-04-11 23:10:07 +0000
commit5f75c62fb90e09a3fa7fcf818adb00cfe869180a (patch)
tree738d39936d1af0b13f266e0650c2bcbada65cd55
parent2aac02a8d713a6c62bac05278e30e946e001f824 (diff)
fixed avsz3 & avsz4 flag & otz calculation.
-rw-r--r--src/emu/cpu/mips/psx.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/emu/cpu/mips/psx.c b/src/emu/cpu/mips/psx.c
index 7810f71fdca..fef2f900c97 100644
--- a/src/emu/cpu/mips/psx.c
+++ b/src/emu/cpu/mips/psx.c
@@ -3280,6 +3280,7 @@ static void docop2( int gteop )
static const UINT32 *const p_n_fc[] = { &RFC, &GFC, &BFC };
static const UINT32 *const p_n_zc[] = { &n_zc, &n_zc, &n_zc };
static const UINT32 *const *const p_p_n_cv[] = { p_n_tr, p_n_bk, p_n_fc, p_n_zc };
+ INT64 mac0;
switch( GTE_FUNCT( gteop ) )
{
@@ -3725,28 +3726,27 @@ static void docop2( int gteop )
return;
}
break;
+
case 0x2d:
- if( gteop == 0x158002d )
- {
- GTELOG( "AVSZ3" );
- FLAG = 0;
+ GTELOG( "AVSZ3" );
+ FLAG = 0;
+
+ mac0 = F( (INT64)( ZSF3 * SZ1 ) + ( ZSF3 * SZ2 ) + ( ZSF3 * SZ3 ) );
+ OTZ = Lm_D( mac0 >> 12 );
+
+ MAC0 = mac0;
+ return;
- MAC0 = F( ( (INT64)(INT16)ZSF3 * SZ1 ) + ( (INT16)ZSF3 * SZ2 ) + ( (INT16)ZSF3 * SZ3 ) );
- OTZ = Lm_D( (INT32)MAC0 >> 12 );
- return;
- }
- break;
case 0x2e:
- if( gteop == 0x168002e )
- {
- GTELOG( "AVSZ4" );
- FLAG = 0;
+ GTELOG( "AVSZ4" );
+ FLAG = 0;
+
+ mac0 = F( (INT64)( ZSF4 * SZ0 ) + ( ZSF4 * SZ1 ) + ( ZSF4 * SZ2 ) + ( ZSF4 * SZ3 ) );
+ OTZ = Lm_D( mac0 >> 12 );
+
+ MAC0 = mac0;
+ return;
- MAC0 = F( ( (INT64)(INT16)ZSF4 * SZ0 ) + ( (INT16)ZSF4 * SZ1 ) + ( (INT16)ZSF4 * SZ2 ) + ( (INT16)ZSF4 * SZ3 ) );
- OTZ = Lm_D( (INT32)MAC0 >> 12 );
- return;
- }
- break;
case 0x30:
if( gteop == 0x0280030 )
{