MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / gteGPL

Function gteGPL

pcsx2/IopGte.cpp:2247–2356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2245}
2246
2247void gteGPL() {
2248 // double IPX=0,IPY=0,IPZ=0;
2249 // unsigned long C,R,G,B;
2250#ifdef GTE_DUMP
2251 static int sample = 0; sample++;
2252#endif
2253#ifdef GTE_LOG
2254 GTE_LOG("GTE_GPL %lx\n", psxRegs.code & 0x1ffffff);
2255#endif
2256
2257#ifdef GTE_DUMP
2258 if (sample < 100)
2259 {
2260 G_OP("GPL", 5);
2261 G_SD(6);
2262 G_SD(8);
2263 G_SD(9);
2264 G_SD(10);
2265 G_SD(11);
2266
2267 G_SD(25);
2268 G_SD(26);
2269 G_SD(27);
2270 }
2271#endif
2272
2273 /* gteFLAG=0;
2274 switch(psxRegs.code & 0x1ffffff) {
2275 case 0x1A8003E:
2276 IPX = EDETEC1((double)gteMAC1 + ((double)gteIR0*(double)gteIR1)/4096.0f);
2277 IPY = EDETEC2((double)gteMAC2 + ((double)gteIR0*(double)gteIR2)/4096.0f);
2278 IPZ = EDETEC3((double)gteMAC3 + ((double)gteIR0*(double)gteIR3)/4096.0f);
2279 break;
2280
2281 case 0x1A0003E:
2282 IPX = EDETEC1((double)gteMAC1 + ((double)gteIR0*(double)gteIR1));
2283 IPY = EDETEC2((double)gteMAC2 + ((double)gteIR0*(double)gteIR2));
2284 IPZ = EDETEC3((double)gteMAC3 + ((double)gteIR0*(double)gteIR3));
2285 break;
2286 }
2287 gteIR1 = (short)float2int(LimitAS(IPX,24));
2288 gteIR2 = (short)float2int(LimitAS(IPY,23));
2289 gteIR3 = (short)float2int(LimitAS(IPZ,22));
2290
2291 gteMAC1 = (int)float2int(IPX);
2292 gteMAC2 = (int)float2int(IPY);
2293 gteMAC3 = (int)float2int(IPZ);
2294
2295 C = gteRGB & 0xff000000;
2296 R = float2int(ALIMIT(IPX,0,255));
2297 G = float2int(ALIMIT(IPY,0,255));
2298 B = float2int(ALIMIT(IPZ,0,255));
2299
2300 gteRGB0 = gteRGB1;
2301 gteRGB1 = gteRGB2;
2302 gteRGB2 = C|R|(G<<8)|(B<<16);*/
2303 gteFLAG = 0;
2304

Callers

nothing calls this directly

Calls 6

FNC_OVERFLOW1Function · 0.85
FNC_OVERFLOW2Function · 0.85
FNC_OVERFLOW3Function · 0.85
FlimB1Function · 0.85
FlimB2Function · 0.85
FlimB3Function · 0.85

Tested by

no test coverage detected