X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fgte.c;h=83bb4b611c294b6705716ef976a9b23ccdab5dd7;hb=accedc82b01fe5834a805a9872405d51de1d5c06;hp=31213ef5be7ddfc086d126a39a3cf02cc403e1b0;hpb=90f000f6c23cf8a17c14c0149de4916ea63f373e;p=pcsx_rearmed.git diff --git a/libpcsxcore/gte.c b/libpcsxcore/gte.c index 31213ef5..83bb4b61 100644 --- a/libpcsxcore/gte.c +++ b/libpcsxcore/gte.c @@ -258,7 +258,7 @@ static inline u32 limE_(psxCP2Regs *regs, u32 result) { #ifndef FLAGLESS -static inline u32 MFC2(int reg) { +u32 MFC2(int reg) { psxCP2Regs *regs = &psxRegs.CP2; switch (reg) { case 1: @@ -293,7 +293,7 @@ static inline u32 MFC2(int reg) { return psxRegs.CP2D.r[reg]; } -static inline void MTC2(u32 value, int reg) { +void MTC2(u32 value, int reg) { psxCP2Regs *regs = &psxRegs.CP2; switch (reg) { case 15: @@ -339,7 +339,7 @@ static inline void MTC2(u32 value, int reg) { } } -static inline void CTC2(u32 value, int reg) { +void CTC2(u32 value, int reg) { switch (reg) { case 4: case 12: @@ -404,6 +404,7 @@ static u32 DIVIDE_(s16 n, u16 d) { void gteRTPS(psxCP2Regs *regs) { int quotient; + s64 tmp; #ifdef GTE_LOG GTE_LOG("GTE RTPS\n"); @@ -426,14 +427,16 @@ void gteRTPS(psxCP2Regs *regs) { gteSX2 = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16); gteSY2 = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16); - gteMAC0 = F((s64)gteDQB + ((s64)gteDQA * quotient)); - gteIR0 = limH(gteMAC0 >> 12); + tmp = (s64)gteDQB + ((s64)gteDQA * quotient); + gteMAC0 = F(tmp); + gteIR0 = limH(tmp >> 12); } void gteRTPT(psxCP2Regs *regs) { int quotient; int v; s32 vx, vy, vz; + s64 tmp; #ifdef GTE_LOG GTE_LOG("GTE RTPT\n"); @@ -456,8 +459,10 @@ void gteRTPT(psxCP2Regs *regs) { fSX(v) = limG1(F((s64)gteOFX + ((s64)gteIR1 * quotient)) >> 16); fSY(v) = limG2(F((s64)gteOFY + ((s64)gteIR2 * quotient)) >> 16); } - gteMAC0 = F((s64)gteDQB + ((s64)gteDQA * quotient)); - gteIR0 = limH(gteMAC0 >> 12); + + tmp = (s64)gteDQB + ((s64)gteDQA * quotient); + gteMAC0 = F(tmp); + gteIR0 = limH(tmp >> 12); } void gteMVMVA(psxCP2Regs *regs) {