trunk/src/emu/cpu/psx/gte.c
| r19458 | r19459 | |
| 2519 | 2519 | return 1; |
| 2520 | 2520 | } |
| 2521 | 2521 | break; |
| 2522 | |
| 2522 | 2523 | case 0x13: |
| 2523 | 2524 | if( gteop == 0x0e80413 ) |
| 2524 | 2525 | { |
| r19458 | r19459 | |
| 2558 | 2559 | return 1; |
| 2559 | 2560 | } |
| 2560 | 2561 | break; |
| 2562 | |
| 2561 | 2563 | case 0x14: |
| 2562 | 2564 | if( gteop == 0x1280414 ) |
| 2563 | 2565 | { |
| r19458 | r19459 | |
| 2591 | 2593 | return 1; |
| 2592 | 2594 | } |
| 2593 | 2595 | break; |
| 2596 | |
| 2594 | 2597 | case 0x16: |
| 2595 | 2598 | if( gteop == 0x0f80416 ) |
| 2596 | 2599 | { |
| r19458 | r19459 | |
| 2633 | 2636 | return 1; |
| 2634 | 2637 | } |
| 2635 | 2638 | break; |
| 2639 | |
| 2636 | 2640 | case 0x1b: |
| 2637 | 2641 | if( gteop == 0x108041b || gteop == 0x118041b ) |
| 2638 | 2642 | { |
| r19458 | r19459 | |
| 2672 | 2676 | return 1; |
| 2673 | 2677 | } |
| 2674 | 2678 | break; |
| 2679 | |
| 2675 | 2680 | case 0x1c: |
| 2676 | 2681 | if( gteop == 0x138041c ) |
| 2677 | 2682 | { |
| r19458 | r19459 | |
| 2705 | 2710 | return 1; |
| 2706 | 2711 | } |
| 2707 | 2712 | break; |
| 2713 | |
| 2708 | 2714 | case 0x1e: |
| 2709 | 2715 | if( gteop == 0x0c8041e ) |
| 2710 | 2716 | { |
| r19458 | r19459 | |
| 2738 | 2744 | return 1; |
| 2739 | 2745 | } |
| 2740 | 2746 | break; |
| 2747 | |
| 2741 | 2748 | case 0x20: |
| 2742 | 2749 | if( gteop == 0x0d80420 ) |
| 2743 | 2750 | { |
| r19458 | r19459 | |
| 2790 | 2797 | IR3 = Lm_B3( MAC3, lm ); |
| 2791 | 2798 | return 1; |
| 2792 | 2799 | |
| 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 | |
| 2794 | 2828 | case 0x2a: |
| 2795 | 2829 | if( gteop == 0x0f8002a ) |
| 2796 | 2830 | { |
| r19458 | r19459 | |
| 2871 | 2905 | return 1; |
| 2872 | 2906 | } |
| 2873 | 2907 | break; |
| 2908 | |
| 2874 | 2909 | case 0x3d: |
| 2875 | 2910 | if( GTE_OP( gteop ) == 0x09 || |
| 2876 | 2911 | GTE_OP( gteop ) == 0x19 ) |
| r19458 | r19459 | |
| 2900 | 2935 | return 1; |
| 2901 | 2936 | } |
| 2902 | 2937 | break; |
| 2938 | |
| 2903 | 2939 | case 0x3e: |
| 2904 | 2940 | if( GTE_OP( gteop ) == 0x1a ) |
| 2905 | 2941 | { |
| r19458 | r19459 | |
| 2928 | 2964 | return 1; |
| 2929 | 2965 | } |
| 2930 | 2966 | break; |
| 2967 | |
| 2931 | 2968 | case 0x3f: |
| 2932 | 2969 | if( gteop == 0x108043f || |
| 2933 | 2970 | gteop == 0x118043f ) |