mirror of
https://github.com/zeldaret/tp
synced 2026-06-06 03:38:41 -04:00
some J3D/misc cleanup (#2628)
* some j3d cleanup * begin using uintptr_t * j3dgraphbase cleanup * j3dgraphanimator cleanup
This commit is contained in:
@@ -1,40 +1,9 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DSys
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
|
||||
#include "dol2asm.h"
|
||||
#include <dolphin/gx.h>
|
||||
#include "dolphin/os.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTexture.h"
|
||||
#include "JSystem/J3DGraphBase/J3DFifo.h"
|
||||
#include "global.h"
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DTexture.h"
|
||||
#include "JSystem/J3DGraphBase/J3DGD.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern void J3DFifoLoadTexCached(GXTexMapID, u32, GXTexCacheSize, u32, GXTexCacheSize);
|
||||
extern void makeTexCoordTable();
|
||||
extern void makeAlphaCmpTable();
|
||||
extern void makeZModeTable();
|
||||
extern void makeTevSwapTable();
|
||||
extern "C" void GXInvalidateVtxCache();
|
||||
|
||||
extern "C" extern const GXColor j3dDefaultColInfo;
|
||||
extern "C" extern u8 data_804563C8;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434AC8-80434BE4 0617E8 011C+00 1/1 151/151 486/486 .bss j3dSys */
|
||||
J3DSys j3dSys;
|
||||
|
||||
@@ -50,6 +19,31 @@ Vec J3DSys::mParentS;
|
||||
/* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */
|
||||
J3DTexCoordScaleInfo J3DSys::sTexCoordScaleTable[8];
|
||||
|
||||
/* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */
|
||||
static u8 NullTexData[0x10] ALIGN_DECL(32) = {0};
|
||||
|
||||
/* 803CD8B0-803CD8E0 02A9D0 0030+00 1/1 0/0 0/0 .data j3dIdentityMtx */
|
||||
static Mtx j3dIdentityMtx = {
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
};
|
||||
|
||||
/* 803CD8E0-803CD8F8 02AA00 0018+00 1/1 0/0 0/0 .data IndMtx */
|
||||
static Mtx23 IndMtx = {
|
||||
0.5f, 0.0f, 0.0f,
|
||||
0.0f, 0.5f, 0.0f,
|
||||
};
|
||||
|
||||
/* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */
|
||||
u32 j3dDefaultViewNo;
|
||||
|
||||
/* 80450950-80450954 0003D0 0004+00 2/2 0/0 0/0 .sdata ColorBlack */
|
||||
static GXColor ColorBlack = {0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
/* 80450954-80450958 0003D4 0004+00 2/2 0/0 0/0 .sdata ColorWhite */
|
||||
static GXColor ColorWhite = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */
|
||||
J3DSys::J3DSys() {
|
||||
makeTexCoordTable();
|
||||
@@ -63,8 +57,10 @@ J3DSys::J3DSys() {
|
||||
mMaterialMode = 0;
|
||||
mModel = NULL;
|
||||
mShape = NULL;
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mDrawBuffer); i++)
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
mDrawBuffer[i] = NULL;
|
||||
|
||||
mTexture = NULL;
|
||||
mMatPacket = NULL;
|
||||
mShapePacket = NULL;
|
||||
@@ -74,7 +70,7 @@ J3DSys::J3DSys() {
|
||||
mVtxNrm = NULL;
|
||||
mVtxCol = NULL;
|
||||
|
||||
for (u32 i = 0; i < 8; i++) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
sTexCoordScaleTable[i].field_0x00 = 1;
|
||||
sTexCoordScaleTable[i].field_0x02 = 1;
|
||||
sTexCoordScaleTable[i].field_0x04 = 0;
|
||||
@@ -84,31 +80,34 @@ J3DSys::J3DSys() {
|
||||
|
||||
/* 8030FEC0-8030FEE4 30A800 0024+00 0/0 1/1 0/0 .text loadPosMtxIndx__6J3DSysCFiUs */
|
||||
void J3DSys::loadPosMtxIndx(int addr, u16 indx) const {
|
||||
// J3DFifoLoadPosMtxIndx(indx, addr * 3); // matches debug, not retail
|
||||
J3DFifoLoadIndx(GX_LOAD_INDX_A, indx, 0xB000 | ((u16)(addr * 0x0C)));
|
||||
}
|
||||
|
||||
/* 8030FEE4-8030FF0C 30A824 0028+00 0/0 1/1 0/0 .text loadNrmMtxIndx__6J3DSysCFiUs */
|
||||
void J3DSys::loadNrmMtxIndx(int addr, u16 indx) const {
|
||||
J3DFifoLoadIndx(GX_LOAD_INDX_B, indx, 0x8000 | ((u16)((addr * 0x09) + 0x400)));
|
||||
J3DFifoLoadNrmMtxIndx3x3(indx, addr * 3);
|
||||
}
|
||||
|
||||
/* 8030FF0C-803100BC 30A84C 01B0+00 1/1 0/0 0/0 .text setTexCacheRegion__6J3DSysF15_GXTexCacheSize
|
||||
*/
|
||||
void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
J3D_ASSERT_RANGE(173, size >= 0 && size < 3);
|
||||
|
||||
const u32 kSize[] = {
|
||||
0x00008000,
|
||||
0x00020000,
|
||||
0x00080000,
|
||||
0x00000000,
|
||||
};
|
||||
|
||||
const u32 kRegionNum[] = {8, 4, 1, 0};
|
||||
|
||||
u32 regionNum = kRegionNum[size];
|
||||
mTexCacheRegionNum = regionNum;
|
||||
mTexCacheRegionNum = kRegionNum[size];
|
||||
|
||||
if (!!(mFlags & 0x80000000)) {
|
||||
for (u32 i = 0; i < regionNum; i++) {
|
||||
if (!!(i & 1)) {
|
||||
if (checkFlag(0x80000000)) {
|
||||
for (u32 i = 0; i < kRegionNum[size]; i++) {
|
||||
if (i & 1) {
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size] + 0x80000, size,
|
||||
i * kSize[size], size);
|
||||
J3DFifoLoadTexCached((GXTexMapID)i, i * kSize[size] + 0x80000, size,
|
||||
@@ -121,7 +120,7 @@ void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (u32 i = 0; i < regionNum; i++) {
|
||||
for (u32 i = 0; i < kRegionNum[size]; i++) {
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size,
|
||||
i * kSize[size] + 0x80000, size);
|
||||
J3DFifoLoadTexCached((GXTexMapID)i, i * kSize[size], size, i * kSize[size] + 0x80000,
|
||||
@@ -130,16 +129,6 @@ void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
}
|
||||
}
|
||||
|
||||
/* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */
|
||||
SECTION_DATA static u8 NullTexData[16] ALIGN_DECL(32) = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 803CD8B0-803CD8E0 02A9D0 0030+00 1/1 0/0 0/0 .data j3dIdentityMtx */
|
||||
SECTION_DATA static Mtx j3dIdentityMtx = {
|
||||
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
};
|
||||
|
||||
/* 803100BC-8031073C 30A9FC 0680+00 0/0 3/3 0/0 .text drawInit__6J3DSysFv */
|
||||
void J3DSys::drawInit() {
|
||||
GXInvalidateVtxCache();
|
||||
@@ -201,16 +190,16 @@ void J3DSys::drawInit() {
|
||||
GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo);
|
||||
GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo);
|
||||
|
||||
GXSetNumChans(data_804563C8);
|
||||
GXSetNumChans(j3dDefaultNumChans);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEXMAP; i++)
|
||||
GXSetTexCoordGen2((GXTexCoordID)i, (GXTexGenType)j3dDefaultTexCoordInfo[i].mTexGenType,
|
||||
GXSetTexCoordGen((GXTexCoordID)i, (GXTexGenType)j3dDefaultTexCoordInfo[i].mTexGenType,
|
||||
(GXTexGenSrc)j3dDefaultTexCoordInfo[i].mTexGenSrc,
|
||||
j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY);
|
||||
j3dDefaultTexCoordInfo[i].mTexGenMtx);
|
||||
|
||||
for (i = 0; i < GX_MAX_INDTEXSTAGE; i++)
|
||||
GXSetIndTexCoordScale((GXIndTexStageID)i, GX_ITS_1, GX_ITS_1);
|
||||
@@ -268,13 +257,6 @@ void J3DSys::reinitGenMode() {
|
||||
GXSetCoPlanar(GX_FALSE);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450950-80450954 0003D0 0004+00 2/2 0/0 0/0 .sdata ColorBlack */
|
||||
SECTION_SDATA static GXColor ColorBlack = {0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
/* 80450954-80450958 0003D4 0004+00 2/2 0/0 0/0 .sdata ColorWhite */
|
||||
SECTION_SDATA static GXColor ColorWhite = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 803107E8-80310894 30B128 00AC+00 1/1 0/0 0/0 .text reinitLighting__6J3DSysFv */
|
||||
void J3DSys::reinitLighting() {
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
@@ -290,14 +272,14 @@ void J3DSys::reinitLighting() {
|
||||
/* 80310894-80310998 30B1D4 0104+00 1/1 0/0 0/0 .text reinitTransform__6J3DSysFv */
|
||||
void J3DSys::reinitTransform() {
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY);
|
||||
GXSetTexCoordGen(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY);
|
||||
}
|
||||
|
||||
/* 80310998-80310A3C 30B2D8 00A4+00 2/2 0/0 0/0 .text reinitTexture__6J3DSysFv */
|
||||
@@ -341,7 +323,9 @@ void J3DSys::reinitTevStages() {
|
||||
GXSetTevKColor(GX_KCOLOR2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR3, ColorWhite);
|
||||
|
||||
for (u32 i = 0; i < GX_MAX_TEVSTAGE; i++) {
|
||||
u32 i;
|
||||
u32 numStages = GX_MAX_TEVSTAGE;
|
||||
for (i = 0; i < numStages; i++) {
|
||||
GXSetTevColorIn((GXTevStageID)i, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
@@ -360,13 +344,10 @@ void J3DSys::reinitTevStages() {
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CD8E0-803CD8F8 02AA00 0018+00 1/1 0/0 0/0 .data IndMtx */
|
||||
SECTION_DATA static Mtx23 IndMtx = {0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f};
|
||||
|
||||
/* 80310D44-80310E3C 30B684 00F8+00 1/1 0/0 0/0 .text reinitIndStages__6J3DSysFv */
|
||||
void J3DSys::reinitIndStages() {
|
||||
for (u32 i = 0; i < GX_MAX_TEVSTAGE; i++) {
|
||||
u32 i;
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++) {
|
||||
GXSetTevDirect((GXTevStageID)i);
|
||||
}
|
||||
|
||||
@@ -394,7 +375,3 @@ void J3DSys::reinitPixelProc() {
|
||||
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */
|
||||
u32 j3dDefaultViewNo;
|
||||
|
||||
Reference in New Issue
Block a user