Previous 199869 Revisions Next

r19459 Monday 10th December, 2012 at 23:36:17 UTC by smf
preliminary DCPL GTE opcode [smf]
[src/emu/cpu/psx]gte.c

trunk/src/emu/cpu/psx/gte.c
r19458r19459
25192519         return 1;
25202520      }
25212521      break;
2522
25222523   case 0x13:
25232524      if( gteop == 0x0e80413 )
25242525      {
r19458r19459
25582559         return 1;
25592560      }
25602561      break;
2562
25612563   case 0x14:
25622564      if( gteop == 0x1280414 )
25632565      {
r19458r19459
25912593         return 1;
25922594      }
25932595      break;
2596
25942597   case 0x16:
25952598      if( gteop == 0x0f80416 )
25962599      {
r19458r19459
26332636         return 1;
26342637      }
26352638      break;
2639
26362640   case 0x1b:
26372641      if( gteop == 0x108041b || gteop == 0x118041b )
26382642      {
r19458r19459
26722676         return 1;
26732677      }
26742678      break;
2679
26752680   case 0x1c:
26762681      if( gteop == 0x138041c )
26772682      {
r19458r19459
27052710         return 1;
27062711      }
27072712      break;
2713
27082714   case 0x1e:
27092715      if( gteop == 0x0c8041e )
27102716      {
r19458r19459
27382744         return 1;
27392745      }
27402746      break;
2747
27412748   case 0x20:
27422749      if( gteop == 0x0d80420 )
27432750      {
r19458r19459
27902797      IR3 = Lm_B3( MAC3, lm );
27912798      return 1;
27922799
2793   // DCPL 0x29
2800   case 0x29:
2801      if( gteop == 0x0680029 )
2802      {
2803         GTELOG( pc, "%08x DCPL", gteop );
2804         FLAG = 0;
2805
2806         MAC1 = A1( ( ( ( (INT64) R << 4 ) * IR1 ) + ( IR0 * Lm_B1( RFC - ( ( R * IR1 ) >> 8 ), 0 ) ) ) >> 12 );
2807         MAC2 = A2( ( ( ( (INT64) G << 4 ) * IR2 ) + ( IR0 * Lm_B2( GFC - ( ( G * IR2 ) >> 8 ), 0 ) ) ) >> 12 );
2808         MAC3 = A3( ( ( ( (INT64) B << 4 ) * IR3 ) + ( IR0 * Lm_B3( BFC - ( ( B * IR3 ) >> 8 ), 0 ) ) ) >> 12 );
2809         IR1 = Lm_B1( MAC1, 1 );
2810         IR2 = Lm_B2( MAC2, 1 );
2811         IR3 = Lm_B3( MAC3, 1 );
2812         CD0 = CD1;
2813         CD1 = CD2;
2814         CD2 = CODE;
2815         R0 = R1;
2816         R1 = R2;
2817         R2 = Lm_C1( MAC1 >> 4 );
2818         G0 = G1;
2819         G1 = G2;
2820         G2 = Lm_C2( MAC2 >> 4 );
2821         B0 = B1;
2822         B1 = B2;
2823         B2 = Lm_C3( MAC3 >> 4 );
2824         return 1;
2825      }
2826      break;
2827
27942828   case 0x2a:
27952829      if( gteop == 0x0f8002a )
27962830      {
r19458r19459
28712905         return 1;
28722906      }
28732907      break;
2908
28742909   case 0x3d:
28752910      if( GTE_OP( gteop ) == 0x09 ||
28762911         GTE_OP( gteop ) == 0x19 )
r19458r19459
29002935         return 1;
29012936      }
29022937      break;
2938
29032939   case 0x3e:
29042940      if( GTE_OP( gteop ) == 0x1a )
29052941      {
r19458r19459
29282964         return 1;
29292965      }
29302966      break;
2967
29312968   case 0x3f:
29322969      if( gteop == 0x108043f ||
29332970         gteop == 0x118043f )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team