summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2013-04-06 18:57:14 +0000
committer smf- <smf-@users.noreply.github.com>2013-04-06 18:57:14 +0000
commitef276046538895fd2b3ef9be2e5379a4005902eb (patch)
treebf53df04add02bbead90ddf6f78f34badfe113d0
parent34e821c2fbf59cd925e3f3c2234a1744dfa6219c (diff)
Changed dcpl to dpcl to match official documentation, updated disassembly to match emulation.
-rw-r--r--src/emu/cpu/psx/gte.c2
-rw-r--r--src/emu/cpu/psx/psxdasm.c62
2 files changed, 15 insertions, 49 deletions
diff --git a/src/emu/cpu/psx/gte.c b/src/emu/cpu/psx/gte.c
index 6200753e852..a97c2660cac 100644
--- a/src/emu/cpu/psx/gte.c
+++ b/src/emu/cpu/psx/gte.c
@@ -2800,7 +2800,7 @@ int gte::docop2( UINT32 pc, int gteop )
case 0x29:
if( gteop == 0x0680029 )
{
- GTELOG( pc, "%08x DCPL", gteop );
+ GTELOG( pc, "%08x DPCL", gteop );
FLAG = 0;
MAC1 = A1( ( ( ( (INT64) R << 4 ) * IR1 ) + ( IR0 * Lm_B1( RFC - ( ( R * IR1 ) >> 8 ), 0 ) ) ) >> 12 );
diff --git a/src/emu/cpu/psx/psxdasm.c b/src/emu/cpu/psx/psxdasm.c
index c7511ae385c..98b98d075d4 100644
--- a/src/emu/cpu/psx/psxdasm.c
+++ b/src/emu/cpu/psx/psxdasm.c
@@ -97,7 +97,7 @@ static const char *const s_cp3ctlreg[] =
static const char *const s_gtesf[] =
{
- "0", "12"
+ " sf=0", " sf=12"
};
static const char *const s_gtemx[] =
@@ -117,7 +117,7 @@ static const char *const s_gtecv[] =
static const char *const s_gtelm[] =
{
- "0", "1"
+ " lm=s16", " lm=u15"
};
static char *effective_address( DasmPSXCPU_state *state, UINT32 pc, UINT32 op )
@@ -504,37 +504,22 @@ unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UIN
}
break;
case 0x06:
- if( INS_COFUN( op ) == 0x0400006 ||
- INS_COFUN( op ) == 0x1400006 ||
- INS_COFUN( op ) == 0x0155cc6 )
- {
- sprintf( buffer, "nclip" );
- }
+ sprintf( buffer, "nclip" );
break;
case 0x0c:
- if( GTE_OP( op ) == 0x17 )
- {
- sprintf( buffer, "op%s", s_gtesf[ GTE_SF( op ) ] );
- }
+ sprintf( buffer, "op%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x10:
- if( INS_COFUN( op ) == 0x0780010 )
- {
- sprintf( buffer, "dpcs" );
- }
+ sprintf( buffer, "dpcs%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x11:
- if( INS_COFUN( op ) == 0x0980011 )
- {
- sprintf( buffer, "intpl" );
- }
+ sprintf( buffer, "intpl%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x12:
if( GTE_OP( op ) == 0x04 )
{
- sprintf( buffer, "mvmva%s %s + %s * %s (lm=%s)",
- s_gtesf[ GTE_SF( op ) ], s_gtecv[ GTE_CV( op ) ], s_gtemx[ GTE_MX( op ) ],
- s_gtev[ GTE_V( op ) ], s_gtelm[ GTE_LM( op ) ] );
+ sprintf( buffer, "mvmva%s%s %s + %s * %s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ],
+ s_gtecv[ GTE_CV( op ) ], s_gtemx[ GTE_MX( op ) ], s_gtev[ GTE_V( op ) ] );
}
break;
case 0x13:
@@ -580,34 +565,19 @@ unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UIN
}
break;
case 0x28:
- if( GTE_OP( op ) == 0x0a && GTE_LM( op ) == 1 )
- {
- sprintf( buffer, "sqr%s", s_gtesf[ GTE_SF( op ) ] );
- }
+ sprintf( buffer, "sqr%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x29:
- if( INS_COFUN( op ) == 0x0680029 )
- {
- sprintf( buffer, "dcpl" );
- }
+ sprintf( buffer, "dpcl%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x2a:
- if( INS_COFUN( op ) == 0x0f8002a )
- {
- sprintf( buffer, "dpct" );
- }
+ sprintf( buffer, "dpct%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x2d:
- if( INS_COFUN( op ) == 0x158002d )
- {
- sprintf( buffer, "avsz3" );
- }
+ sprintf( buffer, "avsz3" );
break;
case 0x2e:
- if( INS_COFUN( op ) == 0x168002e )
- {
- sprintf( buffer, "avsz4" );
- }
+ sprintf( buffer, "avsz4" );
break;
case 0x30:
if( INS_COFUN( op ) == 0x0280030 )
@@ -616,11 +586,7 @@ unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UIN
}
break;
case 0x3d:
- if( GTE_OP( op ) == 0x09 ||
- GTE_OP( op ) == 0x19 )
- {
- sprintf( buffer, "gpf%s", s_gtesf[ GTE_SF( op ) ] );
- }
+ sprintf( buffer, "gpf%s%s", s_gtesf[ GTE_SF( op ) ], s_gtelm[ GTE_LM( op ) ] );
break;
case 0x3e:
if( GTE_OP( op ) == 0x1a )