| 2046 | } |
| 2047 | |
| 2048 | void gteDCPL() { |
| 2049 | // unsigned long C,R,G,B; |
| 2050 | #ifdef GTE_DUMP |
| 2051 | static int sample = 0; sample++; |
| 2052 | #endif |
| 2053 | #ifdef GTE_LOG |
| 2054 | GTE_LOG("GTE_DCPL\n"); |
| 2055 | #endif |
| 2056 | |
| 2057 | #ifdef GTE_DUMP |
| 2058 | if (sample < 100) |
| 2059 | { |
| 2060 | G_OP("DCPL", 8); |
| 2061 | G_SD(6); |
| 2062 | G_SD(8); |
| 2063 | G_SD(9); |
| 2064 | G_SD(10); |
| 2065 | G_SD(11); |
| 2066 | |
| 2067 | G_SC(21); |
| 2068 | G_SC(22); |
| 2069 | G_SC(23); |
| 2070 | } |
| 2071 | #endif |
| 2072 | /* R = ((gteRGB)&0xff); |
| 2073 | G = ((gteRGB>> 8)&0xff); |
| 2074 | B = ((gteRGB>>16)&0xff); |
| 2075 | C = ((gteRGB>>24)&0xff); |
| 2076 | |
| 2077 | gteMAC1 = (signed long)((double)(R*gteIR1) + (double)(gteIR0*LimitAS(gteRFC-(double)(R*gteIR1),24))/4096.0); |
| 2078 | gteMAC2 = (signed long)((double)(G*gteIR2) + (double)(gteIR0*LimitAS(gteGFC-(double)(G*gteIR2),23))/4096.0); |
| 2079 | gteMAC3 = (signed long)((double)(B*gteIR3) + (double)(gteIR0*LimitAS(gteBFC-(double)(B*gteIR3),22))/4096.0); |
| 2080 | |
| 2081 | MAC2IR() |
| 2082 | |
| 2083 | R = (unsigned long)LimitB(gteMAC1,21); if (R>255) R=255; else if (R<0) R=0; |
| 2084 | G = (unsigned long)LimitB(gteMAC2,20); if (G>255) G=255; else if (G<0) G=0; |
| 2085 | B = (unsigned long)LimitB(gteMAC3,19); if (B>255) B=255; else if (B<0) B=0; |
| 2086 | |
| 2087 | gteRGB0 = gteRGB1; |
| 2088 | gteRGB1 = gteRGB2; |
| 2089 | gteRGB2 = R|(G<<8)|(B<<16)|(C<<24); |
| 2090 | |
| 2091 | if (gteFLAG & 0x7f87e000) gteFLAG|=0x80000000;*/ |
| 2092 | |
| 2093 | /* gteFLAG = 0; |
| 2094 | |
| 2095 | gteMAC1 = NC_OVERFLOW1((gteR * gteIR1) / 256.0f + (gteIR0 * limA1S(gteRFC - ((gteR * gteIR1) / 256.0f))) / 4096.0f); |
| 2096 | gteMAC2 = NC_OVERFLOW2((gteG * gteIR1) / 256.0f + (gteIR0 * limA2S(gteGFC - ((gteG * gteIR1) / 256.0f))) / 4096.0f); |
| 2097 | gteMAC3 = NC_OVERFLOW3((gteB * gteIR1) / 256.0f + (gteIR0 * limA3S(gteBFC - ((gteB * gteIR1) / 256.0f))) / 4096.0f); |
| 2098 | */ |
| 2099 | /* gteMAC1 = ( (signed long)(gteR)*gteIR1 + (gteIR0*(signed short)limA1S(gteRFC - ((gteR*gteIR1)>>12) )) ) >>6; |
| 2100 | gteMAC2 = ( (signed long)(gteG)*gteIR2 + (gteIR0*(signed short)limA2S(gteGFC - ((gteG*gteIR2)>>12) )) ) >>6; |
| 2101 | gteMAC3 = ( (signed long)(gteB)*gteIR3 + (gteIR0*(signed short)limA3S(gteBFC - ((gteB*gteIR3)>>12) )) ) >>6;*/ |
| 2102 | |
| 2103 | /* gteMAC1 = ( (signed long)(gteR)*gteIR1 + (gteIR0*(signed short)limA1S(gteRFC - ((gteR*gteIR1)>>12) )) ) >>8; |
| 2104 | gteMAC2 = ( (signed long)(gteG)*gteIR2 + (gteIR0*(signed short)limA2S(gteGFC - ((gteG*gteIR2)>>12) )) ) >>8; |
| 2105 | gteMAC3 = ( (signed long)(gteB)*gteIR3 + (gteIR0*(signed short)limA3S(gteBFC - ((gteB*gteIR3)>>12) )) ) >>8;*/ |