summaryrefslogtreecommitdiff
path: root/src/JSystem/J3DGraphBase/J3DMatBlock.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-09-04 07:56:59 -0700
committerGitHub <noreply@github.com>2025-09-04 17:56:59 +0300
commitb45a089e15d79821b07be020db628e01a49b1fd2 (patch)
tree948057548cc19b19d644bd4f300ca6434e6bff11 /src/JSystem/J3DGraphBase/J3DMatBlock.cpp
parentee8b843996f4d888903f8c125b95ec1af376877e (diff)
some J3D/misc cleanup (#2628)
* some j3d cleanup * begin using uintptr_t * j3dgraphbase cleanup * j3dgraphanimator cleanup
Diffstat (limited to 'src/JSystem/J3DGraphBase/J3DMatBlock.cpp')
-rw-r--r--src/JSystem/J3DGraphBase/J3DMatBlock.cpp426
1 files changed, 244 insertions, 182 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DMatBlock.cpp b/src/JSystem/J3DGraphBase/J3DMatBlock.cpp
index c4076f9c25..776b0381de 100644
--- a/src/JSystem/J3DGraphBase/J3DMatBlock.cpp
+++ b/src/JSystem/J3DGraphBase/J3DMatBlock.cpp
@@ -1,15 +1,9 @@
-//
-// Generated By: dol2asm
-// Translation Unit: J3DMatBlock
-//
-
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "JSystem/J3DGraphBase/J3DSys.h"
#include "JSystem/J3DGraphBase/J3DTransform.h"
-#include "dolphin/os.h"
#include "global.h"
-#include "string.h"
+#include <string.h>
inline void loadMatColors(const J3DGXColor* color) {
J3DGDWriteXFCmdHdr(0x100C, 2);
@@ -38,7 +32,7 @@ inline void loadTevKColor(u32 reg, const J3DGXColor& color) {
/* 8031747C-803174DC 311DBC 0060+00 0/0 1/1 0/0 .text initialize__21J3DColorBlockLightOffFv */
void J3DColorBlockLightOff::initialize() {
mColorChanNum = 0;
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mMatColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mMatColor); i++) {
mMatColor[i] = j3dDefaultColInfo;
}
mMatColorOffset = 0;
@@ -48,10 +42,10 @@ void J3DColorBlockLightOff::initialize() {
/* 803174DC-80317580 311E1C 00A4+00 0/0 1/1 0/0 .text initialize__22J3DColorBlockAmbientOnFv */
void J3DColorBlockAmbientOn::initialize() {
mColorChanNum = 0;
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mMatColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mMatColor); i++) {
mMatColor[i] = j3dDefaultColInfo;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mAmbColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mAmbColor); i++) {
mAmbColor[i] = j3dDefaultAmbInfo;
}
mMatColorOffset = 0;
@@ -61,13 +55,13 @@ void J3DColorBlockAmbientOn::initialize() {
/* 80317580-80317644 311EC0 00C4+00 0/0 1/1 0/0 .text initialize__20J3DColorBlockLightOnFv */
void J3DColorBlockLightOn::initialize() {
mColorChanNum = 0;
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mMatColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mMatColor); i++) {
mMatColor[i] = j3dDefaultColInfo;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mAmbColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mAmbColor); i++) {
mAmbColor[i] = j3dDefaultAmbInfo;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mLight); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mLight); i++) {
mLight[i] = NULL;
}
mMatColorOffset = 0;
@@ -77,7 +71,7 @@ void J3DColorBlockLightOn::initialize() {
/* 80317644-80317674 311F84 0030+00 0/0 2/2 0/0 .text initialize__21J3DTexGenBlockPatchedFv */
void J3DTexGenBlockPatched::initialize() {
mTexGenNum = 0;
- for (s32 i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
mTexMtx[i] = NULL;
mTexMtxOffset = 0;
}
@@ -85,7 +79,7 @@ void J3DTexGenBlockPatched::initialize() {
/* 80317674-803176A4 311FB4 0030+00 0/0 1/1 0/0 .text initialize__15J3DTexGenBlock4Fv */
void J3DTexGenBlock4::initialize() {
mTexGenNum = 0;
- for (s32 i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
mTexMtx[i] = NULL;
mTexMtxOffset = 0;
}
@@ -94,7 +88,7 @@ void J3DTexGenBlock4::initialize() {
*/
void J3DTexGenBlockBasic::initialize() {
mTexGenNum = 0;
- for (s32 i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
mTexMtx[i] = NULL;
mTexMtxOffset = 0;
}
@@ -107,21 +101,22 @@ void J3DTevBlockNull::initialize() {
/* 803176E0-803177E8 312020 0108+00 0/0 1/1 0/0 .text initialize__18J3DTevBlockPatchedFv
*/
void J3DTevBlockPatched::initialize() {
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTexNo); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTexNo); i++) {
mTexNo[i] = 0xFFFF;
}
- for (s32 i = 0; i < ARRAY_SIZE(mTevStage); i++) {
+ for (int i = 0; i < ARRAY_SIZEU(mTevStage); i++) {
mTevStage[i].setStageNo(i);
}
- for (s32 i = 0; i < 3; i++) {
+ for (int i = 0; i < 3; i++) {
mTevColor[i] = j3dDefaultTevColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
mTevKColor[i] = j3dDefaultTevKColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColorSel); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColorSel); i++) {
mTevKColorSel[i] = GX_TEV_KCSEL_K0;
}
+
mTevStageNum = 1;
mTexNoOffset = 0;
mTevRegOffset = 0;
@@ -147,12 +142,13 @@ void J3DTevBlock2::initialize() {
mTevKAlphaSel[0] = GX_TEV_KASEL_K0_A;
mTevKAlphaSel[1] = GX_TEV_KASEL_K0_A;
- for (s32 i = 0; i < 3; i++) {
+ for (int i = 0; i < 3; i++) {
mTevColor[i] = j3dDefaultTevColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
mTevKColor[i] = j3dDefaultTevKColor;
}
+
mTexNoOffset = 0;
mTevRegOffset = 0;
}
@@ -169,6 +165,7 @@ void J3DTevBlock4::initialize() {
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;
@@ -178,37 +175,41 @@ void J3DTevBlock4::initialize() {
mTevKAlphaSel[2] = GX_TEV_KASEL_K0_A;
mTevKAlphaSel[3] = GX_TEV_KASEL_K0_A;
- for (s32 i = 0; i < 3; i++) {
+ for (int i = 0; i < 3; i++) {
mTevColor[i] = j3dDefaultTevColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
mTevKColor[i] = j3dDefaultTevKColor;
}
+
mTexNoOffset = 0;
mTevRegOffset = 0;
}
/* 80317A00-80317B28 312340 0128+00 0/0 1/1 0/0 .text initialize__13J3DTevBlock16Fv */
void J3DTevBlock16::initialize() {
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTexNo); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTexNo); i++) {
mTexNo[i] = 0xFFFF;
}
+
mTevStageNum = 1;
- for (s32 i = 0; i < 3; i++) {
+
+ for (int i = 0; i < 3; i++) {
mTevColor[i] = j3dDefaultTevColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColor); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
mTevKColor[i] = j3dDefaultTevKColor;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColorSel); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColorSel); i++) {
mTevKColorSel[i] = GX_TEV_KCSEL_K0;
}
- for (s32 i = 0; i < (s32)ARRAY_SIZE(mTevKColorSel); i++) {
+ for (int i = 0; i < ARRAY_SIZE(mTevKColorSel); i++) {
mTevKAlphaSel[i] = GX_TEV_KASEL_K0_A;
}
- for (s32 i = 0; i < ARRAY_SIZE(mTevStage); i++) {
+ for (int i = 0; i < ARRAY_SIZEU(mTevStage); i++) {
mTevStage[i].setStageNo(i);
}
+
mTexNoOffset = 0;
mTevRegOffset = 0;
}
@@ -324,10 +325,10 @@ s32 J3DPEBlockFull::countDLSize() {
}
/* 80450960-80450964 0003E0 0004+00 5/5 0/0 0/0 .sdata SizeOfLoadMatColors */
-static u32 SizeOfLoadMatColors = 0x0000000D;
+static u32 SizeOfLoadMatColors = 13;
/* 80450964-80450968 0003E4 0004+00 2/2 0/0 0/0 .sdata SizeOfLoadAmbColors */
-static u32 SizeOfLoadAmbColors = 0x0000000D;
+static u32 SizeOfLoadAmbColors = 13;
/* 80450968-80450970 0003E8 0004+04 5/5 0/0 0/0 .sdata SizeOfLoadColorChans */
static u32 SizeOfLoadColorChans = 21;
@@ -343,7 +344,8 @@ void J3DColorBlockLightOff::load() {
mMatColorOffset = GDGetCurrOffset();
loadMatColors(mMatColor);
mColorChanOffset = GDGetCurrOffset();
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
+
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
@@ -360,7 +362,8 @@ void J3DColorBlockAmbientOn::load() {
loadMatColors(mMatColor);
loadAmbColors(mAmbColor);
mColorChanOffset = GDGetCurrOffset();
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
+
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
@@ -374,11 +377,13 @@ void J3DColorBlockLightOn::load() {
loadMatColors(mMatColor);
loadAmbColors(mAmbColor);
mColorChanOffset = GDGetCurrOffset();
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
+
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
+
for (u32 i = 0; i < 8; i++) {
if (mLight[i] != NULL) {
mLight[i]->load(i);
@@ -399,7 +404,7 @@ void J3DColorBlockLightOff::patchMatColor() {
GDOverflowCheck(SizeOfLoadMatColors);
loadMatColors(mMatColor);
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 803190AC-803194E8 3139EC 043C+00 2/0 0/0 0/0 .text patchLight__21J3DColorBlockLightOffFv */
@@ -407,13 +412,15 @@ void J3DColorBlockLightOff::patchLight() {
GDSetCurrOffset(mColorChanOffset);
void* start = GDGetCurrPointer();
GDOverflowCheck(SizeOfLoadColorChans);
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
+
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
+
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 803194E8-80319534 313E28 004C+00 1/0 0/0 0/0 .text patch__20J3DColorBlockLightOnFv */
@@ -429,7 +436,7 @@ void J3DColorBlockLightOn::patchMatColor() {
GDOverflowCheck(SizeOfLoadMatColors);
loadMatColors(mMatColor);
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 803196E0-80319B4C 314020 046C+00 1/0 0/0 0/0 .text patchLight__20J3DColorBlockLightOnFv */
@@ -437,25 +444,29 @@ void J3DColorBlockLightOn::patchLight() {
GDSetCurrOffset(mColorChanOffset);
void* start = GDGetCurrPointer();
GDOverflowCheck(SizeOfLoadColorChans);
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
+
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
+
for (u32 i = 0; i < 8; i++) {
if (mLight[i] != NULL) {
mLight[i]->load(i);
}
}
+
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 80319B4C-80319BB4 31448C 0068+00 2/0 0/0 0/0 .text diff__21J3DColorBlockLightOffFUl */
-void J3DColorBlockLightOff::diff(u32 flag) {
- if (flag & 0x1)
+void J3DColorBlockLightOff::diff(u32 diffFlags) {
+ if (diffFlags & J3DDiffFlag_MatColor)
diffMatColor();
- if (flag & 0x2)
+
+ if (diffFlags & J3DDiffFlag_ColorChan)
diffColorChan();
}
@@ -468,7 +479,7 @@ void J3DColorBlockLightOff::diffMatColor() {
/* 80319D30-8031A13C 314670 040C+00 2/0 0/0 0/0 .text diffColorChan__21J3DColorBlockLightOffFv */
void J3DColorBlockLightOff::diffColorChan() {
GDOverflowCheck(SizeOfLoadColorChans);
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
@@ -476,19 +487,19 @@ void J3DColorBlockLightOff::diffColorChan() {
}
/* 8031A13C-8031A1DC 314A7C 00A0+00 1/0 0/0 0/0 .text diff__20J3DColorBlockLightOnFUl */
-void J3DColorBlockLightOn::diff(u32 flag) {
- if (flag & 4)
+void J3DColorBlockLightOn::diff(u32 diffFlags) {
+ if (diffFlags & J3DDiffFlag_AmbColor)
diffAmbColor();
- if (flag & 1)
+ if (diffFlags & J3DDiffFlag_MatColor)
diffMatColor();
- if (flag & 2)
+ if (diffFlags & J3DDiffFlag_ColorChan)
diffColorChan();
- s32 lightObjNumFlag = getDiffFlag_LightObjNum(flag);
- if (lightObjNumFlag)
- diffLightObj(lightObjNumFlag);
+ s32 lightObjNum = getDiffFlag_LightObjNum(diffFlags);
+ if (lightObjNum != 0)
+ diffLightObj(lightObjNum);
}
/* 8031A1DC-8031A358 314B1C 017C+00 1/0 0/0 0/0 .text diffAmbColor__20J3DColorBlockLightOnFv */
@@ -506,7 +517,7 @@ void J3DColorBlockLightOn::diffMatColor() {
/* 8031A4D4-8031A8E0 314E14 040C+00 1/0 0/0 0/0 .text diffColorChan__20J3DColorBlockLightOnFv */
void J3DColorBlockLightOn::diffColorChan() {
GDOverflowCheck(SizeOfLoadColorChans);
- J3DGDWriteXFCmdHdr(0x100e, 4);
+ J3DGDWriteXFCmdHdr(XF_REG_COLOR0CNTRL_ID, 4);
mColorChan[0].load();
mColorChan[2].load();
mColorChan[1].load();
@@ -514,8 +525,8 @@ void J3DColorBlockLightOn::diffColorChan() {
}
/* 8031A8E0-8031A948 315220 0068+00 1/0 0/0 0/0 .text diffLightObj__20J3DColorBlockLightOnFUl */
-void J3DColorBlockLightOn::diffLightObj(u32 param_1) {
- for (u32 i = 0; i < param_1; i ++) {
+void J3DColorBlockLightOn::diffLightObj(u32 lightObjNum) {
+ for (u32 i = 0; i < lightObjNum; i ++) {
if (mLight[i] != NULL) {
mLight[i]->load(i);
}
@@ -530,6 +541,7 @@ void J3DTexGenBlock4::load() {
mTexMtx[i]->load(i);
}
}
+
if (mTexGenNum != 0) {
loadTexCoordGens(mTexGenNum, mTexCoord);
}
@@ -543,6 +555,7 @@ void J3DTexGenBlockBasic::load() {
mTexMtx[i]->load(i);
}
}
+
if (mTexGenNum != 0) {
loadTexCoordGens(mTexGenNum, mTexCoord);
}
@@ -552,46 +565,53 @@ void J3DTexGenBlockBasic::load() {
void J3DTexGenBlockPatched::patch() {
GDSetCurrOffset(mTexMtxOffset);
void* start = GDGetCurrPointer();
+
for (u32 i = 0; i < 8; i++) {
if (mTexMtx[i]) {
mTexMtx[i]->load(i);
}
}
+
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031AB18-8031ABC0 315458 00A8+00 1/0 0/0 0/0 .text patch__15J3DTexGenBlock4Fv */
void J3DTexGenBlock4::patch() {
GDSetCurrOffset(mTexMtxOffset);
void* start = GDGetCurrPointer();
+
for (u32 i = 0; i < 4; i++) {
if (mTexMtx[i] && mTexCoord[i].getTexGenMtx() != GX_IDENTITY) {
mTexMtx[i]->load(i);
}
}
+
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031ABC0-8031AC68 315500 00A8+00 1/0 0/0 0/0 .text patch__19J3DTexGenBlockBasicFv */
void J3DTexGenBlockBasic::patch() {
GDSetCurrOffset(mTexMtxOffset);
void* start = GDGetCurrPointer();
+
for (u32 i = 0; i < 8; i++) {
if (mTexMtx[i] && mTexCoord[i].getTexGenMtx() != GX_IDENTITY) {
mTexMtx[i]->load(i);
}
}
+
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031AC68-8031ACD0 3155A8 0068+00 3/0 0/0 0/0 .text diff__21J3DTexGenBlockPatchedFUl */
-void J3DTexGenBlockPatched::diff(u32 flag) {
- if (getDiffFlag_TexGenNum(flag)) {
+void J3DTexGenBlockPatched::diff(u32 diffFlags) {
+ if (getDiffFlag_TexGenNum(diffFlags)) {
diffTexMtx();
- if (flag & 0x1000) {
+
+ if (diffFlags & J3DDiffFlag_TexGen) {
diffTexGen();
}
}
@@ -599,7 +619,7 @@ void J3DTexGenBlockPatched::diff(u32 flag) {
/* 8031ACD0-8031AD30 315610 0060+00 3/0 0/0 0/0 .text diffTexMtx__21J3DTexGenBlockPatchedFv */
void J3DTexGenBlockPatched::diffTexMtx() {
- for (u32 i = 0; i < ARRAY_SIZE(mTexMtx); ++i) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTexMtx); ++i) {
if (mTexMtx[i] != NULL) {
mTexMtx[i]->load(i);
}
@@ -617,9 +637,11 @@ void J3DTexGenBlockPatched::diffTexGen() {
void J3DTevBlock1::load() {
mTexNoOffset = GDGetCurrOffset();
GDOverflowCheck(0x69);
+
if (mTexNo[0] != 0xffff) {
loadTexNo(0, mTexNo[0]);
}
+
J3DGDSetTevOrder(
GX_TEVSTAGE0,
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
@@ -629,10 +651,12 @@ void J3DTevBlock1::load() {
GX_TEXMAP_NULL,
GX_COLOR_NULL
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
J3DSys::sTexCoordScaleTable[mTevOrder[0].getTevOrderInfo().mTexMap & 7]
);
+
mTevStage[0].load(0);
mIndTevStage[0].load(0);
}
@@ -641,11 +665,13 @@ void J3DTevBlock1::load() {
void J3DTevBlock2::load() {
u32 tevStageNum = mTevStageNum;
mTexNoOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 2; i++) {
if (mTexNo[i] != 0xffff) {
loadTexNo(i, mTexNo[i]);
}
}
+
J3DGDSetTevOrder(
GX_TEVSTAGE0,
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
@@ -655,15 +681,19 @@ void J3DTevBlock2::load() {
GXTexMapID(mTevOrder[1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
J3DSys::sTexCoordScaleTable[mTevOrder[0].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[1].getTevOrderInfo().mTexMap & 7]
);
+
mTevRegOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 3; i++) {
loadTevColor(i, mTevColor[i]);
}
@@ -674,6 +704,7 @@ void J3DTevBlock2::load() {
mTevStage[i].load(i);
mIndTevStage[i].load(i);
}
+
for (u32 i = 0; i < 16; i += 4) {
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i),
@@ -684,6 +715,7 @@ void J3DTevBlock2::load() {
GXTevColorChan(mTevSwapModeTable[i / 4].getR()),
GXTevColorChan(mTevSwapModeTable[i / 4].getG())
);
+
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i + 2),
GXTevKColorSel(mTevKColorSel[0]),
@@ -700,11 +732,13 @@ void J3DTevBlock2::load() {
void J3DTevBlock4::load() {
u32 tevStageNum = mTevStageNum;
mTexNoOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 4; i++) {
if (mTexNo[i] != 0xffff) {
loadTexNo(i, mTexNo[i]);
}
}
+
for (u32 i = 0; i < tevStageNum; i += 2) {
J3DGDSetTevOrder(
GXTevStageID(i),
@@ -715,16 +749,20 @@ void J3DTevBlock4::load() {
GXTexMapID(mTevOrder[i + 1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[i + 1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i + 1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i + 1].getTevOrderInfo().mTexMap & 7]
);
}
+
mTevRegOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 3; i++) {
loadTevColor(i, mTevColor[i]);
}
@@ -735,6 +773,7 @@ void J3DTevBlock4::load() {
mTevStage[i].load(i);
mIndTevStage[i].load(i);
}
+
for (u32 i = 0; i < 16; i += 4) {
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i),
@@ -745,6 +784,7 @@ void J3DTevBlock4::load() {
GXTevColorChan(mTevSwapModeTable[i / 4].getR()),
GXTevColorChan(mTevSwapModeTable[i / 4].getG())
);
+
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i + 2),
GXTevKColorSel(mTevKColorSel[2]),
@@ -761,11 +801,13 @@ void J3DTevBlock4::load() {
void J3DTevBlock16::load() {
u32 tevStageNum = mTevStageNum;
mTexNoOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 8; i++) {
if (mTexNo[i] != 0xffff) {
loadTexNo(i, mTexNo[i]);
}
}
+
for (u32 i = 0; i < tevStageNum; i += 2) {
J3DGDSetTevOrder(
GXTevStageID(i),
@@ -776,16 +818,20 @@ void J3DTevBlock16::load() {
GXTexMapID(mTevOrder[i + 1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[i + 1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i + 1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i + 1].getTevOrderInfo().mTexMap & 7]
);
}
+
mTevRegOffset = GDGetCurrOffset();
+
for (u32 i = 0; i < 3; i++) {
loadTevColor(i, mTevColor[i]);
}
@@ -796,6 +842,7 @@ void J3DTevBlock16::load() {
mTevStage[i].load(i);
mIndTevStage[i].load(i);
}
+
for (u32 i = 0; i < 16; i += 4) {
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i),
@@ -806,6 +853,7 @@ void J3DTevBlock16::load() {
GXTevColorChan(mTevSwapModeTable[i / 4].getR()),
GXTevColorChan(mTevSwapModeTable[i / 4].getG())
);
+
J3DGDSetTevKonstantSel_SwapModeTable(
GXTevStageID(i + 2),
GXTevKColorSel(mTevKColorSel[i + 2]),
@@ -832,7 +880,7 @@ void J3DTevBlockPatched::patchTexNo() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031BFE0-8031C0AC 316920 00CC+00 1/0 0/0 0/0 .text patchTevReg__18J3DTevBlockPatchedFv
@@ -841,15 +889,15 @@ void J3DTevBlockPatched::patchTevReg() {
GDSetCurrOffset(mTevRegOffset);
void* start = GDGetCurrPointer();
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C0AC-8031C228 3169EC 017C+00 1/0 0/0 0/0 .text
@@ -875,10 +923,12 @@ void J3DTevBlockPatched::patchTexNoAndTexCoordScale() {
GXTexMapID(mTevOrder[i + 1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[i + 1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i + 1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i + 1].getTevOrderInfo().mTexMap & 7]
@@ -886,7 +936,7 @@ void J3DTevBlockPatched::patchTexNoAndTexCoordScale() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C228-8031C274 316B68 004C+00 1/0 0/0 0/0 .text patch__18J3DTevBlockPatchedFv */
@@ -905,12 +955,11 @@ void J3DTevBlock1::patchTexNo() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C2E4-8031C2E8 316C24 0004+00 1/0 0/0 0/0 .text patchTevReg__12J3DTevBlock1Fv */
-void J3DTevBlock1::patchTevReg() {
-}
+void J3DTevBlock1::patchTevReg() {}
/* 8031C2E8-8031C3CC 316C28 00E4+00 1/0 0/0 0/0 .text patchTexNoAndTexCoordScale__12J3DTevBlock1Fv
*/
@@ -931,13 +980,14 @@ void J3DTevBlock1::patchTexNoAndTexCoordScale() {
GX_TEXMAP_NULL,
GX_COLOR_NULL
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
J3DSys::sTexCoordScaleTable[mTevOrder[0].getTevOrderInfo().mTexMap & 7]
);
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C3CC-8031C3F8 316D0C 002C+00 1/0 0/0 0/0 .text patch__12J3DTevBlock1Fv */
@@ -957,7 +1007,7 @@ void J3DTevBlock2::patchTexNo() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C48C-8031C558 316DCC 00CC+00 1/0 0/0 0/0 .text patchTevReg__12J3DTevBlock2Fv */
@@ -965,15 +1015,15 @@ void J3DTevBlock2::patchTevReg() {
GDSetCurrOffset(mTevRegOffset);
void* start = GDGetCurrPointer();
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C558-8031C6A8 316E98 0150+00 1/0 0/0 0/0 .text patchTexNoAndTexCoordScale__12J3DTevBlock2Fv
@@ -997,17 +1047,19 @@ void J3DTevBlock2::patchTexNoAndTexCoordScale() {
GXTexMapID(mTevOrder[1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[0].getTevOrderInfo().mTexCoord),
J3DSys::sTexCoordScaleTable[mTevOrder[0].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[1].getTevOrderInfo().mTexMap & 7]
);
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C6A8-8031C6F4 316FE8 004C+00 1/0 0/0 0/0 .text patch__12J3DTevBlock2Fv */
@@ -1028,7 +1080,7 @@ void J3DTevBlock4::patchTexNo() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C788-8031C854 3170C8 00CC+00 1/0 0/0 0/0 .text patchTevReg__12J3DTevBlock4Fv */
@@ -1036,15 +1088,15 @@ void J3DTevBlock4::patchTevReg() {
GDSetCurrOffset(mTevRegOffset);
void* start = GDGetCurrPointer();
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C854-8031C9D0 317194 017C+00 1/0 0/0 0/0 .text patchTexNoAndTexCoordScale__12J3DTevBlock4Fv
@@ -1070,10 +1122,12 @@ void J3DTevBlock4::patchTexNoAndTexCoordScale() {
GXTexMapID(mTevOrder[i + 1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[i + 1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i + 1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i + 1].getTevOrderInfo().mTexMap & 7]
@@ -1081,7 +1135,7 @@ void J3DTevBlock4::patchTexNoAndTexCoordScale() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031C9D0-8031CA1C 317310 004C+00 1/0 0/0 0/0 .text patch__12J3DTevBlock4Fv */
void J3DTevBlock4::patch() {
@@ -1101,7 +1155,7 @@ void J3DTevBlock16::patchTexNo() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031CAB0-8031CB7C 3173F0 00CC+00 1/0 0/0 0/0 .text patchTevReg__13J3DTevBlock16Fv */
@@ -1109,15 +1163,15 @@ void J3DTevBlock16::patchTevReg() {
GDSetCurrOffset(mTevRegOffset);
void* start = GDGetCurrPointer();
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031CB7C-8031CCF8 3174BC 017C+00 1/0 0/0 0/0 .text
@@ -1143,10 +1197,12 @@ void J3DTevBlock16::patchTexNoAndTexCoordScale() {
GXTexMapID(mTevOrder[i + 1].getTevOrderInfo().mTexMap),
GXChannelID(mTevOrder[i + 1].getTevOrderInfo().mColorChan)
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i].getTevOrderInfo().mTexMap & 7]
);
+
loadTexCoordScale(
GXTexCoordID(mTevOrder[i + 1].getTevOrderInfo().mTexCoord & 7),
J3DSys::sTexCoordScaleTable[mTevOrder[i + 1].getTevOrderInfo().mTexMap & 7]
@@ -1154,7 +1210,7 @@ void J3DTevBlock16::patchTexNoAndTexCoordScale() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031CCF8-8031CD44 317638 004C+00 1/0 0/0 0/0 .text patch__13J3DTevBlock16Fv */
@@ -1164,20 +1220,24 @@ void J3DTevBlock16::patch() {
}
/* 8031CD44-8031CE00 317684 00BC+00 6/0 1/0 0/0 .text diff__11J3DTevBlockFUl */
-void J3DTevBlock::diff(u32 flag) {
- if (getDiffFlag_TexNoNum(flag)) {
+void J3DTevBlock::diff(u32 diffFlags) {
+ if (getDiffFlag_TexNoNum(diffFlags)) {
diffTexNo();
}
- if (flag & 0x4000000) {
+
+ if (diffFlags & J3DDiffFlag_TexCoordScale) {
diffTexCoordScale();
}
- if (getDiffFlag_TevStageNum(flag)) {
+
+ if (getDiffFlag_TevStageNum(diffFlags)) {
diffTevStage();
- if (flag & 0x8000000) {
+
+ if (diffFlags & J3DDiffFlag_TevStageIndirect) {
diffTevStageIndirect();
}
}
- if (flag & 0x01000000) {
+
+ if (diffFlags & J3DDiffFlag_TevReg) {
diffTevReg();
}
}
@@ -1185,7 +1245,7 @@ void J3DTevBlock::diff(u32 flag) {
/* 8031CE00-8031CE64 317740 0064+00 1/0 0/0 0/0 .text diffTexNo__18J3DTevBlockPatchedFv
*/
void J3DTevBlockPatched::diffTexNo() {
- for (u32 i = 0; i < ARRAY_SIZE(mTexNo); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTexNo); i++) {
if (mTexNo[i] != 0xFFFF) {
loadTexNo(i, mTexNo[i]);
}
@@ -1212,10 +1272,10 @@ void J3DTevBlockPatched::diffTevStageIndirect() {
/* 8031D028-8031D0C4 317968 009C+00 1/0 0/0 0/0 .text diffTevReg__18J3DTevBlockPatchedFv
*/
void J3DTevBlockPatched::diffTevReg() {
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
}
@@ -1243,8 +1303,7 @@ void J3DTevBlock1::diffTexNo() {
}
/* 8031D1F4-8031D1F8 317B34 0004+00 1/0 0/0 0/0 .text diffTevReg__12J3DTevBlock1Fv */
-void J3DTevBlock1::diffTevReg() {
-}
+void J3DTevBlock1::diffTevReg() {}
/* 8031D1F8-8031D2E8 317B38 00F0+00 1/0 0/0 0/0 .text diffTevStage__12J3DTevBlock1Fv */
void J3DTevBlock1::diffTevStage() {
@@ -1267,7 +1326,7 @@ void J3DTevBlock1::diffTexCoordScale() {
/* 8031D3D0-8031D434 317D10 0064+00 1/0 0/0 0/0 .text diffTexNo__12J3DTevBlock2Fv */
void J3DTevBlock2::diffTexNo() {
- for (u32 i = 0; i < ARRAY_SIZE(mTexNo); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTexNo); i++) {
if (mTexNo[i] != 0xFFFF) {
loadTexNo(i, mTexNo[i]);
}
@@ -1276,10 +1335,10 @@ void J3DTevBlock2::diffTexNo() {
/* 8031D434-8031D4D0 317D74 009C+00 1/0 0/0 0/0 .text diffTevReg__12J3DTevBlock2Fv */
void J3DTevBlock2::diffTevReg() {
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
}
@@ -1315,7 +1374,7 @@ void J3DTevBlock2::diffTexCoordScale() {
/* 8031D758-8031D7BC 318098 0064+00 1/0 0/0 0/0 .text diffTexNo__12J3DTevBlock4Fv */
void J3DTevBlock4::diffTexNo() {
- for (u32 i = 0; i < ARRAY_SIZE(mTexNo); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTexNo); i++) {
if (mTexNo[i] != 0xFFFF) {
loadTexNo(i, mTexNo[i]);
}
@@ -1324,10 +1383,10 @@ void J3DTevBlock4::diffTexNo() {
/* 8031D7BC-8031D858 3180FC 009C+00 1/0 0/0 0/0 .text diffTevReg__12J3DTevBlock4Fv */
void J3DTevBlock4::diffTevReg() {
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
}
@@ -1339,6 +1398,7 @@ void J3DTevBlock4::diffTevStage() {
mTevStage[i].load(i);
}
}
+
/* 8031D96C-8031DA1C 3182AC 00B0+00 1/0 0/0 0/0 .text diffTevStageIndirect__12J3DTevBlock4Fv */
void J3DTevBlock4::diffTevStageIndirect() {
u32 tevStageNum = mTevStageNum;
@@ -1364,7 +1424,7 @@ void J3DTevBlock4::diffTexCoordScale() {
}
/* 8031DB14-8031DB78 318454 0064+00 1/0 0/0 0/0 .text diffTexNo__13J3DTevBlock16Fv */
void J3DTevBlock16::diffTexNo() {
- for (u32 i = 0; i < ARRAY_SIZE(mTexNo); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTexNo); i++) {
if (mTexNo[i] != 0xFFFF) {
loadTexNo(i, mTexNo[i]);
}
@@ -1373,10 +1433,10 @@ void J3DTevBlock16::diffTexNo() {
/* 8031DB78-8031DC14 3184B8 009C+00 1/0 0/0 0/0 .text diffTevReg__13J3DTevBlock16Fv */
void J3DTevBlock16::diffTevReg() {
- for (u32 i = 0; i < ARRAY_SIZE(mTevColor) - 1; i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevColor) - 1; i++) {
loadTevColor(i, mTevColor[i]);
}
- for (u32 i = 0; i < ARRAY_SIZE(mTevKColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mTevKColor); i++) {
loadTevKColor(i, mTevKColor[i]);
}
}
@@ -1422,8 +1482,10 @@ void J3DTevBlock16::ptrToIndex() {
if (mTexNo[i] != 0xFFFF) {
GDSetCurrOffset(mTexNoOffset + offs);
patchTexNo_PtrToIdx(i, mTexNo[i]);
+
ResTIMG* img = j3dSys.getTexture()->getResTIMG(mTexNo[i]);
- J3D_ASSERT(0x828, img != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2088, img != NULL);
+
offs += 0x14;
if (img->indexTexture == 1) {
offs += 0x23;
@@ -1432,7 +1494,7 @@ void J3DTevBlock16::ptrToIndex() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031DFB4-8031E098 3188F4 00E4+00 1/0 0/0 0/0 .text ptrToIndex__18J3DTevBlockPatchedFv
@@ -1446,8 +1508,10 @@ void J3DTevBlockPatched::ptrToIndex() {
if (mTexNo[i] != 0xFFFF) {
GDSetCurrOffset(mTexNoOffset + offs);
patchTexNo_PtrToIdx(i, mTexNo[i]);
+
ResTIMG* img = j3dSys.getTexture()->getResTIMG(mTexNo[i]);
- J3D_ASSERT(0x851, img != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2129, img != NULL);
+
offs += 0x14;
if (img->indexTexture == 1) {
offs += 0x23;
@@ -1456,7 +1520,7 @@ void J3DTevBlockPatched::ptrToIndex() {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031E098-8031E12C 3189D8 0094+00 5/5 1/1 0/0 .text indexToPtr_private__11J3DTevBlockFUl */
@@ -1475,7 +1539,7 @@ void J3DTevBlock::indexToPtr_private(u32 offs) {
}
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031E12C-8031E328 318A6C 01FC+00 1/0 0/0 0/0 .text load__15J3DIndBlockFullFv */
@@ -1484,6 +1548,7 @@ void J3DIndBlockFull::load() {
for (u32 i = 0; i < indTexStageNum; i++) {
mIndTexMtx[i].load(i);
}
+
for (u32 i = 0; i < indTexStageNum; i += 2) {
J3DGDSetIndTexCoordScale(
GXIndTexStageID(i),
@@ -1493,10 +1558,12 @@ void J3DIndBlockFull::load() {
(GXIndTexScale)mIndTexCoordScale[i + 1].getScaleT()
);
}
+
loadTexCoordScale((GXTexCoordID)mIndTexOrder[0].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[0].getMap() & 7]);
loadTexCoordScale((GXTexCoordID)mIndTexOrder[1].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[1].getMap() & 7]);
loadTexCoordScale((GXTexCoordID)mIndTexOrder[2].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[2].getMap() & 7]);
loadTexCoordScale((GXTexCoordID)mIndTexOrder[3].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[3].getMap() & 7]);
+
J3DGDSetIndTexOrder(
indTexStageNum,
(GXTexCoordID)mIndTexOrder[0].getCoord(),
@@ -1511,31 +1578,33 @@ void J3DIndBlockFull::load() {
}
/* 8031E328-8031E408 318C68 00E0+00 1/0 0/0 0/0 .text diff__15J3DIndBlockFullFUl */
-void J3DIndBlockFull::diff(u32 flag) {
- if ((flag & 0x08000000) == 0) {
- return;
- }
- u32 indTexStageNum = mIndTexStageNum;
- mIndTexMtx[0].load(0);
- J3DGDSetIndTexCoordScale(
- GX_INDTEXSTAGE0,
- (GXIndTexScale)mIndTexCoordScale[0].getScaleS(),
- (GXIndTexScale)mIndTexCoordScale[0].getScaleT(),
- (GXIndTexScale)mIndTexCoordScale[1].getScaleS(),
- (GXIndTexScale)mIndTexCoordScale[1].getScaleT()
- );
- loadTexCoordScale((GXTexCoordID)mIndTexOrder[0].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[0].getMap() & 7]);
- J3DGDSetIndTexOrder(
- indTexStageNum,
- (GXTexCoordID)mIndTexOrder[0].getCoord(),
- (GXTexMapID)mIndTexOrder[0].getMap(),
- (GXTexCoordID)mIndTexOrder[1].getCoord(),
- (GXTexMapID)mIndTexOrder[1].getMap(),
- (GXTexCoordID)mIndTexOrder[2].getCoord(),
- (GXTexMapID)mIndTexOrder[2].getMap(),
- (GXTexCoordID)mIndTexOrder[3].getCoord(),
- (GXTexMapID)mIndTexOrder[3].getMap()
- );
+void J3DIndBlockFull::diff(u32 diffFlags) {
+ if (diffFlags & J3DDiffFlag_TevStageIndirect) {
+ u32 indTexStageNum = mIndTexStageNum;
+ mIndTexMtx[0].load(0);
+
+ J3DGDSetIndTexCoordScale(
+ GX_INDTEXSTAGE0,
+ (GXIndTexScale)mIndTexCoordScale[0].getScaleS(),
+ (GXIndTexScale)mIndTexCoordScale[0].getScaleT(),
+ (GXIndTexScale)mIndTexCoordScale[1].getScaleS(),
+ (GXIndTexScale)mIndTexCoordScale[1].getScaleT()
+ );
+
+ loadTexCoordScale((GXTexCoordID)mIndTexOrder[0].getCoord(), J3DSys::sTexCoordScaleTable[mIndTexOrder[0].getMap() & 7]);
+
+ J3DGDSetIndTexOrder(
+ indTexStageNum,
+ (GXTexCoordID)mIndTexOrder[0].getCoord(),
+ (GXTexMapID)mIndTexOrder[0].getMap(),
+ (GXTexCoordID)mIndTexOrder[1].getCoord(),
+ (GXTexMapID)mIndTexOrder[1].getMap(),
+ (GXTexCoordID)mIndTexOrder[2].getCoord(),
+ (GXTexMapID)mIndTexOrder[2].getMap(),
+ (GXTexCoordID)mIndTexOrder[3].getCoord(),
+ (GXTexMapID)mIndTexOrder[3].getMap()
+ );
+ }
}
/* 8031E408-8031E6C8 318D48 02C0+00 1/0 0/0 0/0 .text load__13J3DPEBlockOpaFv */
@@ -1585,7 +1654,6 @@ void J3DPEBlockFogOff::diffBlend() {
mZMode.load();
}
-
/* 8031F3C0-8031F890 319D00 04D0+00 1/0 0/0 0/0 .text load__14J3DPEBlockFullFv */
void J3DPEBlockFull::load() {
mFogOffset = GDGetCurrOffset();
@@ -1604,7 +1672,7 @@ void J3DPEBlockFull::patch() {
void* start = GDGetCurrPointer();
mFog.load();
void* end = GDGetCurrPointer();
- DCStoreRange(start, (u32)end - (u32)start);
+ DCStoreRange(start, (uintptr_t)end - (uintptr_t)start);
}
/* 8031F940-8031F9B8 31A280 0078+00 1/0 0/0 0/0 .text diffFog__14J3DPEBlockFullFv */
@@ -1621,11 +1689,12 @@ void J3DPEBlockFull::diffBlend() {
}
/* 8031FCA0-8031FD08 31A5E0 0068+00 1/0 0/0 0/0 .text diff__14J3DPEBlockFullFUl */
-void J3DPEBlockFull::diff(u32 flag) {
- if ((flag & 0x10000000)) {
+void J3DPEBlockFull::diff(u32 diffFlags) {
+ if ((diffFlags & J3DDiffFlag_Fog)) {
diffFog();
}
- if ((flag & 0x20000000)) {
+
+ if ((diffFlags & J3DDiffFlag_Blend)) {
diffBlend();
}
}
@@ -1633,14 +1702,13 @@ void J3DPEBlockFull::diff(u32 flag) {
/* 8031FD08-8031FDE4 31A648 00DC+00 1/0 0/0 0/0 .text
* reset__21J3DColorBlockLightOffFP13J3DColorBlock */
void J3DColorBlockLightOff::reset(J3DColorBlock* pBlock) {
- J3D_ASSERT(0x982, pBlock != 0, "Error : null pointer.");
-
+ J3D_ASSERT_NULLPTR(2434, pBlock != NULL);
mColorChanNum = pBlock->getColorChanNum();
- for (u32 i = 0; i < ARRAY_SIZE(mMatColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mMatColor); i++) {
mMatColor[i] = *pBlock->getMatColor(i);
}
- for (u32 i = 0; i < ARRAY_SIZE(mColorChan); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mColorChan); i++) {
mColorChan[i] = *pBlock->getColorChan(i);
}
}
@@ -1648,17 +1716,16 @@ void J3DColorBlockLightOff::reset(J3DColorBlock* pBlock) {
/* 8031FDE4-8031FF34 31A724 0150+00 1/0 0/0 0/0 .text
* reset__22J3DColorBlockAmbientOnFP13J3DColorBlock */
void J3DColorBlockAmbientOn::reset(J3DColorBlock* pBlock) {
- J3D_ASSERT(0x993, pBlock != 0, "Error : null pointer.");
-
+ J3D_ASSERT_NULLPTR(2451, pBlock != NULL);
mColorChanNum = pBlock->getColorChanNum();
- for (u32 i = 0; i < ARRAY_SIZE(mMatColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mMatColor); i++) {
mMatColor[i] = *pBlock->getMatColor(i);
}
- for (u32 i = 0; i < ARRAY_SIZE(mColorChan); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mColorChan); i++) {
mColorChan[i] = *pBlock->getColorChan(i);
}
- for (u32 i = 0; i < ARRAY_SIZE(mAmbColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mAmbColor); i++) {
if (pBlock->getAmbColor(i) != NULL) {
mAmbColor[i] = *pBlock->getAmbColor(i);
}
@@ -1668,17 +1735,16 @@ void J3DColorBlockAmbientOn::reset(J3DColorBlock* pBlock) {
/* 8031FF34-80320084 31A874 0150+00 1/0 0/0 0/0 .text
* reset__20J3DColorBlockLightOnFP13J3DColorBlock */
void J3DColorBlockLightOn::reset(J3DColorBlock* pBlock) {
- J3D_ASSERT(0x9ac, pBlock != 0, "Error : null pointer.");
-
+ J3D_ASSERT_NULLPTR(2476, pBlock != NULL);
mColorChanNum = pBlock->getColorChanNum();
- for (u32 i = 0; i < ARRAY_SIZE(mMatColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mMatColor); i++) {
mMatColor[i] = *pBlock->getMatColor(i);
}
- for (u32 i = 0; i < ARRAY_SIZE(mColorChan); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mColorChan); i++) {
mColorChan[i] = *pBlock->getColorChan(i);
}
- for (u32 i = 0; i < ARRAY_SIZE(mAmbColor); i++) {
+ for (u32 i = 0; i < ARRAY_SIZEU(mAmbColor); i++) {
if (pBlock->getAmbColor(i) != NULL) {
mAmbColor[i] = *pBlock->getAmbColor(i);
}
@@ -1688,12 +1754,13 @@ void J3DColorBlockLightOn::reset(J3DColorBlock* pBlock) {
/* 80320084-803201A0 31A9C4 011C+00 1/0 0/0 0/0 .text
* reset__21J3DTexGenBlockPatchedFP14J3DTexGenBlock */
void J3DTexGenBlockPatched::reset(J3DTexGenBlock* pBlock) {
- J3D_ASSERT(0x9c8, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2504, pBlock != NULL);
mTexGenNum = pBlock->getTexGenNum();
for (u32 i = 0; i < 8; i++) {
mTexCoord[i] = *pBlock->getTexCoord(i);
}
+
for (u32 i = 0; i < 8; i++) {
if (pBlock->getTexMtx(i) != NULL) {
if (mTexMtx[i] != NULL) {
@@ -1709,12 +1776,13 @@ void J3DTexGenBlockPatched::reset(J3DTexGenBlock* pBlock) {
/* 803201A0-803202DC 31AAE0 013C+00 1/0 0/0 0/0 .text reset__15J3DTexGenBlock4FP14J3DTexGenBlock
*/
void J3DTexGenBlock4::reset(J3DTexGenBlock* pBlock) {
- J3D_ASSERT(0x9e9, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2537, pBlock != NULL);
mTexGenNum = pBlock->getTexGenNum();
for (u32 i = 0; i < 4; i++) {
mTexCoord[i] = *pBlock->getTexCoord(i);
}
+
for (u32 i = 0; i < 4; i++) {
if (pBlock->getTexMtx(i) != NULL) {
if (mTexMtx[i] != NULL) {
@@ -1732,12 +1800,13 @@ void J3DTexGenBlock4::reset(J3DTexGenBlock* pBlock) {
/* 803202DC-80320418 31AC1C 013C+00 1/0 0/0 0/0 .text
* reset__19J3DTexGenBlockBasicFP14J3DTexGenBlock */
void J3DTexGenBlockBasic::reset(J3DTexGenBlock* pBlock) {
- J3D_ASSERT(0xa0c, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2572, pBlock != NULL);
mTexGenNum = pBlock->getTexGenNum();
for (u32 i = 0; i < 8; i++) {
mTexCoord[i] = *pBlock->getTexCoord(i);
}
+
for (u32 i = 0; i < 8; i++) {
if (pBlock->getTexMtx(i) != NULL) {
if (mTexMtx[i] != NULL) {
@@ -1755,7 +1824,7 @@ void J3DTexGenBlockBasic::reset(J3DTexGenBlock* pBlock) {
/* 80320418-803205D4 31AD58 01BC+00 1/0 0/0 0/0 .text reset__18J3DTevBlockPatchedFP11J3DTevBlock
*/
void J3DTevBlockPatched::reset(J3DTevBlock* pBlock) {
- J3D_ASSERT(0xa30, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2608, pBlock != NULL);
mTevStageNum = pBlock->getTevStageNum();
for (u32 i = 0; i < 8; i++) {
@@ -1775,7 +1844,7 @@ void J3DTevBlockPatched::reset(J3DTevBlock* pBlock) {
/* 803205D4-803206AC 31AF14 00D8+00 1/0 0/0 0/0 .text reset__12J3DTevBlock1FP11J3DTevBlock */
void J3DTevBlock1::reset(J3DTevBlock* pBlock) {
- J3D_ASSERT(0xa49, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2633, pBlock != NULL);
mTexNo[0] = pBlock->getTexNo(0);
mTevOrder[0] = *pBlock->getTevOrder(0);
@@ -1785,7 +1854,7 @@ void J3DTevBlock1::reset(J3DTevBlock* pBlock) {
/* 803206AC-8032098C 31AFEC 02E0+00 1/0 0/0 0/0 .text reset__12J3DTevBlock2FP11J3DTevBlock */
void J3DTevBlock2::reset(J3DTevBlock* pBlock) {
- J3D_ASSERT(0xa59, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2649, pBlock != NULL);
mTevStageNum = pBlock->getTevStageNum();
mTexNo[0] = pBlock->getTexNo(0);
@@ -1800,6 +1869,7 @@ void J3DTevBlock2::reset(J3DTevBlock* pBlock) {
mTevKColorSel[1] = pBlock->getTevKColorSel(1);
mTevKAlphaSel[0] = pBlock->getTevKAlphaSel(0);
mTevKAlphaSel[1] = pBlock->getTevKAlphaSel(1);
+
for (u32 i = 0; i < 4; i++) {
mTevColor[i] = *pBlock->getTevColor(i);
}
@@ -1813,7 +1883,7 @@ void J3DTevBlock2::reset(J3DTevBlock* pBlock) {
/* 8032098C-80320E24 31B2CC 0498+00 1/0 0/0 0/0 .text reset__12J3DTevBlock4FP11J3DTevBlock */
void J3DTevBlock4::reset(J3DTevBlock* pBlock) {
- J3D_ASSERT(0xa7a, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2682, pBlock != NULL);
mTevStageNum = pBlock->getTevStageNum();
mTexNo[0] = pBlock->getTexNo(0);
@@ -1840,6 +1910,7 @@ void J3DTevBlock4::reset(J3DTevBlock* pBlock) {
mTevKAlphaSel[1] = pBlock->getTevKAlphaSel(1);
mTevKAlphaSel[2] = pBlock->getTevKAlphaSel(2);
mTevKAlphaSel[3] = pBlock->getTevKAlphaSel(3);
+
for (u32 i = 0; i < 4; i++)
mTevColor[i] = *pBlock->getTevColor(i);
for (u32 i = 0; i < 4; i++)
@@ -1850,7 +1921,7 @@ void J3DTevBlock4::reset(J3DTevBlock* pBlock) {
/* 80320E24-803210B0 31B764 028C+00 1/0 0/0 0/0 .text reset__13J3DTevBlock16FP11J3DTevBlock */
void J3DTevBlock16::reset(J3DTevBlock* pBlock) {
- J3D_ASSERT(0xaa8, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2728, pBlock != NULL);
mTevStageNum = pBlock->getTevStageNum();
for (u32 i = 0; i < 8; i++) {
@@ -1882,7 +1953,7 @@ void J3DTevBlock16::reset(J3DTevBlock* pBlock) {
/* 803210B0-803211B4 31B9F0 0104+00 1/0 0/0 0/0 .text reset__15J3DIndBlockFullFP11J3DIndBlock */
void J3DIndBlockFull::reset(J3DIndBlock* pBlock) {
- J3D_ASSERT(0xaca, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2762, pBlock != NULL);
mIndTexStageNum = pBlock->getIndTexStageNum();
for (u32 i = 0; i < 4; i++) {
@@ -1898,7 +1969,7 @@ void J3DIndBlockFull::reset(J3DIndBlock* pBlock) {
/* 803211B4-8032129C 31BAF4 00E8+00 1/0 0/0 0/0 .text reset__16J3DPEBlockFogOffFP10J3DPEBlock */
void J3DPEBlockFogOff::reset(J3DPEBlock* pBlock) {
- J3D_ASSERT(0xadf, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2783, pBlock != NULL);
switch (pBlock->getType()) {
case 'PEFL':
@@ -1913,10 +1984,10 @@ void J3DPEBlockFogOff::reset(J3DPEBlock* pBlock) {
/* 8032129C-803213C0 31BBDC 0124+00 1/0 0/0 0/0 .text reset__14J3DPEBlockFullFP10J3DPEBlock */
void J3DPEBlockFull::reset(J3DPEBlock* pBlock) {
- J3D_ASSERT(0xaf7, pBlock != 0, "Error : null pointer.");
+ J3D_ASSERT_NULLPTR(2807, pBlock != NULL);
if (pBlock->getFog() != NULL) {
- this->mFog.setFogInfo(pBlock->getFog()->getFogInfo());
+ mFog.setFogInfo(pBlock->getFog()->getFogInfo());
}
switch (pBlock->getType()) {
@@ -2121,21 +2192,12 @@ void J3DTexGenBlockPatched::calcPostTexMtxWithoutViewMtx(f32 const (*param_0)[4]
}
}
-void J3DTevBlock::diffTevReg() {
- // empty function
-}
+void J3DTevBlock::diffTevReg() {}
-void J3DTevBlock::diffTevStageIndirect() {
- // empty function
-}
+void J3DTevBlock::diffTevStageIndirect() {}
-void J3DTevBlock::diffTevStage() {
- // empty function
-}
+void J3DTevBlock::diffTevStage() {}
-void J3DTevBlock::diffTexCoordScale() {
- // empty function
-}
+void J3DTevBlock::diffTexCoordScale() {}
-void J3DTevBlock::diffTexNo() {
-}
+void J3DTevBlock::diffTexNo() {}