diff --git a/gles2n64/src/ZSort.c b/gles2n64/src/ZSort.c index ae370960..9cb3cfa8 100644 --- a/gles2n64/src/ZSort.c +++ b/gles2n64/src/ZSort.c @@ -80,21 +80,21 @@ static void ZSort_DrawObject (uint8_t * _addr, uint32_t _type) for (i = 0; i < vnum; ++i) { struct SPVertex *vtx = (struct SPVertex*)&OGL.triangles.vertices[i]; - vtx->x = _FIXED2FLOAT(((int16_t*)_addr)[0 ^ 1], 2); - vtx->y = _FIXED2FLOAT(((int16_t*)_addr)[1 ^ 1], 2); + vtx->x = _FIXED2FLOAT(((int16_t*)_addr)[0x0 ^ 0x1], 2); + vtx->y = _FIXED2FLOAT(((int16_t*)_addr)[0x1 ^ 0x1], 2); vtx->z = 0.0f; - vtx->r = _addr[4^3] * 0.0039215689f; - vtx->g = _addr[5^3] * 0.0039215689f; - vtx->b = _addr[6^3] * 0.0039215689f; - vtx->a = _addr[7^3] * 0.0039215689f; + vtx->r = _addr[0x4^0x3] * 0.0039215689f; + vtx->g = _addr[0x5^0x3] * 0.0039215689f; + vtx->b = _addr[0x6^0x3] * 0.0039215689f; + vtx->a = _addr[0x7^0x3] * 0.0039215689f; vtx->flag = 0; vtx->HWLight = 0; vtx->clip = 0; vtx->w = 1.0f; if (textured != 0) { - vtx->s = _FIXED2FLOAT(((int16_t*)_addr)[4^1], 5 ); - vtx->t = _FIXED2FLOAT(((int16_t*)_addr)[5^1], 5 ); + vtx->s = _FIXED2FLOAT(((int16_t*)_addr)[0x4^0x1], 5 ); + vtx->t = _FIXED2FLOAT(((int16_t*)_addr)[0x5^0x1], 5 ); vtx->w = ZSort_Calc_invw(((int*)_addr)[3]) / 31.0f; } diff --git a/mupen64plus-video-gliden64/src/uCodes/F3DFLX2.cpp b/mupen64plus-video-gliden64/src/uCodes/F3DFLX2.cpp index 7a918d4d..35942d2f 100644 --- a/mupen64plus-video-gliden64/src/uCodes/F3DFLX2.cpp +++ b/mupen64plus-video-gliden64/src/uCodes/F3DFLX2.cpp @@ -15,12 +15,12 @@ void F3DFLX2_LoadAlphaLight(u32 _a) const s16* const data = reinterpret_cast(RDRAM + address); -// gSP.lookat.xyz[0][X] = static_cast(data[4 ^ 1]); -// gSP.lookat.xyz[0][Y] = static_cast(data[5 ^ 1]); -// gSP.lookat.xyz[0][Z] = static_cast(data[6 ^ 1]); - gSP.lookat.xyz[0][X] = _FIXED2FLOAT(data[4 ^ 1], 8); - gSP.lookat.xyz[0][Y] = _FIXED2FLOAT(data[5 ^ 1], 8); - gSP.lookat.xyz[0][Z] = _FIXED2FLOAT(data[6 ^ 1], 8); +// gSP.lookat.xyz[0][X] = static_cast(data[0x4 ^ 0x1]); +// gSP.lookat.xyz[0][Y] = static_cast(data[0x5 ^ 0x1]); +// gSP.lookat.xyz[0][Z] = static_cast(data[0x6 ^ 0x1]); + gSP.lookat.xyz[0][X] = _FIXED2FLOAT(data[0x4 ^ 0x1], 8); + gSP.lookat.xyz[0][Y] = _FIXED2FLOAT(data[0x5 ^ 0x1], 8); + gSP.lookat.xyz[0][Z] = _FIXED2FLOAT(data[0x6 ^ 0x1], 8); gSP.lookatEnable = true; diff --git a/mupen64plus-video-gliden64/src/uCodes/F5Indi_Naboo.cpp b/mupen64plus-video-gliden64/src/uCodes/F5Indi_Naboo.cpp index 1b12d3d8..7ce87367 100644 --- a/mupen64plus-video-gliden64/src/uCodes/F5Indi_Naboo.cpp +++ b/mupen64plus-video-gliden64/src/uCodes/F5Indi_Naboo.cpp @@ -231,7 +231,7 @@ void F5INDI_Lighting_Overlay1(u32 _w0, u32 _w1) u32 D = (_SHIFTR(*V, 24, 8) * P1) >> 16; u32 E = (_SHIFTR(*V, 16, 8) * P1) >> 16; u32 F = (_SHIFTR(*V, 8, 8) * P1) >> 16; - u32 J = (_SHIFTR(factors[j], 0, 8) * data[3 ^ 3]) >> 8; + u32 J = (_SHIFTR(factors[j], 0, 8) * data[0x3 ^ 0x3]) >> 8; if (*light == 4) { *dst = J; @@ -243,9 +243,9 @@ void F5INDI_Lighting_Overlay1(u32 _w0, u32 _w1) *dst = std::min(*dst + D, 0xFFU); dst++; } else { - D += (_SHIFTR(factors[j], 24, 8) * data[0 ^ 3]) >> 8; - E += (_SHIFTR(factors[j], 16, 8) * data[1 ^ 3]) >> 8; - F += (_SHIFTR(factors[j], 8, 8) * data[2 ^ 3]) >> 8; + D += (_SHIFTR(factors[j], 24, 8) * data[0x0 ^ 0x3]) >> 8; + E += (_SHIFTR(factors[j], 16, 8) * data[0x1 ^ 0x3]) >> 8; + F += (_SHIFTR(factors[j], 8, 8) * data[0x2 ^ 0x3]) >> 8; *dst = J; dst++; *dst = std::min(F >> 1, 0xFFU); @@ -476,9 +476,9 @@ const SWVertex * F5INDI_LoadVtx(u32 _w0, u32 _w1, std::vector & _vres) const u32 base_addr = *CAST_DMEM(const u32*, 0x154); u32 * pres = reinterpret_cast(_vres.data()); const u16* v0_data = CAST_DMEM(const u16*, 0x128); - const u16 X0 = v0_data[0 ^ 1]; - const u16 Y0 = v0_data[1 ^ 1]; - const u16 Z0 = v0_data[2 ^ 1]; + const u16 X0 = v0_data[0x0 ^ 0x1]; + const u16 Y0 = v0_data[0x1 ^ 0x1]; + const u16 Z0 = v0_data[0x2 ^ 0x1]; for (u32 i = 0; i < count; ++i) { const u32 rdram_addr = dmem_data[i ^ 1] * 6 + base_addr; const u16* rdram_data = CAST_RDRAM(const u16*, (rdram_addr & 0x00FFFFF8)); @@ -499,17 +499,17 @@ const SWVertex * F5INDI_AdjustVtx(u32 _w0, u32 _w1, std::vector & _vre if (*CAST_DMEM(const u64*, 0x128) == 0) return CAST_DMEM(const SWVertex*, dmem_addr); const u16* v0_data = CAST_DMEM(const u16*, 0x128); - const u16 X0 = v0_data[0 ^ 1]; - const u16 Y0 = v0_data[1 ^ 1]; - const u16 Z0 = v0_data[2 ^ 1]; + const u16 X0 = v0_data[0x0 ^ 0x1]; + const u16 Y0 = v0_data[0x1 ^ 0x1]; + const u16 Z0 = v0_data[0x2 ^ 0x1]; const u32 count = _SHIFTR(_w1, 24, 7); _vres.resize(count); u32 * pres = reinterpret_cast(_vres.data()); const u16* dmem_data = CAST_DMEM(const u16*, dmem_addr); for (u32 i = 0; i < count; ++i) { - const u16 X = dmem_data[0 ^ 1] + X0; - const u16 Y = dmem_data[1 ^ 1] + Y0; - const u16 Z = dmem_data[2 ^ 1] + Z0; + const u16 X = dmem_data[0x0 ^ 0x1] + X0; + const u16 Y = dmem_data[0x1 ^ 0x1] + Y0; + const u16 Z = dmem_data[0x2 ^ 0x1] + Z0; *pres++ = (X << 16) | Y; *pres++ = Z << 16; dmem_data += 4; @@ -624,15 +624,15 @@ void F5INDI_CalcST(const u32* params, u32 * _st) for (u32 i = 0; i < num; ++i) { const u32 idx = _SHIFTR(params[i + 4], 0, 8); const s16 * coords = CAST_DMEM(const s16*, 0x170 + idx); - s16 X = coords[0 ^ 1]; - s16 Y = coords[1 ^ 1]; - s16 Z = coords[2 ^ 1]; + s16 X = coords[0x0 ^ 0x1]; + s16 Y = coords[0x1 ^ 0x1]; + s16 Z = coords[0x2 ^ 0x1]; s32 X1 = X * mtx[0 + 4 * 0] + Y * mtx[0 + 4 * 1] + Z * mtx[0 + 4 * 2] + mtx[0 + 4 * 3]; s32 Y1 = X * mtx[1 + 4 * 0] + Y * mtx[1 + 4 * 1] + Z * mtx[1 + 4 * 2] + mtx[1 + 4 * 3]; s32 Z1 = X * mtx[2 + 4 * 0] + Y * mtx[2 + 4 * 1] + Z * mtx[2 + 4 * 2] + mtx[2 + 4 * 3]; - X1 -= subs[0 ^ 1] << 16; - Y1 -= subs[1 ^ 1] << 16; - Z1 -= subs[2 ^ 1] << 16; + X1 -= subs[0x0 ^ 0x1] << 16; + Y1 -= subs[0x1 ^ 0x1] << 16; + Z1 -= subs[0x2 ^ 0x1] << 16; u64 X2 = static_cast(X1); u64 X2_2 = (X2 * X2) >> 16; u64 Y2 = static_cast(Y1); @@ -647,8 +647,8 @@ void F5INDI_CalcST(const u32* params, u32 * _st) D = 0xFFFFFFFF / (D * 0x300); u32 V = static_cast((D * X2) >> 16); u32 W = static_cast((D * Y2) >> 16); - u32 S = (V * muls[0 ^ 1]) >> 16; - u32 T = (W * muls[1 ^ 1]) >> 16; + u32 S = (V * muls[0x0 ^ 0x1]) >> 16; + u32 T = (W * muls[0x1 ^ 0x1]) >> 16; _st[i] = (S << 16) | T; } } @@ -865,22 +865,22 @@ void F5INDI_GenParticlesVertices() while (U != 0) { SWVertex * vertex = CAST_DMEM(SWVertex*, vtxAddr); u16* light = CAST_DMEM(u16*, lightAddr); - u16 F = (((light[0 ^ 1] << 12) + light[1 ^ 1] * corrector) << 4) >> 16; + u16 F = (((light[0x0 ^ 0x1] << 12) + light[0x1 ^ 0x1] * corrector) << 4) >> 16; bool endCycle = false; if ((M & 0x2000) == 0) { // Step 2 s16 F1; do { - F = (((light[0 ^ 1] << 12) + light[1 ^ 1] * corrector) << 4) >> 16; + F = (((light[0x0 ^ 0x1] << 12) + light[0x1 ^ 0x1] * corrector) << 4) >> 16; F1 = F + 0xF000; if (F1 < 0) { - light[0 ^ 1] = F; + light[0x0 ^ 0x1] = F; if ((M & 0x40) != 0) vertex->flag = (((F >> 4)&0xFC) << 8) | (vertex->flag & 0xFF); if ((M & 0x20) != 0) vertex->flag = ((F >> 4) & 0xFC) | (vertex->flag & 0xFF00); } else { - light[0 ^ 1] = 0U; + light[0x0 ^ 0x1] = 0U; if ((M & 0x4000) != 0) { //const u32 dpc_clock = *REG.DPC_CLOCK; const u32 dpc_clock = static_cast(time(NULL)) - dpc_clock0; @@ -1461,7 +1461,7 @@ void F5Naboo_PrepareAndDrawTriangle(const u32 _vert[3], GraphicsDrawer & _drawer const u16 A = _SHIFTR(*CAST_DMEM(const u32*, 0x100), 8, 16); const u8 B = *(DMEM + (0x103 ^ 3)); const u32 C = A | B; - CAST_DMEM(u16*, 0x100)[0^1] = C; + CAST_DMEM(u16*, 0x100)[0x0^0x1] = C; auto doCommands = [](u32 addr) { @@ -1567,11 +1567,11 @@ void F5Naboo_DrawPolygons() vtxIdx[i] = (vtxAddr - 0x600) / 40; SPVertex & vtx = drawer.getVertex(vtxIdx[i]); u8* color = DMEM + 0x0B78 + idxs[i] * 2 + (data.HH & 0xFFF); - vtx.r = _FIXED2FLOATCOLOR(color[0 ^ 3], 8); - vtx.g = _FIXED2FLOATCOLOR(color[1 ^ 3], 8); - vtx.b = _FIXED2FLOATCOLOR(color[2 ^ 3], 8); - vtx.a = _FIXED2FLOATCOLOR(color[3 ^ 3], 8); - alphaSum += color[3 ^ 3]; + vtx.r = _FIXED2FLOATCOLOR(color[0x0 ^ 0x3], 8); + vtx.g = _FIXED2FLOATCOLOR(color[0x1 ^ 0x3], 8); + vtx.b = _FIXED2FLOATCOLOR(color[0x2 ^ 0x3], 8); + vtx.a = _FIXED2FLOATCOLOR(color[0x3 ^ 0x3], 8); + alphaSum += color[0x3 ^ 0x3]; } if (data.HH == 0) { *CAST_DMEM(u32*, 0x100) = 0; @@ -1594,7 +1594,7 @@ void F5Naboo_DrawPolygons() for (u32 i = 0; i < 3; ++i) { u32 offset = 0xB00 + idxs[i] * 2 + (data.HH & 0xFFF); u8* color = DMEM + offset; - alphas[i] = color[3 ^ 3]; + alphas[i] = color[0x3 ^ 0x3]; alphaSum2 += alphas[i]; } if (alphaSum2 == 0) { @@ -1875,9 +1875,9 @@ void F5Naboo_GenVertices0C() // Step 10 const u16* v0_data = CAST_DMEM(const u16*, 0x128); - const u16 X0 = v0_data[0 ^ 1]; - const u16 Y0 = v0_data[1 ^ 1]; - const u16 Z0 = v0_data[2 ^ 1]; + const u16 X0 = v0_data[0x0 ^ 0x1]; + const u16 Y0 = v0_data[0x1 ^ 0x1]; + const u16 Z0 = v0_data[0x2 ^ 0x1]; const bool needAdjustVertices = (X0 | Y0 | Z0) != 0; auto processVertices = [&](u32 _param, u32 _dmemSrcAddr, u32 _dstOffset) { @@ -1909,10 +1909,10 @@ void F5Naboo_GenVertices0C() NabooData & data = getNabooData(); u8* params8 = RDRAM + RSP.PC[RSP.PCi]; u16* params16 = reinterpret_cast(params8); - data.AA = params16[6 ^ 1]; - data.BB = params16[7 ^ 1]; - data.CC = params8[1 ^ 3]; - data.TT = params8[5 ^ 3]; + data.AA = params16[0x6 ^ 0x1]; + data.BB = params16[0x7 ^ 0x1]; + data.CC = params8[0x1 ^ 0x3]; + data.TT = params8[0x5 ^ 0x3]; data.EE = dmemSrcAddr; data.HH = _SHIFTR(*CAST_DMEM(const u32*, 0xDB8), 16, 16); data.DD = 0; @@ -2114,9 +2114,9 @@ void F5Naboo_GenVertices09() // Step 9 const u16* v0_data = CAST_DMEM(const u16*, 0x128); - const u16 X0 = v0_data[0 ^ 1]; - const u16 Y0 = v0_data[1 ^ 1]; - const u16 Z0 = v0_data[2 ^ 1]; + const u16 X0 = v0_data[0x0 ^ 0x1]; + const u16 Y0 = v0_data[0x1 ^ 0x1]; + const u16 Z0 = v0_data[0x2 ^ 0x1]; const bool needAdjustVertices = (X0 | Y0 | Z0) != 0; auto processVertices = [&](u32 _param, u32 _dmemSrcAddr, u32 _dstOffset) { @@ -2148,10 +2148,10 @@ void F5Naboo_GenVertices09() NabooData & data = getNabooData(); u8* params8 = RDRAM + RSP.PC[RSP.PCi]; u16* params16 = reinterpret_cast(params8); - data.AA = params16[6 ^ 1]; - data.BB = params16[7 ^ 1]; - data.CC = params8[1 ^ 3]; - data.TT = params8[5 ^ 3]; + data.AA = params16[0x6 ^ 0x1]; + data.BB = params16[0x7 ^ 0x1]; + data.CC = params8[0x1 ^ 0x3]; + data.TT = params8[0x5 ^ 0x3]; data.EE = dmemSrcAddr; data.HH = _SHIFTR(*CAST_DMEM(const u32*, 0xDB8), 16, 16); data.DD = 0; diff --git a/mupen64plus-video-gliden64/src/uCodes/ZSort.cpp b/mupen64plus-video-gliden64/src/uCodes/ZSort.cpp index f5587922..c462dd1f 100644 --- a/mupen64plus-video-gliden64/src/uCodes/ZSort.cpp +++ b/mupen64plus-video-gliden64/src/uCodes/ZSort.cpp @@ -99,23 +99,23 @@ void ZSort_DrawObject (u8 * _addr, u32 _type) SPVertex * pVtx = drawer.getDMAVerticesData(); for (u32 i = 0; i < vnum; ++i) { SPVertex & vtx = pVtx[i]; - vtx.x = _FIXED2FLOAT(((s16*)_addr)[0 ^ 1], 2); - vtx.y = _FIXED2FLOAT(((s16*)_addr)[1 ^ 1], 2); + vtx.x = _FIXED2FLOAT(((s16*)_addr)[0x0 ^ 0x1], 2); + vtx.y = _FIXED2FLOAT(((s16*)_addr)[0x1 ^ 0x1], 2); vtx.z = 0.0f; - vtx.r = _addr[4^3] * 0.0039215689f; - vtx.g = _addr[5^3] * 0.0039215689f; - vtx.b = _addr[6^3] * 0.0039215689f; - vtx.a = _addr[7^3] * 0.0039215689f; + vtx.r = _addr[0x4^0x3] * 0.0039215689f; + vtx.g = _addr[0x5^0x3] * 0.0039215689f; + vtx.b = _addr[0x6^0x3] * 0.0039215689f; + vtx.a = _addr[0x7^0x3] * 0.0039215689f; vtx.flag = 0; vtx.HWLight = 0; vtx.clip = 0; if (textured != 0) { if (gDP.otherMode.texturePersp != 0) { - vtx.s = _FIXED2FLOAT(((s16*)_addr)[4 ^ 1], 5); - vtx.t = _FIXED2FLOAT(((s16*)_addr)[5 ^ 1], 5); + vtx.s = _FIXED2FLOAT(((s16*)_addr)[0x4 ^ 0x1], 5); + vtx.t = _FIXED2FLOAT(((s16*)_addr)[0x5 ^ 0x1], 5); } else { - vtx.s = _FIXED2FLOAT(((s16*)_addr)[4 ^ 1], 6); - vtx.t = _FIXED2FLOAT(((s16*)_addr)[5 ^ 1], 6); + vtx.s = _FIXED2FLOAT(((s16*)_addr)[0x4 ^ 0x1], 6); + vtx.t = _FIXED2FLOAT(((s16*)_addr)[0x5 ^ 0x1], 6); } vtx.w = Calc_invw(((int*)_addr)[3]) / 31.0f; } else diff --git a/mupen64plus-video-gliden64/src/uCodes/ZSortBOSS.cpp b/mupen64plus-video-gliden64/src/uCodes/ZSortBOSS.cpp index 697a77cf..6211ecd3 100644 --- a/mupen64plus-video-gliden64/src/uCodes/ZSortBOSS.cpp +++ b/mupen64plus-video-gliden64/src/uCodes/ZSortBOSS.cpp @@ -377,23 +377,23 @@ void ZSortBOSS_DrawObject(u8 * _addr, u32 _type) for(u32 i = 0; i < vnum; ++i) { SPVertex & vtx = pVtx[i]; - vtx.x = _FIXED2FLOAT(((s16*)_addr)[0 ^ 1], 2); - vtx.y = _FIXED2FLOAT(((s16*)_addr)[1 ^ 1], 2); + vtx.x = _FIXED2FLOAT(((s16*)_addr)[0x0 ^ 0x1], 2); + vtx.y = _FIXED2FLOAT(((s16*)_addr)[0x1 ^ 0x1], 2); vtx.z = 0.0f; - vtx.r = _FIXED2FLOATCOLOR(_addr[4^3], 8 ); - vtx.g = _FIXED2FLOATCOLOR(_addr[5^3], 8 ); - vtx.b = _FIXED2FLOATCOLOR(_addr[6^3], 8 ); - vtx.a = _FIXED2FLOATCOLOR(_addr[7^3], 8 ); + vtx.r = _FIXED2FLOATCOLOR(_addr[0x4^0x3], 8 ); + vtx.g = _FIXED2FLOATCOLOR(_addr[0x5^0x3], 8 ); + vtx.b = _FIXED2FLOATCOLOR(_addr[0x6^0x3], 8 ); + vtx.a = _FIXED2FLOATCOLOR(_addr[0x7^0x3], 8 ); vtx.flag = 0; vtx.HWLight = 0; vtx.clip = 0; if(textured != 0) { if (gDP.otherMode.texturePersp != 0) { - vtx.s = _FIXED2FLOAT(((s16*)_addr)[4 ^ 1], 5); - vtx.t = _FIXED2FLOAT(((s16*)_addr)[5 ^ 1], 5); + vtx.s = _FIXED2FLOAT(((s16*)_addr)[0x4 ^ 0x1], 5); + vtx.t = _FIXED2FLOAT(((s16*)_addr)[0x5 ^ 0x1], 5); } else { - vtx.s = _FIXED2FLOAT(((s16*)_addr)[4 ^ 1], 6); - vtx.t = _FIXED2FLOAT(((s16*)_addr)[5 ^ 1], 6); + vtx.s = _FIXED2FLOAT(((s16*)_addr)[0x4 ^ 0x1], 6); + vtx.t = _FIXED2FLOAT(((s16*)_addr)[0x5 ^ 0x1], 6); } int invw = ((int*)_addr)[3]; @@ -765,8 +765,8 @@ void ZSortBOSS_Audio4( u32 _w0, u32 _w1 ) dst[i^1] = (res1*c2 + res2*c2) >> 16; } - v1 = dst[6^1]; - v2 = dst[7^1]; + v1 = dst[0x6^0x1]; + v2 = dst[0x7^0x1]; dst += 8; } }