Various J3D inline fixes

This commit is contained in:
LagoLunatic
2026-08-28 15:03:03 -04:00
parent 60a05bdb83
commit f2be4dc1ff
10 changed files with 237 additions and 120 deletions
+19 -28
View File
@@ -118,8 +118,7 @@ void J3DTevBlockPatched::initialize() {
for (u32 i = 0; i < ARRAY_SIZE(mTexNo); i++)
mTexNo[i] = 0xFFFF;
for (u32 i = 0; i < ARRAY_SIZE(mTevStage); i++) {
mTevStage[i].mTevColorReg = 0xC0 + i * 2;
mTevStage[i].mTevAlphaReg = 0xC1 + i * 2;
mTevStage[i].setStageNo(i);
}
for (u32 i = 0; i < 3; i++)
mTevColor[i] = j3dDefaultTevColor;
@@ -135,8 +134,7 @@ void J3DTevBlockPatched::initialize() {
/* 802DFABC-802DFAE4 .text initialize__12J3DTevBlock1Fv */
void J3DTevBlock1::initialize() {
mTexNo[0] = 0xFFFF;
mTevStage[0].mTevColorReg = 0xC0;
mTevStage[0].mTevAlphaReg = 0xC1;
mTevStage[0].setStageNo(0);
mTexNoOffset = 0;
}
@@ -146,10 +144,8 @@ void J3DTevBlock2::initialize() {
mTexNo[1] = 0xFFFF;
mTevStageNum = 1;
mTevStage[0].mTevColorReg = 0xC0;
mTevStage[0].mTevAlphaReg = 0xC1;
mTevStage[1].mTevColorReg = 0xC2;
mTevStage[1].mTevAlphaReg = 0xC3;
mTevStage[0].setStageNo(0);
mTevStage[1].setStageNo(1);
mTevKColorSel[0] = GX_TEV_KCSEL_K0;
mTevKColorSel[1] = GX_TEV_KCSEL_K0;
mTevKAlphaSel[0] = GX_TEV_KASEL_K0_A;
@@ -171,14 +167,10 @@ void J3DTevBlock4::initialize() {
mTexNo[3] = 0xFFFF;
mTevStageNum = 1;
mTevStage[0].mTevColorReg = 0xC0;
mTevStage[0].mTevAlphaReg = 0xC1;
mTevStage[1].mTevColorReg = 0xC2;
mTevStage[1].mTevAlphaReg = 0xC3;
mTevStage[2].mTevColorReg = 0xC4;
mTevStage[2].mTevAlphaReg = 0xC5;
mTevStage[3].mTevColorReg = 0xC6;
mTevStage[3].mTevAlphaReg = 0xC7;
mTevStage[0].setStageNo(0);
mTevStage[1].setStageNo(1);
mTevStage[2].setStageNo(2);
mTevStage[3].setStageNo(3);
mTevKColorSel[0] = GX_TEV_KCSEL_K0;
mTevKColorSel[1] = GX_TEV_KCSEL_K0;
mTevKColorSel[2] = GX_TEV_KCSEL_K0;
@@ -210,8 +202,7 @@ void J3DTevBlock16::initialize() {
for (u32 i = 0; i < ARRAY_SIZE(mTevKColorSel); i++)
mTevKAlphaSel[i] = GX_TEV_KASEL_K0_A;
for (u32 i = 0; i < ARRAY_SIZE(mTevStage); i++) {
mTevStage[i].mTevColorReg = 0xC0 + i * 2;
mTevStage[i].mTevAlphaReg = 0xC1 + i * 2;
mTevStage[i].setStageNo(i);
}
mTexNoOffset = 0;
mTevRegOffset = 0;
@@ -224,8 +215,8 @@ void J3DIndBlockFull::initialize() {
/* 802DFDFC-802DFE20 .text initialize__16J3DPEBlockFogOffFv */
void J3DPEBlockFogOff::initialize() {
mAlphaComp.mAlphaCmpID = 0xFFFF;
mZMode.mZModeID = 0xFFFF;
mAlphaComp = 0xFFFF;
mZMode = 0xFFFF;
mZCompLoc = 0xFF;
mDither = 1;
}
@@ -233,8 +224,8 @@ void J3DPEBlockFogOff::initialize() {
/* 802DFE20-802DFE50 .text initialize__14J3DPEBlockFullFv */
void J3DPEBlockFull::initialize() {
mFog = NULL;
mAlphaComp.mAlphaCmpID = 0xFFFF;
mZMode.mZModeID = 0xFFFF;
mAlphaComp = 0xFFFF;
mZMode = 0xFFFF;
mZCompLoc = 0xFF;
mDither = 1;
mFogOffset = 0;
@@ -577,8 +568,8 @@ void J3DTexGenBlockPatched::diffTexGen() {
J3DGDWriteXFCmdHdr(0x1040, num);
}
for (u32 i = 0; i < num; ++i) {
J3DGDSetTexCoordGen((GXTexGenType)mTexCoord[i].mTexGenType,
(GXTexGenSrc)mTexCoord[i].mTexGenSrc);
J3DGDSetTexCoordGen((GXTexGenType)mTexCoord[i].getTexGenType(),
(GXTexGenSrc)mTexCoord[i].getTexGenSrc());
}
}
@@ -1803,13 +1794,13 @@ void J3DTexGenBlockPatched::calc(const Mtx modelMtx) {
viewMtx[2][3] = 0.0f;
mTexMtx[i]->setViewMtx(viewMtx);
} else if (mode == J3DTexMtxMode_Projmap || mode == J3DTexMtxMode_ProjmapBasic) {
mTexMtx[i]->setViewMtx(modelMtx);
mTexMtx[i]->setViewMtx(const_cast<MtxP>(modelMtx));
} else if (mode == J3DTexMtxMode_ViewProjmap || mode == J3DTexMtxMode_ViewProjmapBasic) {
Mtx viewMtx;
MTXConcat(j3dSys.getViewMtx(), modelMtx, viewMtx);
mTexMtx[i]->setViewMtx(viewMtx);
} else if (mode == J3DTexMtxMode_EnvmapOldEffectMtx || mode == J3DTexMtxMode_EnvmapEffectMtx || mode == J3DTexMtxMode_Unknown5) {
mTexMtx[i]->setViewMtx(modelMtx);
mTexMtx[i]->setViewMtx(const_cast<MtxP>(modelMtx));
mTexMtx[i]->getViewMtx()[0][3] = 0.0f;
mTexMtx[i]->getViewMtx()[1][3] = 0.0f;
mTexMtx[i]->getViewMtx()[2][3] = 0.0f;
@@ -1831,11 +1822,11 @@ void J3DTexGenBlockPatched::calc(const Mtx modelMtx) {
viewMtx[2][3] = 0.0f;
mTexMtx[i]->setViewMtx(viewMtx);
} else if (mode == J3DTexMtxMode_Projmap || mode == J3DTexMtxMode_ProjmapBasic) {
mTexMtx[i]->setViewMtx(j3dDefaultMtx);
mTexMtx[i]->setViewMtx(const_cast<MtxP>(j3dDefaultMtx));
} else if (mode == J3DTexMtxMode_ViewProjmap || mode == J3DTexMtxMode_ViewProjmapBasic) {
mTexMtx[i]->setViewMtx(j3dSys.getViewMtx());
} else if (mode == J3DTexMtxMode_EnvmapOldEffectMtx || mode == J3DTexMtxMode_EnvmapEffectMtx || mode == J3DTexMtxMode_Unknown5) {
mTexMtx[i]->setViewMtx(j3dDefaultMtx);
mTexMtx[i]->setViewMtx(const_cast<MtxP>(j3dDefaultMtx));
}
mTexMtx[i]->calc();
+22 -22
View File
@@ -52,70 +52,70 @@ void J3DTexMtx::calc() {
0.0f, 0.0f, 1.0f, 0.0f,
};
u32 mode = mTexMtxInfo.mInfo & 0x7f;
u32 extra = (mTexMtxInfo.mInfo >> 7) & 1;
u32 mode = mInfo & 0x7f;
u32 extra = (mInfo >> 7) & 1;
if (mode == J3DTexMtxMode_Projmap || mode == J3DTexMtxMode_ViewProjmap || mode == J3DTexMtxMode_EnvmapEffectMtx) {
if (extra == 0) {
J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
J3DGetTextureMtx(mSRT, mCenter, mtx2);
} else if (extra == 1) {
J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2);
J3DGetTextureMtxMaya(mSRT, mtx2);
}
MTXConcat(mtx2, qMtx, mtx2);
J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
J3DMtxProjConcat(mtx2, mEffectMtx, mtx1);
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_Envmap) {
if (extra == 0) {
J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
J3DGetTextureMtx(mSRT, mCenter, mtx1);
} else if (extra == 1) {
J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1);
J3DGetTextureMtxMaya(mSRT, mtx1);
}
MTXConcat(mtx1, qMtx, mtx1);
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_EnvmapOldEffectMtx) {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
J3DGetTextureMtxOld(mSRT, mCenter, mtx2);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
J3DGetTextureMtxMayaOld(mSRT, mtx2);
}
MTXConcat(mtx2, qMtx2, mtx2);
J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
J3DMtxProjConcat(mtx2, mEffectMtx, mtx1);
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_EnvmapOld) {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
J3DGetTextureMtxOld(mSRT, mCenter, mtx1);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1);
J3DGetTextureMtxMayaOld(mSRT, mtx1);
}
MTXConcat(mtx1, qMtx2, mtx1);
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_EnvmapBasic) {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
J3DGetTextureMtxOld(mSRT, mCenter, mtx1);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1);
J3DGetTextureMtxMayaOld(mSRT, mtx1);
}
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_ProjmapBasic || mode == J3DTexMtxMode_ViewProjmapBasic || mode == J3DTexMtxMode_Unknown5) {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
J3DGetTextureMtxOld(mSRT, mCenter, mtx2);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
J3DGetTextureMtxMayaOld(mSRT, mtx2);
}
J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
J3DMtxProjConcat(mtx2, mEffectMtx, mtx1);
MTXConcat(mtx1, mViewMtx, mMtx);
} else if (mode == J3DTexMtxMode_Unknown4) {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
J3DGetTextureMtxOld(mSRT, mCenter, mtx2);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
J3DGetTextureMtxMayaOld(mSRT, mtx2);
}
J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx);
J3DMtxProjConcat(mtx2, mEffectMtx, mMtx);
} else {
if (extra == 0) {
J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx);
J3DGetTextureMtxOld(mSRT, mCenter, mMtx);
} else if (extra == 1) {
J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx);
J3DGetTextureMtxMayaOld(mSRT, mMtx);
}
}
}
+1 -1
View File
@@ -27,7 +27,7 @@ bool cCcD_DivideInfo::Chk(const cCcD_DivideInfo& other) const {
/* 80241428-80241558 .text SetArea__15cCcD_DivideAreaFRC8cM3dGAab */
void cCcD_DivideArea::SetArea(const cM3dGAab& aabb) {
*(cM3dGAab*)this = aabb;
Set(aabb.GetMinP(), aabb.GetMaxP());
mScaledXDiff = (GetMaxX() - GetMinX()) * 0.09090909f;
mXDiffIsZero = cM3d_IsZero(mScaledXDiff);
if (!mXDiffIsZero)
+1 -1
View File
@@ -278,7 +278,7 @@ BOOL daShip_c::draw() {
mDoMtx_stack_c::concat(MStack_50);
mDoMtx_stack_c::revConcat(m02A8);
m02A0->setEffectMtx(mDoMtx_stack_c::get());
m02A4->mTexMtxInfo.mSRT.mTranslationX = m03D4;
m02A4->mSRT.mTranslationX = m03D4;
}
if (