mirror of
https://github.com/zeldaret/tp
synced 2026-08-22 06:44:53 -04:00
work on J3DMaterialFactory and J3DMaterialFactory_v21 (#2012)
This commit is contained in:
+1332
-1328
File diff suppressed because it is too large
Load Diff
@@ -1,95 +1,97 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DStruct
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 803256C4-80325718 320004 0054+00 0/0 11/11 24/24 .text __as__12J3DLightInfoFRC12J3DLightInfo */
|
||||
void J3DLightInfo::operator=(J3DLightInfo const& param_0) {
|
||||
JMath::gekko_ps_copy6(&mLightPosition, ¶m_0.mLightPosition);
|
||||
mColor = param_0.mColor;
|
||||
JMath::gekko_ps_copy6(&mCosAtten, ¶m_0.mCosAtten);
|
||||
}
|
||||
|
||||
/* 80325718-80325794 320058 007C+00 0/0 4/4 0/0 .text __as__13J3DTexMtxInfoFRC13J3DTexMtxInfo */
|
||||
void J3DTexMtxInfo::operator=(J3DTexMtxInfo const& param_0) {
|
||||
mProjection = param_0.mProjection;
|
||||
mInfo = param_0.mInfo;
|
||||
JMath::gekko_ps_copy3(&mCenter, ¶m_0.mCenter);
|
||||
mSRT = param_0.mSRT;
|
||||
JMath::gekko_ps_copy16(&mEffectMtx, ¶m_0.mEffectMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456410-80456414 004A10 0004+00 1/1 0/0 0/0 .sdata2 @409 */
|
||||
SECTION_SDATA2 static f32 lit_409 = 1.0f;
|
||||
|
||||
/* 80456414-80456418 004A14 0004+00 1/1 0/0 0/0 .sdata2 @410 */
|
||||
SECTION_SDATA2 static u8 lit_410[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80325794-803257DC 3200D4 0048+00 0/0 2/2 7/7 .text setEffectMtx__13J3DTexMtxInfoFPA4_f
|
||||
*/
|
||||
// needs inline asm?
|
||||
#ifdef NONMATCHING
|
||||
void J3DTexMtxInfo::setEffectMtx(Mtx param_0) {
|
||||
JMath::gekko_ps_copy12(&mEffectMtx, param_0);
|
||||
mEffectMtx[3][0] = 0.0f;
|
||||
mEffectMtx[3][1] = 0.0f;
|
||||
mEffectMtx[3][2] = 0.0f;
|
||||
mEffectMtx[3][3] = 1.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexMtxInfo::setEffectMtx(f32 (*param_0)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DStruct/setEffectMtx__13J3DTexMtxInfoFPA4_f.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803257DC-80325800 32011C 0024+00 0/0 5/5 0/0 .text
|
||||
* __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo */
|
||||
void J3DIndTexMtxInfo::operator=(J3DIndTexMtxInfo const& param_0) {
|
||||
JMath::gekko_ps_copy6(field_0x0, param_0.field_0x0);
|
||||
field_0x18 = param_0.field_0x18;
|
||||
}
|
||||
|
||||
/* 80325800-8032587C 320140 007C+00 0/0 6/6 0/0 .text __as__10J3DFogInfoFRC10J3DFogInfo
|
||||
*/
|
||||
void J3DFogInfo::operator=(J3DFogInfo const& param_0) {
|
||||
field_0x0 = param_0.field_0x0;
|
||||
field_0x1 = param_0.field_0x1;
|
||||
field_0x2 = param_0.field_0x2;
|
||||
field_0x4 = param_0.field_0x4;
|
||||
field_0x8 = param_0.field_0x8;
|
||||
field_0xc = param_0.field_0xc;
|
||||
field_0x10 = param_0.field_0x10;
|
||||
field_0x14 = param_0.field_0x14;
|
||||
field_0x15 = param_0.field_0x15;
|
||||
field_0x16 = param_0.field_0x16;
|
||||
field_0x17 = param_0.field_0x17;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
field_0x18[i] = param_0.field_0x18[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* 8032587C-803258A0 3201BC 0024+00 0/0 6/6 0/0 .text __as__15J3DNBTScaleInfoFRC15J3DNBTScaleInfo
|
||||
*/
|
||||
void J3DNBTScaleInfo::operator=(J3DNBTScaleInfo const& param_0) {
|
||||
mbHasScale = param_0.mbHasScale;
|
||||
mScale = param_0.mScale;
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DStruct
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 803256C4-80325718 320004 0054+00 0/0 11/11 24/24 .text __as__12J3DLightInfoFRC12J3DLightInfo */
|
||||
J3DLightInfo& J3DLightInfo::operator=(J3DLightInfo const& param_0) {
|
||||
JMath::gekko_ps_copy6(&mLightPosition, ¶m_0.mLightPosition);
|
||||
mColor = param_0.mColor;
|
||||
JMath::gekko_ps_copy6(&mCosAtten, ¶m_0.mCosAtten);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* 80325718-80325794 320058 007C+00 0/0 4/4 0/0 .text __as__13J3DTexMtxInfoFRC13J3DTexMtxInfo */
|
||||
J3DTexMtxInfo& J3DTexMtxInfo::operator=(J3DTexMtxInfo const& param_0) {
|
||||
mProjection = param_0.mProjection;
|
||||
mInfo = param_0.mInfo;
|
||||
JMath::gekko_ps_copy3(&mCenter, ¶m_0.mCenter);
|
||||
mSRT = param_0.mSRT;
|
||||
JMath::gekko_ps_copy16(&mEffectMtx, ¶m_0.mEffectMtx);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456410-80456414 004A10 0004+00 1/1 0/0 0/0 .sdata2 @409 */
|
||||
SECTION_SDATA2 static f32 lit_409 = 1.0f;
|
||||
|
||||
/* 80456414-80456418 004A14 0004+00 1/1 0/0 0/0 .sdata2 @410 */
|
||||
SECTION_SDATA2 static u8 lit_410[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80325794-803257DC 3200D4 0048+00 0/0 2/2 7/7 .text setEffectMtx__13J3DTexMtxInfoFPA4_f
|
||||
*/
|
||||
// needs inline asm?
|
||||
#ifdef NONMATCHING
|
||||
void J3DTexMtxInfo::setEffectMtx(Mtx param_0) {
|
||||
JMath::gekko_ps_copy12(&mEffectMtx, param_0);
|
||||
mEffectMtx[3][0] = 0.0f;
|
||||
mEffectMtx[3][1] = 0.0f;
|
||||
mEffectMtx[3][2] = 0.0f;
|
||||
mEffectMtx[3][3] = 1.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexMtxInfo::setEffectMtx(f32 (*param_0)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DStruct/setEffectMtx__13J3DTexMtxInfoFPA4_f.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803257DC-80325800 32011C 0024+00 0/0 5/5 0/0 .text
|
||||
* __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo */
|
||||
J3DIndTexMtxInfo& J3DIndTexMtxInfo::operator=(J3DIndTexMtxInfo const& param_0) {
|
||||
JMath::gekko_ps_copy6(field_0x0, param_0.field_0x0);
|
||||
field_0x18 = param_0.field_0x18;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* 80325800-8032587C 320140 007C+00 0/0 6/6 0/0 .text __as__10J3DFogInfoFRC10J3DFogInfo
|
||||
*/
|
||||
J3DFogInfo& J3DFogInfo::operator=(J3DFogInfo const& param_0) {
|
||||
field_0x0 = param_0.field_0x0;
|
||||
field_0x1 = param_0.field_0x1;
|
||||
field_0x2 = param_0.field_0x2;
|
||||
field_0x4 = param_0.field_0x4;
|
||||
field_0x8 = param_0.field_0x8;
|
||||
field_0xc = param_0.field_0xc;
|
||||
field_0x10 = param_0.field_0x10;
|
||||
field_0x14 = param_0.field_0x14;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
field_0x18.fogVals[i] = param_0.field_0x18.fogVals[i];
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* 8032587C-803258A0 3201BC 0024+00 0/0 6/6 0/0 .text __as__15J3DNBTScaleInfoFRC15J3DNBTScaleInfo
|
||||
*/
|
||||
J3DNBTScaleInfo& J3DNBTScaleInfo::operator=(J3DNBTScaleInfo const& param_0) {
|
||||
mbHasScale = param_0.mbHasScale;
|
||||
mScale = param_0.mScale;
|
||||
return *this;
|
||||
}
|
||||
@@ -1,403 +1,402 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DSys
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GXPixel.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.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 J3DDefaultTexCoordInfo const j3dDefaultTexCoordInfo[8];
|
||||
extern "C" extern const GXColor j3dDefaultColInfo;
|
||||
extern "C" extern u8 data_804563C8;
|
||||
extern "C" extern const GXColorS10 j3dDefaultTevColor;
|
||||
extern "C" extern const GXColor j3dDefaultTevKColor;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434AC8-80434BE4 0617E8 011C+00 1/1 151/151 486/486 .bss j3dSys */
|
||||
J3DSys j3dSys;
|
||||
|
||||
/* 80434BE4-80434C14 061904 0030+00 0/0 17/17 154/154 .bss mCurrentMtx__6J3DSys */
|
||||
Mtx J3DSys::mCurrentMtx;
|
||||
|
||||
/* 80434C14-80434C20 061934 000C+00 0/0 6/6 0/0 .bss mCurrentS__6J3DSys */
|
||||
Vec J3DSys::mCurrentS;
|
||||
|
||||
/* 80434C20-80434C2C 061940 000C+00 0/0 5/5 0/0 .bss mParentS__6J3DSys */
|
||||
Vec J3DSys::mParentS;
|
||||
|
||||
/* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */
|
||||
J3DTexCoordScaleInfo J3DSys::sTexCoordScaleTable[8];
|
||||
|
||||
/* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */
|
||||
J3DSys::J3DSys() {
|
||||
makeTexCoordTable();
|
||||
makeTevSwapTable();
|
||||
makeAlphaCmpTable();
|
||||
makeZModeTable();
|
||||
|
||||
mFlags = 0;
|
||||
MTXIdentity(mViewMtx);
|
||||
mDrawMode = 1;
|
||||
mMaterialMode = 0;
|
||||
mModel = NULL;
|
||||
mShape = NULL;
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mDrawBuffer); i++)
|
||||
mDrawBuffer[i] = NULL;
|
||||
mTexture = NULL;
|
||||
mMatPacket = NULL;
|
||||
mShapePacket = NULL;
|
||||
mModelDrawMtx = NULL;
|
||||
mModelNrmMtx = NULL;
|
||||
mVtxPos = NULL;
|
||||
mVtxNrm = NULL;
|
||||
mVtxCol = NULL;
|
||||
|
||||
for (u32 i = 0; i < 8; i++) {
|
||||
sTexCoordScaleTable[i].field_0x00 = 1;
|
||||
sTexCoordScaleTable[i].field_0x02 = 1;
|
||||
sTexCoordScaleTable[i].field_0x04 = 0;
|
||||
sTexCoordScaleTable[i].field_0x06 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8030FEC0-8030FEE4 30A800 0024+00 0/0 1/1 0/0 .text loadPosMtxIndx__6J3DSysCFiUs */
|
||||
void J3DSys::loadPosMtxIndx(int addr, u16 indx) const {
|
||||
J3DFifoLoadIndx(GX_CMD_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_CMD_LOAD_INDX_B, indx, 0x8000 | ((u16)((addr * 0x09) + 0x400)));
|
||||
}
|
||||
|
||||
/* 8030FF0C-803100BC 30A84C 01B0+00 1/1 0/0 0/0 .text setTexCacheRegion__6J3DSysF15_GXTexCacheSize
|
||||
*/
|
||||
void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
const u32 kSize[] = {
|
||||
0x00008000,
|
||||
0x00020000,
|
||||
0x00080000,
|
||||
0x00000000,
|
||||
};
|
||||
const u32 kRegionNum[] = {8, 4, 1, 0};
|
||||
|
||||
u32 regionNum = kRegionNum[size];
|
||||
mTexCacheRegionNum = regionNum;
|
||||
|
||||
if (!!(mFlags & 0x80000000)) {
|
||||
for (u32 i = 0; i < regionNum; 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,
|
||||
i * kSize[size], size);
|
||||
} else {
|
||||
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, size);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (u32 i = 0; i < regionNum; 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,
|
||||
size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */
|
||||
SECTION_DATA static u8 NullTexData[16] = {
|
||||
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();
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXSetCoPlanar(GX_FALSE);
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
GXSetColorUpdate(GX_TRUE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
|
||||
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR1, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX2, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX3, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX4, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX5, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX6, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX7, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
|
||||
GXSetNumIndStages(0);
|
||||
reinitTexture();
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
|
||||
for (u32 i = 0; i < 10; i++)
|
||||
GXLoadTexMtxImm(j3dIdentityMtx, GX_TEXMTX0 + i * 3, GX_MTX3x4);
|
||||
|
||||
Mtx23 indTexMtx = {
|
||||
{0.5f, 0.0f, 0.0f},
|
||||
{0.0f, 0.5f, 0.0f},
|
||||
};
|
||||
|
||||
u8 i;
|
||||
for (i = 0; i < 3; i++)
|
||||
GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), (f32*)indTexMtx, 1);
|
||||
|
||||
GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo);
|
||||
GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo);
|
||||
|
||||
GXSetNumChans(data_804563C8);
|
||||
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,
|
||||
(GXTexGenSrc)j3dDefaultTexCoordInfo[i].mTexGenSrc,
|
||||
j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY);
|
||||
|
||||
for (i = 0; i < GX_MAX_INDTEXSTAGE; i++)
|
||||
GXSetIndTexCoordScale((GXIndTexStageID)i, GX_ITS_1, GX_ITS_1);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVREG; i++)
|
||||
GXSetTevKColor((GXTevKColorID)i, j3dDefaultTevKColor);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVREG; i++)
|
||||
GXSetTevColorS10((GXTevRegID)i, j3dDefaultTevColor);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; 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);
|
||||
GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
}
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
GXSetTevIndirect((GXTevStageID)i, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF,
|
||||
GX_ITW_OFF, GX_ITW_OFF, GX_FALSE, GX_FALSE, GX_ITBA_OFF);
|
||||
|
||||
i_OSInitFastCast();
|
||||
setTexCacheRegion(GX_TEXCACHE_32K);
|
||||
}
|
||||
|
||||
/* 8031073C-8031079C 30B07C 0060+00 0/0 16/16 6/6 .text reinitGX__6J3DSysFv */
|
||||
void J3DSys::reinitGX() {
|
||||
reinitGenMode();
|
||||
reinitLighting();
|
||||
reinitTransform();
|
||||
reinitTexture();
|
||||
reinitTevStages();
|
||||
reinitIndStages();
|
||||
reinitPixelProc();
|
||||
GXFlush();
|
||||
}
|
||||
|
||||
/* 8031079C-803107E8 30B0DC 004C+00 1/1 0/0 0/0 .text reinitGenMode__6J3DSysFv */
|
||||
void J3DSys::reinitGenMode() {
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
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,
|
||||
GX_AF_NONE);
|
||||
GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetChanAmbColor(GX_COLOR0A0, ColorBlack);
|
||||
GXSetChanAmbColor(GX_COLOR1A1, ColorBlack);
|
||||
GXSetChanMatColor(GX_COLOR0A0, ColorWhite);
|
||||
GXSetChanMatColor(GX_COLOR1A1, ColorWhite);
|
||||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/* 80310998-80310A3C 30B2D8 00A4+00 2/2 0/0 0/0 .text reinitTexture__6J3DSysFv */
|
||||
void J3DSys::reinitTexture() {
|
||||
GXTexObj texObj;
|
||||
GXInitTexObj(&texObj, NullTexData, 4, 4, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP0);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP1);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP2);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP3);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP4);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP5);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP6);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP7);
|
||||
}
|
||||
|
||||
/* 80310A3C-80310D44 30B37C 0308+00 1/1 0/0 0/0 .text reinitTevStages__6J3DSysFv */
|
||||
void J3DSys::reinitTevStages() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
|
||||
GXSetTevColor(GX_TEVREG0, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG1, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR0, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR1, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR3, ColorWhite);
|
||||
|
||||
for (u32 i = 0; i < GX_MAX_TEVSTAGE; 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);
|
||||
GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4);
|
||||
GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1);
|
||||
GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
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++) {
|
||||
GXSetTevDirect((GXTevStageID)i);
|
||||
}
|
||||
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD2, GX_TEXMAP2);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE3, GX_TEXCOORD3, GX_TEXMAP3);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexMtx(GX_ITM_0, (f32*)IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_1, (f32*)IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_2, (f32*)IndMtx, 1);
|
||||
}
|
||||
|
||||
/* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */
|
||||
void J3DSys::reinitPixelProc() {
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetColorUpdate(GX_TRUE);
|
||||
GXSetAlphaUpdate(GX_FALSE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, ColorBlack);
|
||||
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
|
||||
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;
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DSys
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GXPixel.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.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;
|
||||
extern "C" extern const GXColorS10 j3dDefaultTevColor;
|
||||
extern "C" extern const GXColor j3dDefaultTevKColor;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434AC8-80434BE4 0617E8 011C+00 1/1 151/151 486/486 .bss j3dSys */
|
||||
J3DSys j3dSys;
|
||||
|
||||
/* 80434BE4-80434C14 061904 0030+00 0/0 17/17 154/154 .bss mCurrentMtx__6J3DSys */
|
||||
Mtx J3DSys::mCurrentMtx;
|
||||
|
||||
/* 80434C14-80434C20 061934 000C+00 0/0 6/6 0/0 .bss mCurrentS__6J3DSys */
|
||||
Vec J3DSys::mCurrentS;
|
||||
|
||||
/* 80434C20-80434C2C 061940 000C+00 0/0 5/5 0/0 .bss mParentS__6J3DSys */
|
||||
Vec J3DSys::mParentS;
|
||||
|
||||
/* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */
|
||||
J3DTexCoordScaleInfo J3DSys::sTexCoordScaleTable[8];
|
||||
|
||||
/* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */
|
||||
J3DSys::J3DSys() {
|
||||
makeTexCoordTable();
|
||||
makeTevSwapTable();
|
||||
makeAlphaCmpTable();
|
||||
makeZModeTable();
|
||||
|
||||
mFlags = 0;
|
||||
MTXIdentity(mViewMtx);
|
||||
mDrawMode = 1;
|
||||
mMaterialMode = 0;
|
||||
mModel = NULL;
|
||||
mShape = NULL;
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mDrawBuffer); i++)
|
||||
mDrawBuffer[i] = NULL;
|
||||
mTexture = NULL;
|
||||
mMatPacket = NULL;
|
||||
mShapePacket = NULL;
|
||||
mModelDrawMtx = NULL;
|
||||
mModelNrmMtx = NULL;
|
||||
mVtxPos = NULL;
|
||||
mVtxNrm = NULL;
|
||||
mVtxCol = NULL;
|
||||
|
||||
for (u32 i = 0; i < 8; i++) {
|
||||
sTexCoordScaleTable[i].field_0x00 = 1;
|
||||
sTexCoordScaleTable[i].field_0x02 = 1;
|
||||
sTexCoordScaleTable[i].field_0x04 = 0;
|
||||
sTexCoordScaleTable[i].field_0x06 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8030FEC0-8030FEE4 30A800 0024+00 0/0 1/1 0/0 .text loadPosMtxIndx__6J3DSysCFiUs */
|
||||
void J3DSys::loadPosMtxIndx(int addr, u16 indx) const {
|
||||
J3DFifoLoadIndx(GX_CMD_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_CMD_LOAD_INDX_B, indx, 0x8000 | ((u16)((addr * 0x09) + 0x400)));
|
||||
}
|
||||
|
||||
/* 8030FF0C-803100BC 30A84C 01B0+00 1/1 0/0 0/0 .text setTexCacheRegion__6J3DSysF15_GXTexCacheSize
|
||||
*/
|
||||
void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
const u32 kSize[] = {
|
||||
0x00008000,
|
||||
0x00020000,
|
||||
0x00080000,
|
||||
0x00000000,
|
||||
};
|
||||
const u32 kRegionNum[] = {8, 4, 1, 0};
|
||||
|
||||
u32 regionNum = kRegionNum[size];
|
||||
mTexCacheRegionNum = regionNum;
|
||||
|
||||
if (!!(mFlags & 0x80000000)) {
|
||||
for (u32 i = 0; i < regionNum; 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,
|
||||
i * kSize[size], size);
|
||||
} else {
|
||||
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, size);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (u32 i = 0; i < regionNum; 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,
|
||||
size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */
|
||||
SECTION_DATA static u8 NullTexData[16] = {
|
||||
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();
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXSetCoPlanar(GX_FALSE);
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
GXSetColorUpdate(GX_TRUE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
|
||||
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR1, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX2, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX3, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX4, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX5, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX6, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX7, GX_CLR_RGBA, GX_RGBA4, 7);
|
||||
|
||||
GXSetNumIndStages(0);
|
||||
reinitTexture();
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
|
||||
for (u32 i = 0; i < 10; i++)
|
||||
GXLoadTexMtxImm(j3dIdentityMtx, GX_TEXMTX0 + i * 3, GX_MTX3x4);
|
||||
|
||||
Mtx23 indTexMtx = {
|
||||
{0.5f, 0.0f, 0.0f},
|
||||
{0.0f, 0.5f, 0.0f},
|
||||
};
|
||||
|
||||
u8 i;
|
||||
for (i = 0; i < 3; i++)
|
||||
GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), (f32*)indTexMtx, 1);
|
||||
|
||||
GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo);
|
||||
GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo);
|
||||
|
||||
GXSetNumChans(data_804563C8);
|
||||
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,
|
||||
(GXTexGenSrc)j3dDefaultTexCoordInfo[i].mTexGenSrc,
|
||||
j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY);
|
||||
|
||||
for (i = 0; i < GX_MAX_INDTEXSTAGE; i++)
|
||||
GXSetIndTexCoordScale((GXIndTexStageID)i, GX_ITS_1, GX_ITS_1);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVREG; i++)
|
||||
GXSetTevKColor((GXTevKColorID)i, j3dDefaultTevKColor);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVREG; i++)
|
||||
GXSetTevColorS10((GXTevRegID)i, j3dDefaultTevColor);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; 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);
|
||||
GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
}
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
GXSetTevIndirect((GXTevStageID)i, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF,
|
||||
GX_ITW_OFF, GX_ITW_OFF, GX_FALSE, GX_FALSE, GX_ITBA_OFF);
|
||||
|
||||
i_OSInitFastCast();
|
||||
setTexCacheRegion(GX_TEXCACHE_32K);
|
||||
}
|
||||
|
||||
/* 8031073C-8031079C 30B07C 0060+00 0/0 16/16 6/6 .text reinitGX__6J3DSysFv */
|
||||
void J3DSys::reinitGX() {
|
||||
reinitGenMode();
|
||||
reinitLighting();
|
||||
reinitTransform();
|
||||
reinitTexture();
|
||||
reinitTevStages();
|
||||
reinitIndStages();
|
||||
reinitPixelProc();
|
||||
GXFlush();
|
||||
}
|
||||
|
||||
/* 8031079C-803107E8 30B0DC 004C+00 1/1 0/0 0/0 .text reinitGenMode__6J3DSysFv */
|
||||
void J3DSys::reinitGenMode() {
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
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,
|
||||
GX_AF_NONE);
|
||||
GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetChanAmbColor(GX_COLOR0A0, ColorBlack);
|
||||
GXSetChanAmbColor(GX_COLOR1A1, ColorBlack);
|
||||
GXSetChanMatColor(GX_COLOR0A0, ColorWhite);
|
||||
GXSetChanMatColor(GX_COLOR1A1, ColorWhite);
|
||||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/* 80310998-80310A3C 30B2D8 00A4+00 2/2 0/0 0/0 .text reinitTexture__6J3DSysFv */
|
||||
void J3DSys::reinitTexture() {
|
||||
GXTexObj texObj;
|
||||
GXInitTexObj(&texObj, NullTexData, 4, 4, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP0);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP1);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP2);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP3);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP4);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP5);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP6);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP7);
|
||||
}
|
||||
|
||||
/* 80310A3C-80310D44 30B37C 0308+00 1/1 0/0 0/0 .text reinitTevStages__6J3DSysFv */
|
||||
void J3DSys::reinitTevStages() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
|
||||
GXSetTevColor(GX_TEVREG0, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG1, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR0, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR1, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR3, ColorWhite);
|
||||
|
||||
for (u32 i = 0; i < GX_MAX_TEVSTAGE; 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);
|
||||
GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4);
|
||||
GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1);
|
||||
GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
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++) {
|
||||
GXSetTevDirect((GXTevStageID)i);
|
||||
}
|
||||
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD2, GX_TEXMAP2);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE3, GX_TEXCOORD3, GX_TEXMAP3);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexMtx(GX_ITM_0, (f32*)IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_1, (f32*)IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_2, (f32*)IndMtx, 1);
|
||||
}
|
||||
|
||||
/* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */
|
||||
void J3DSys::reinitPixelProc() {
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetColorUpdate(GX_TRUE);
|
||||
GXSetAlphaUpdate(GX_FALSE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, ColorBlack);
|
||||
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
|
||||
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;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,413 +1,409 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DMaterialFactory_v21
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DTexMtxInfo {
|
||||
/* 80325718 */ void operator=(J3DTexMtxInfo const&);
|
||||
};
|
||||
|
||||
struct J3DTevStageInfo {};
|
||||
|
||||
struct J3DTevStage {
|
||||
/* 8000E230 */ J3DTevStage();
|
||||
/* 8003AACC */ J3DTevStage(J3DTevStageInfo const&);
|
||||
};
|
||||
|
||||
struct J3DMaterial {
|
||||
/* 803157A0 */ void createColorBlock(u32);
|
||||
/* 803159A0 */ void createTexGenBlock(u32);
|
||||
/* 80315B04 */ void createTevBlock(int);
|
||||
/* 80315E78 */ void createIndBlock(int);
|
||||
/* 80315F60 */ void createPEBlock(u32, u32);
|
||||
/* 80316240 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DFogInfo {
|
||||
/* 80325800 */ void operator=(J3DFogInfo const&);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21();
|
||||
extern "C" void countUniqueMaterials__22J3DMaterialFactory_v21Fv();
|
||||
extern "C" void countTexGens__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void countStages__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl();
|
||||
extern "C" void newMatColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newColorChanNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newColorChan__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTexGenNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTexCoord__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTexMtx__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newCullMode__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTexNo__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevOrder__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevKColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevStageNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTevStage__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevSwapModeTable__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newFog__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newAlphaComp__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newBlend__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newZMode__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newZCompLoc__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newDither__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newNBTScale__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void func_80334118(void* _this, void const*, void const*);
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__11J3DTevStageFv();
|
||||
extern "C" void __ct__11J3DTevStageFRC15J3DTevStageInfo();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void func_802F41E8(void* _this, void const*, void const*);
|
||||
extern "C" void func_802F4260(void* _this, void const*, void const*);
|
||||
extern "C" void func_802F4278(void* _this, void const*, void const*);
|
||||
extern "C" void func_802F4290(void* _this, void const*, void const*);
|
||||
extern "C" void func_802F42C0(void* _this, void const*, void const*);
|
||||
extern "C" void createColorBlock__11J3DMaterialFUl();
|
||||
extern "C" void createTexGenBlock__11J3DMaterialFUl();
|
||||
extern "C" void createTevBlock__11J3DMaterialFi();
|
||||
extern "C" void createIndBlock__11J3DMaterialFi();
|
||||
extern "C" void createPEBlock__11J3DMaterialFUlUl();
|
||||
extern "C" void initialize__11J3DMaterialFv();
|
||||
extern "C" void __as__13J3DTexMtxInfoFRC13J3DTexMtxInfo();
|
||||
extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo();
|
||||
extern "C" void func_80332C24(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C3C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C54(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C6C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C84(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C9C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CB4(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CCC(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CE4(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CFC(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D14(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D2C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D5C(void* _this, void const*, void const*);
|
||||
extern "C" void _savegpr_19();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_19();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 const j3dDefaultTexCoordInfo[32];
|
||||
extern "C" extern u8 const j3dDefaultFogInfo[44];
|
||||
extern "C" extern u8 const j3dDefaultNBTScaleInfo[16];
|
||||
extern "C" extern void* __vt__11J3DMaterial[12];
|
||||
extern "C" extern u32 j3dDefaultTevOrderInfoNull;
|
||||
extern "C" extern u32 j3dDefaultTevSwapModeTable;
|
||||
extern "C" extern u32 j3dDefaultBlendInfo;
|
||||
extern "C" extern u8 j3dDefaultColorChanInfo[8];
|
||||
extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80332DA4-80332F84 32D6E4 01E0+00 0/0 2/2 0/0 .text
|
||||
* __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21 */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMaterialFactory_v21::J3DMaterialFactory_v21(J3DMaterialBlock_v21 const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/__ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80332F84-80332FA8 32D8C4 0024+00 0/0 1/1 0/0 .text
|
||||
* countUniqueMaterials__22J3DMaterialFactory_v21Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u16 J3DMaterialFactory_v21::countUniqueMaterials() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/countUniqueMaterials__22J3DMaterialFactory_v21Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80332FA8-80332FE0 32D8E8 0038+00 1/1 0/0 0/0 .text countTexGens__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::countTexGens(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/countTexGens__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80332FE0-80333068 32D920 0088+00 1/1 0/0 0/0 .text countStages__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::countStages(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/countStages__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333068-803337D8 32D9A8 0770+00 0/0 2/2 0/0 .text
|
||||
* create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMaterial* J3DMaterialFactory_v21::create(J3DMaterial* param_0, int param_1, u32 param_2) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804564B8-804564BC 004AB8 0004+00 1/1 0/0 0/0 .sdata2 @1130 */
|
||||
SECTION_SDATA2 static u32 lit_1130 = 0xFFFFFFFF;
|
||||
|
||||
/* 803337D8-80333834 32E118 005C+00 1/1 0/0 0/0 .text newMatColor__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newMatColor(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newMatColor__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333834-8033386C 32E174 0038+00 1/1 0/0 0/0 .text newColorChanNum__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newColorChanNum(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newColorChanNum__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8033386C-80333A10 32E1AC 01A4+00 1/1 0/0 0/0 .text newColorChan__22J3DMaterialFactory_v21CFii
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newColorChan(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newColorChan__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333A10-80333A48 32E350 0038+00 1/1 0/0 0/0 .text newTexGenNum__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTexGenNum(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTexGenNum__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333A48-80333AA8 32E388 0060+00 1/1 0/0 0/0 .text newTexCoord__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTexCoord(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTexCoord__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333AA8-80333B30 32E3E8 0088+00 1/1 0/0 0/0 .text newTexMtx__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTexMtx(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTexMtx__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333B30-80333B70 32E470 0040+00 1/1 0/0 0/0 .text newCullMode__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newCullMode(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newCullMode__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333B70-80333BB8 32E4B0 0048+00 1/1 0/0 0/0 .text newTexNo__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTexNo(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTexNo__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333BB8-80333C04 32E4F8 004C+00 1/1 0/0 0/0 .text newTevOrder__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevOrder(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevOrder__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456BC0-80456BC4 000060 0004+00 1/1 0/0 0/0 .sbss2 @1299 */
|
||||
SECTION_SBSS2 static u8 lit_1299[4];
|
||||
|
||||
/* 80456BC4-80456BC8 000064 0004+00 1/1 0/0 0/0 .sbss2 None */
|
||||
SECTION_SBSS2 static u8 data_80456BC4[4];
|
||||
|
||||
/* 80333C04-80333C74 32E544 0070+00 1/1 0/0 0/0 .text newTevColor__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevColor(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevColor__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804564BC-804564C0 004ABC 0004+00 1/1 0/0 0/0 .sdata2 @1317 */
|
||||
SECTION_SDATA2 static u32 lit_1317 = 0xFFFFFFFF;
|
||||
|
||||
/* 80333C74-80333CD0 32E5B4 005C+00 1/1 0/0 0/0 .text newTevKColor__22J3DMaterialFactory_v21CFii
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevKColor(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevKColor__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333CD0-80333D08 32E610 0038+00 1/1 0/0 0/0 .text newTevStageNum__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevStageNum(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevStageNum__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333D08-80333D68 32E648 0060+00 1/1 0/0 0/0 .text newTevStage__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevStage(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevStage__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333D68-80333E04 32E6A8 009C+00 1/1 0/0 0/0 .text
|
||||
* newTevSwapModeTable__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newTevSwapModeTable(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevSwapModeTable__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333E04-80333EE0 32E744 00DC+00 1/1 0/0 0/0 .text newFog__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newFog(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newFog__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333EE0-80333F60 32E820 0080+00 1/1 0/0 0/0 .text newAlphaComp__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newAlphaComp(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newAlphaComp__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333F60-80333FA4 32E8A0 0044+00 1/1 0/0 0/0 .text newBlend__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newBlend(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newBlend__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333FA4-80334004 32E8E4 0060+00 1/1 0/0 0/0 .text newZMode__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newZMode(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newZMode__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80334004-8033403C 32E944 0038+00 1/1 0/0 0/0 .text newZCompLoc__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newZCompLoc(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newZCompLoc__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8033403C-80334074 32E97C 0038+00 1/1 0/0 0/0 .text newDither__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newDither(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newDither__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80334074-80334118 32E9B4 00A4+00 1/1 0/0 0/0 .text newNBTScale__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialFactory_v21::newNBTScale(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newNBTScale__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80334118-80334130 32EA58 0018+00 1/1 0/0 0/0 .text
|
||||
* JSUConvertOffsetToPtr<23J3DMaterialInitData_v21>__FPCvPCv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
extern "C" asm void func_80334118(void* _this, void const* param_0, void const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/func_80334118.s"
|
||||
}
|
||||
#pragma pop
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DMaterialFactory_v21
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JSupport/JSupport.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21();
|
||||
extern "C" void countUniqueMaterials__22J3DMaterialFactory_v21Fv();
|
||||
extern "C" void countTexGens__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void countStages__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl();
|
||||
extern "C" void newMatColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newColorChanNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newColorChan__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTexGenNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTexCoord__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTexMtx__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newCullMode__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTexNo__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevOrder__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevKColor__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevStageNum__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newTevStage__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newTevSwapModeTable__22J3DMaterialFactory_v21CFii();
|
||||
extern "C" void newFog__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newAlphaComp__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newBlend__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newZMode__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newZCompLoc__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newDither__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void newNBTScale__22J3DMaterialFactory_v21CFi();
|
||||
extern "C" void func_80334118(void* _this, void const*, void const*);
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__11J3DTevStageFv();
|
||||
extern "C" void __ct__11J3DTevStageFRC15J3DTevStageInfo();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" GXColorS10* func_802F41E8(void const*, void const*);
|
||||
extern "C" u8* func_802F4260(void const*, void const*);
|
||||
extern "C" GXColor* func_802F4278(void const*, void const*);
|
||||
extern "C" GXCullMode* func_802F4290(void const*, void const*);
|
||||
extern "C" u16* func_802F42C0(void const*, void const*);
|
||||
extern "C" void createColorBlock__11J3DMaterialFUl();
|
||||
extern "C" void createTexGenBlock__11J3DMaterialFUl();
|
||||
extern "C" void createTevBlock__11J3DMaterialFi();
|
||||
extern "C" void createIndBlock__11J3DMaterialFi();
|
||||
extern "C" void createPEBlock__11J3DMaterialFUlUl();
|
||||
extern "C" void initialize__11J3DMaterialFv();
|
||||
extern "C" void __as__13J3DTexMtxInfoFRC13J3DTexMtxInfo();
|
||||
extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo();
|
||||
extern "C" void func_80332C24(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C3C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C54(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C6C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C84(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332C9C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CB4(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CCC(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CE4(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332CFC(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D14(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D2C(void* _this, void const*, void const*);
|
||||
extern "C" void func_80332D5C(void* _this, void const*, void const*);
|
||||
extern "C" void _savegpr_19();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_19();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__11J3DMaterial[12];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80332DA4-80332F84 32D6E4 01E0+00 0/0 2/2 0/0 .text
|
||||
* __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21 */
|
||||
J3DMaterialFactory_v21::J3DMaterialFactory_v21(J3DMaterialBlock_v21 const& i_block) {
|
||||
mMaterialNum = i_block.mMaterialNum;
|
||||
mpMaterialInitData = JSUConvertOffsetToPtr<J3DMaterialInitData_v21>(&i_block, i_block.mpMaterialInitData);
|
||||
// mpMaterialID = JSUConvertOffsetToPtr<u16>(&i_block, i_block.mpMaterialID);
|
||||
mpMaterialID = func_802F42C0(&i_block, i_block.mpMaterialID);
|
||||
// mpCullMode = JSUConvertOffsetToPtr<GXCullMode>(&i_block, i_block.mpCullMode);
|
||||
mpCullMode = func_802F4290(&i_block, i_block.mpCullMode);
|
||||
// mpMatColor = JSUConvertOffsetToPtr<GXColor>(&i_block, i_block.mpMatColor);
|
||||
mpMatColor = func_802F4278(&i_block, i_block.mpMatColor);
|
||||
// mpColorChanNum = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpColorChanNum);
|
||||
mpColorChanNum = func_802F4260(&i_block, i_block.mpColorChanNum);
|
||||
mpColorChanInfo = JSUConvertOffsetToPtr<J3DColorChanInfo>(&i_block, i_block.mpColorChanInfo);
|
||||
// mpTexGenNum = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpTexGenNum);
|
||||
mpTexGenNum = func_802F4260(&i_block, i_block.mpTexGenNum);
|
||||
mpTexCoordInfo = JSUConvertOffsetToPtr<J3DTexCoordInfo>(&i_block, i_block.mpTexCoordInfo);
|
||||
mpTexCoord2Info = JSUConvertOffsetToPtr<J3DTexCoord2Info>(&i_block, i_block.mpTexCoord2Info);
|
||||
mpTexMtxInfo = JSUConvertOffsetToPtr<J3DTexMtxInfo>(&i_block, i_block.mpTexMtxInfo);
|
||||
field_0x28 = JSUConvertOffsetToPtr<J3DTexMtxInfo>(&i_block, i_block.field_0x38);
|
||||
// mpTexNo = JSUConvertOffsetToPtr<u16>(&i_block, i_block.mpTexNo);
|
||||
mpTexNo = func_802F42C0(&i_block, i_block.mpTexNo);
|
||||
mpTevOrderInfo = JSUConvertOffsetToPtr<J3DTevOrderInfo>(&i_block, i_block.mpTevOrderInfo);
|
||||
// mpTevColor = JSUConvertOffsetToPtr<GXColorS10>(&i_block, i_block.mpTevColor);
|
||||
mpTevColor = func_802F41E8(&i_block, i_block.mpTevColor);
|
||||
// mpTevKColor = JSUConvertOffsetToPtr<GXColor>(&i_block, i_block.mpTevKColor);
|
||||
mpTevKColor = func_802F4278(&i_block, i_block.mpTevKColor);
|
||||
// mpTevStageNum = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpTevStageNum);
|
||||
mpTevStageNum = func_802F4260(&i_block, i_block.mpTevStageNum);
|
||||
mpTevStageInfo = JSUConvertOffsetToPtr<J3DTevStageInfo>(&i_block, i_block.mpTevStageInfo);
|
||||
mpTevSwapModeInfo = JSUConvertOffsetToPtr<J3DTevSwapModeInfo>(&i_block, i_block.mpTevSwapModeInfo);
|
||||
mpTevSwapModeTableInfo = JSUConvertOffsetToPtr<J3DTevSwapModeTableInfo>(&i_block, i_block.mpTevSwapModeTableInfo);
|
||||
mpFogInfo = JSUConvertOffsetToPtr<J3DFogInfo>(&i_block, i_block.mpFogInfo);
|
||||
mpAlphaCompInfo = JSUConvertOffsetToPtr<J3DAlphaCompInfo>(&i_block, i_block.mpAlphaCompInfo);
|
||||
mpBlendInfo = JSUConvertOffsetToPtr<J3DBlendInfo>(&i_block, i_block.mpBlendInfo);
|
||||
mpZModeInfo = JSUConvertOffsetToPtr<J3DZModeInfo>(&i_block, i_block.mpZModeInfo);
|
||||
// mpZCompLoc = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpZCompLoc);
|
||||
mpZCompLoc = func_802F4260(&i_block, i_block.mpZCompLoc);
|
||||
// mpDither = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpDither);
|
||||
mpDither = func_802F4260(&i_block, i_block.mpDither);
|
||||
mpNBTScaleInfo = JSUConvertOffsetToPtr<J3DNBTScaleInfo>(&i_block, i_block.mpNBTScaleInfo);
|
||||
}
|
||||
|
||||
/* 80332F84-80332FA8 32D8C4 0024+00 0/0 1/1 0/0 .text
|
||||
* countUniqueMaterials__22J3DMaterialFactory_v21Fv */
|
||||
u16 J3DMaterialFactory_v21::countUniqueMaterials() {
|
||||
u16 i;
|
||||
for (i = 0; i < mMaterialNum; i++) {
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
/* 80332FA8-80332FE0 32D8E8 0038+00 1/1 0/0 0/0 .text countTexGens__22J3DMaterialFactory_v21CFi */
|
||||
u32 J3DMaterialFactory_v21::countTexGens(int i_idx) const {
|
||||
u8 tex_gen_num_index = mpMaterialInitData[mpMaterialID[i_idx]].mTexGenNumIdx;
|
||||
if (tex_gen_num_index != 0xff) {
|
||||
return mpTexGenNum[tex_gen_num_index];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80332FE0-80333068 32D920 0088+00 1/1 0/0 0/0 .text countStages__22J3DMaterialFactory_v21CFi */
|
||||
u32 J3DMaterialFactory_v21::countStages(int i_idx) const {
|
||||
J3DMaterialInitData_v21* init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
u32 count1 = 0;
|
||||
u32 count2 = 0;
|
||||
u8 tev_stage_num_index = init_data->mTevStageNumIdx;
|
||||
if (tev_stage_num_index != 0xff) {
|
||||
count2 = mpTevStageNum[tev_stage_num_index];
|
||||
}
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (init_data->mTexNoIdx[i] != 0xffff) {
|
||||
count1++;
|
||||
}
|
||||
}
|
||||
if (count2 != count1 && count1 != 0) {
|
||||
if (count2 > count1) {
|
||||
return count2;
|
||||
} else {
|
||||
return count1;
|
||||
}
|
||||
}
|
||||
return count2;
|
||||
}
|
||||
|
||||
/* 80333068-803337D8 32D9A8 0770+00 0/0 2/2 0/0 .text
|
||||
* create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMaterial* J3DMaterialFactory_v21::create(J3DMaterial* param_0, int param_1, u32 param_2) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804564B8-804564BC 004AB8 0004+00 1/1 0/0 0/0 .sdata2 @1130 */
|
||||
SECTION_SDATA2 static u32 lit_1130 = 0xFFFFFFFF;
|
||||
|
||||
/* 803337D8-80333834 32E118 005C+00 1/1 0/0 0/0 .text newMatColor__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DGXColor J3DMaterialFactory_v21::newMatColor(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newMatColor__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333834-8033386C 32E174 0038+00 1/1 0/0 0/0 .text newColorChanNum__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
u8 J3DMaterialFactory_v21::newColorChanNum(int i_idx) const {
|
||||
u8 color_chan_num_index = mpMaterialInitData[mpMaterialID[i_idx]].mColorChanNumIdx;
|
||||
if (color_chan_num_index != 0xff) {
|
||||
return mpColorChanNum[color_chan_num_index];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8033386C-80333A10 32E1AC 01A4+00 1/1 0/0 0/0 .text newColorChan__22J3DMaterialFactory_v21CFii
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DColorChan J3DMaterialFactory_v21::newColorChan(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newColorChan__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333A10-80333A48 32E350 0038+00 1/1 0/0 0/0 .text newTexGenNum__22J3DMaterialFactory_v21CFi */
|
||||
u32 J3DMaterialFactory_v21::newTexGenNum(int i_idx) const {
|
||||
u8 tex_gen_num_index = mpMaterialInitData[mpMaterialID[i_idx]].mTexGenNumIdx;
|
||||
if (tex_gen_num_index != 0xff) {
|
||||
return mpTexGenNum[tex_gen_num_index];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333A48-80333AA8 32E388 0060+00 1/1 0/0 0/0 .text newTexCoord__22J3DMaterialFactory_v21CFii */
|
||||
J3DTexCoord J3DMaterialFactory_v21::newTexCoord(int i_idx, int i_no) const {
|
||||
u16 tex_coord_index = mpMaterialInitData[mpMaterialID[i_idx]].mTexCoordIdx[i_no];
|
||||
if (tex_coord_index != 0xffff) {
|
||||
return J3DTexCoord(mpTexCoordInfo[tex_coord_index]);
|
||||
} else {
|
||||
return J3DTexCoord();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333AA8-80333B30 32E3E8 0088+00 1/1 0/0 0/0 .text newTexMtx__22J3DMaterialFactory_v21CFii */
|
||||
J3DTexMtx* J3DMaterialFactory_v21::newTexMtx(int i_idx, int i_no) const {
|
||||
J3DTexMtx* tex_mtx = NULL;
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mTexMtxIdx[i_no] != 0xffff) {
|
||||
tex_mtx = new J3DTexMtx(mpTexMtxInfo[mtl_init_data->mTexMtxIdx[i_no]]);
|
||||
}
|
||||
return tex_mtx;
|
||||
}
|
||||
|
||||
/* 80333B30-80333B70 32E470 0040+00 1/1 0/0 0/0 .text newCullMode__22J3DMaterialFactory_v21CFi */
|
||||
u8 J3DMaterialFactory_v21::newCullMode(int i_idx) const {
|
||||
u8 cull_mode_index = mpMaterialInitData[mpMaterialID[i_idx]].mCullModeIdx;
|
||||
if (cull_mode_index != 0xff) {
|
||||
return mpCullMode[cull_mode_index];
|
||||
} else {
|
||||
return 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333B70-80333BB8 32E4B0 0048+00 1/1 0/0 0/0 .text newTexNo__22J3DMaterialFactory_v21CFii */
|
||||
u16 J3DMaterialFactory_v21::newTexNo(int i_idx, int i_no) const {
|
||||
u16 tex_no_index = mpMaterialInitData[mpMaterialID[i_idx]].mTexNoIdx[i_no];
|
||||
if (tex_no_index != 0xffff) {
|
||||
return mpTexNo[tex_no_index];
|
||||
} else {
|
||||
return 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333BB8-80333C04 32E4F8 004C+00 1/1 0/0 0/0 .text newTevOrder__22J3DMaterialFactory_v21CFii */
|
||||
J3DTevOrder J3DMaterialFactory_v21::newTevOrder(int i_idx, int i_no) const {
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mTevOrderIdx[i_no] != 0xffff) {
|
||||
return J3DTevOrder(mpTevOrderInfo[mtl_init_data->mTevOrderIdx[i_no]]);
|
||||
} else {
|
||||
return J3DTevOrder();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80456BC0-80456BC4 000060 0004+00 1/1 0/0 0/0 .sbss2 @1299 */
|
||||
SECTION_SBSS2 static GXColorS10 defaultTevColor;
|
||||
|
||||
/* 80333C04-80333C74 32E544 0070+00 1/1 0/0 0/0 .text newTevColor__22J3DMaterialFactory_v21CFii */
|
||||
J3DGXColorS10 J3DMaterialFactory_v21::newTevColor(int i_idx, int i_no) const {
|
||||
J3DGXColorS10 dflt = defaultTevColor;
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mTevColorIdx[i_no] != 0xffff) {
|
||||
return mpTevColor[mtl_init_data->mTevColorIdx[i_no]];
|
||||
} else {
|
||||
return dflt;
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804564BC-804564C0 004ABC 0004+00 1/1 0/0 0/0 .sdata2 @1317 */
|
||||
SECTION_SDATA2 static u32 lit_1317 = 0xFFFFFFFF;
|
||||
|
||||
/* 80333C74-80333CD0 32E5B4 005C+00 1/1 0/0 0/0 .text newTevKColor__22J3DMaterialFactory_v21CFii
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DGXColor J3DMaterialFactory_v21::newTevKColor(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevKColor__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333CD0-80333D08 32E610 0038+00 1/1 0/0 0/0 .text newTevStageNum__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
u8 J3DMaterialFactory_v21::newTevStageNum(int i_idx) const {
|
||||
u8 tev_stage_num_index = mpMaterialInitData[mpMaterialID[i_idx]].mTevStageNumIdx;
|
||||
if (tev_stage_num_index != 0xff) {
|
||||
return mpTevStageNum[tev_stage_num_index];
|
||||
} else {
|
||||
return 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333D08-80333D68 32E648 0060+00 1/1 0/0 0/0 .text newTevStage__22J3DMaterialFactory_v21CFii */
|
||||
J3DTevStage J3DMaterialFactory_v21::newTevStage(int i_idx, int i_no) const {
|
||||
u16 tev_stage_index = mpMaterialInitData[mpMaterialID[i_idx]].mTevStageIdx[i_no];
|
||||
if (tev_stage_index != 0xffff) {
|
||||
return J3DTevStage(mpTevStageInfo[tev_stage_index]);
|
||||
} else {
|
||||
return J3DTevStage();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333D68-80333E04 32E6A8 009C+00 1/1 0/0 0/0 .text
|
||||
* newTevSwapModeTable__22J3DMaterialFactory_v21CFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTevSwapModeTable J3DMaterialFactory_v21::newTevSwapModeTable(int param_0, int param_1) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevSwapModeTable__22J3DMaterialFactory_v21CFii.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333E04-80333EE0 32E744 00DC+00 1/1 0/0 0/0 .text newFog__22J3DMaterialFactory_v21CFi
|
||||
*/
|
||||
J3DFog J3DMaterialFactory_v21::newFog(int i_idx) const {
|
||||
J3DFog fog;
|
||||
u16 fog_index = mpMaterialInitData[mpMaterialID[i_idx]].mFogIdx;
|
||||
if (fog_index != 0xffff) {
|
||||
fog.setFogInfo(mpFogInfo[fog_index]);
|
||||
}
|
||||
return fog;
|
||||
}
|
||||
|
||||
/* 80333EE0-80333F60 32E820 0080+00 1/1 0/0 0/0 .text newAlphaComp__22J3DMaterialFactory_v21CFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAlphaComp J3DMaterialFactory_v21::newAlphaComp(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newAlphaComp__22J3DMaterialFactory_v21CFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80333F60-80333FA4 32E8A0 0044+00 1/1 0/0 0/0 .text newBlend__22J3DMaterialFactory_v21CFi */
|
||||
J3DBlend J3DMaterialFactory_v21::newBlend(int i_idx) const {
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mBlendIdx != 0xffff) {
|
||||
return J3DBlend(mpBlendInfo[mtl_init_data->mBlendIdx]);
|
||||
} else {
|
||||
return J3DBlend(j3dDefaultBlendInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80333FA4-80334004 32E8E4 0060+00 1/1 0/0 0/0 .text newZMode__22J3DMaterialFactory_v21CFi */
|
||||
J3DZMode J3DMaterialFactory_v21::newZMode(int i_idx) const {
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mZModeIdx != 0xff) {
|
||||
return J3DZMode(mpZModeInfo[mtl_init_data->mZModeIdx]);
|
||||
} else {
|
||||
return J3DZMode();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80334004-8033403C 32E944 0038+00 1/1 0/0 0/0 .text newZCompLoc__22J3DMaterialFactory_v21CFi */
|
||||
u8 J3DMaterialFactory_v21::newZCompLoc(int i_idx) const {
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mZCompLocIdx != 0xff){
|
||||
return mpZCompLoc[mtl_init_data->mZCompLocIdx];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8033403C-80334074 32E97C 0038+00 1/1 0/0 0/0 .text newDither__22J3DMaterialFactory_v21CFi */
|
||||
u8 J3DMaterialFactory_v21::newDither(int i_idx) const {
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mDitherIdx != 0xff){
|
||||
return mpDither[mtl_init_data->mDitherIdx];
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80334074-80334118 32E9B4 00A4+00 1/1 0/0 0/0 .text newNBTScale__22J3DMaterialFactory_v21CFi */
|
||||
J3DNBTScale J3DMaterialFactory_v21::newNBTScale(int i_idx) const {
|
||||
J3DNBTScale dflt(j3dDefaultNBTScaleInfo);
|
||||
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
|
||||
if (mtl_init_data->mNBTScaleIdx != 0xffff) {
|
||||
return J3DNBTScale(mpNBTScaleInfo[mtl_init_data->mNBTScaleIdx]);
|
||||
} else {
|
||||
return dflt;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user