diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2023-12-27 20:17:39 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-28 02:17:39 +0100 |
| commit | 9780adcc4eb5d0f13d33762e6ebaba5e0279e1d7 (patch) | |
| tree | 3b0b179ed373c2c83468908ff07fbb2b35067f00 /libs | |
| parent | 83969f6dc159e572186cfd5c0427786b462243d0 (diff) | |
work on J3DMaterialFactory and J3DMaterialFactory_v21 (#2012)
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DMaterial.cpp | 2660 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DStruct.cpp | 190 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DSys.cpp | 805 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DTevs.cpp | 1378 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp | 1403 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp | 822 |
6 files changed, 3578 insertions, 3680 deletions
diff --git a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp index 16175bd8b8..04e1367dac 100644 --- a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp @@ -1,1328 +1,1332 @@ -// -// Generated By: dol2asm -// Translation Unit: J3DMaterial -// - -#include "JSystem/J3DGraphBase/J3DMaterial.h" -#include "JSystem/J3DGraphBase/J3DGD.h" -#include "dol2asm.h" - -// -// Forward References: -// - -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 calcSizeColorBlock__11J3DMaterialFUl(); -extern "C" void calcSizeTexGenBlock__11J3DMaterialFUl(); -extern "C" void calcSizeTevBlock__11J3DMaterialFi(); -extern "C" void calcSizeIndBlock__11J3DMaterialFi(); -extern "C" void calcSizePEBlock__11J3DMaterialFUlUl(); -extern "C" void initialize__11J3DMaterialFv(); -extern "C" void countDLSize__11J3DMaterialFv(); -extern "C" void makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj(); -extern "C" void makeDisplayList__11J3DMaterialFv(); -extern "C" void makeSharedDisplayList__11J3DMaterialFv(); -extern "C" void load__11J3DMaterialFv(); -extern "C" void loadSharedDL__11J3DMaterialFv(); -extern "C" void patch__11J3DMaterialFv(); -extern "C" void diff__11J3DMaterialFUl(); -extern "C" void calc__11J3DMaterialFPA4_Cf(); -extern "C" void calcDiffTexMtx__11J3DMaterialFPA4_Cf(); -extern "C" void setCurrentMtx__11J3DMaterialFv(); -extern "C" void calcCurrentMtx__11J3DMaterialFv(); -extern "C" void copy__11J3DMaterialFP11J3DMaterial(); -extern "C" void reset__11J3DMaterialFv(); -extern "C" void change__11J3DMaterialFv(); -extern "C" void newSharedDisplayList__11J3DMaterialFUl(); -extern "C" void newSingleSharedDisplayList__11J3DMaterialFUl(); -extern "C" void initialize__18J3DPatchedMaterialFv(); -extern "C" void makeDisplayList__18J3DPatchedMaterialFv(); -extern "C" void makeSharedDisplayList__18J3DPatchedMaterialFv(); -extern "C" void load__18J3DPatchedMaterialFv(); -extern "C" void loadSharedDL__18J3DPatchedMaterialFv(); -extern "C" void reset__18J3DPatchedMaterialFv(); -extern "C" void change__18J3DPatchedMaterialFv(); -extern "C" void initialize__17J3DLockedMaterialFv(); -extern "C" void makeDisplayList__17J3DLockedMaterialFv(); -extern "C" void makeSharedDisplayList__17J3DLockedMaterialFv(); -extern "C" void load__17J3DLockedMaterialFv(); -extern "C" void loadSharedDL__17J3DLockedMaterialFv(); -extern "C" void patch__17J3DLockedMaterialFv(); -extern "C" void diff__17J3DLockedMaterialFUl(); -extern "C" void calc__17J3DLockedMaterialFPA4_Cf(); -extern "C" void reset__17J3DLockedMaterialFv(); -extern "C" void change__17J3DLockedMaterialFv(); -extern "C" void __dt__21J3DColorBlockLightOffFv(); -extern "C" void __dt__13J3DColorBlockFv(); -extern "C" void __dt__21J3DTexGenBlockPatchedFv(); -extern "C" void __dt__14J3DTexGenBlockFv(); -extern "C" void __dt__11J3DTevBlockFv(); -extern "C" void __dt__11J3DIndBlockFv(); -extern "C" void __dt__10J3DPEBlockFv(); -extern "C" bool countDLSize__14J3DTexGenBlockFv(); -extern "C" bool countDLSize__13J3DColorBlockFv(); -extern "C" bool countDLSize__11J3DTevBlockFv(); -extern "C" bool countDLSize__11J3DIndBlockFv(); -extern "C" bool countDLSize__10J3DPEBlockFv(); -extern "C" void load__13J3DColorBlockFv(); -extern "C" s32 getCullMode__13J3DColorBlockCFv(); -extern "C" void load__11J3DTevBlockFv(); -extern "C" J3DNBTScale* getNBTScale__14J3DTexGenBlockFv(); -extern "C" void patch__13J3DColorBlockFv(); -extern "C" void diff__13J3DColorBlockFUl(); -extern "C" void diff__10J3DPEBlockFUl(); -extern "C" void reset__10J3DPEBlockFP10J3DPEBlock(); -extern "C" void reset__11J3DIndBlockFP11J3DIndBlock(); -extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0); -extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock(); -extern "C" void reset__13J3DColorBlockFP13J3DColorBlock(); -extern "C" void diffFog__10J3DPEBlockFv(); -extern "C" void diffBlend__10J3DPEBlockFv(); -extern "C" void setFog__10J3DPEBlockFP6J3DFog(); -extern "C" void setFog__10J3DPEBlockF6J3DFog(); -extern "C" void setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp(); -extern "C" void setBlend__10J3DPEBlockFPC8J3DBlend(); -extern "C" void setZMode__10J3DPEBlockFPC8J3DZMode(); -extern "C" void setZCompLoc__10J3DPEBlockFPCUc(); -extern "C" void setDither__10J3DPEBlockFUc(); -extern "C" void setDither__10J3DPEBlockFPCUc(); -extern "C" bool getDither__10J3DPEBlockCFv(); -extern "C" bool getFogOffset__10J3DPEBlockCFv(); -extern "C" void setFogOffset__10J3DPEBlockFUl(); -extern "C" void diff__15J3DIndBlockNullFUl(); -extern "C" void load__15J3DIndBlockNullFv(); -extern "C" void reset__15J3DIndBlockNullFP11J3DIndBlock(); -extern "C" void getType__15J3DIndBlockNullFv(); -extern "C" void __dt__15J3DIndBlockNullFv(); -extern "C" void setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder(); -extern "C" void setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder(); -extern "C" void setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx(); -extern "C" void setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale(); -extern "C" void setTexGenNum__14J3DTexGenBlockFPCUl(); -extern "C" void setNBTScale__14J3DTexGenBlockF11J3DNBTScale(); -extern "C" void setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale(); -extern "C" bool getTexMtxOffset__14J3DTexGenBlockCFv(); -extern "C" void setTexMtxOffset__14J3DTexGenBlockFUl(); -extern "C" void patchMatColor__13J3DColorBlockFv(); -extern "C" void diffAmbColor__13J3DColorBlockFv(); -extern "C" void diffMatColor__13J3DColorBlockFv(); -extern "C" void diffColorChan__13J3DColorBlockFv(); -extern "C" void diffLightObj__13J3DColorBlockFUl(); -extern "C" void setMatColor__13J3DColorBlockFUlPC10J3DGXColor(); -extern "C" void setColorChanNum__13J3DColorBlockFPCUc(); -extern "C" void setColorChan__13J3DColorBlockFUlPC12J3DColorChan(); -extern "C" bool getLight__13J3DColorBlockFUl(); -extern "C" void setCullMode__13J3DColorBlockFUc(); -extern "C" void setCullMode__13J3DColorBlockFPCUc(); -extern "C" bool getMatColorOffset__13J3DColorBlockCFv(); -extern "C" bool getColorChanOffset__13J3DColorBlockCFv(); -extern "C" void setMatColorOffset__13J3DColorBlockFUl(); -extern "C" void setColorChanOffset__13J3DColorBlockFUl(); - -// -// External References: -// - -extern "C" void patch__10J3DPEBlockFv(); -extern "C" void patchLight__13J3DColorBlockFv(); -extern "C" bool getZCompLoc__10J3DPEBlockCFv(); -extern "C" bool getZMode__10J3DPEBlockFv(); -extern "C" bool getBlend__10J3DPEBlockFv(); -extern "C" bool getAlphaComp__10J3DPEBlockFv(); -extern "C" bool getFog__10J3DPEBlockFv(); -extern "C" bool getIndTexCoordScale__11J3DIndBlockFUl(); -extern "C" bool getIndTexMtx__11J3DIndBlockFUl(); -extern "C" bool getIndTexOrder__11J3DIndBlockFUl(); -extern "C" bool getIndTexStageNum__11J3DIndBlockCFv(); -extern "C" bool getTexMtx__14J3DTexGenBlockFUl(); -extern "C" bool getTexCoord__14J3DTexGenBlockFUl(); -extern "C" bool getTexGenNum__14J3DTexGenBlockCFv(); -extern "C" bool getAmbColor__13J3DColorBlockFUl(); -extern "C" bool getColorChan__13J3DColorBlockFUl(); -extern "C" bool getMatColor__13J3DColorBlockFUl(); -extern "C" bool getColorChanNum__13J3DColorBlockCFv(); -extern "C" void setZCompLoc__10J3DPEBlockFUc(); -extern "C" void setZMode__10J3DPEBlockF8J3DZMode(); -extern "C" void setBlend__10J3DPEBlockFRC8J3DBlend(); -extern "C" void setAlphaComp__10J3DPEBlockFRC12J3DAlphaComp(); -extern "C" void setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale(); -extern "C" void __dt__19J3DIndTexCoordScaleFv(); -extern "C" void setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx(); -extern "C" void __dt__12J3DIndTexMtxFv(); -extern "C" void setIndTexStageNum__11J3DIndBlockFUc(); -extern "C" void setTexCoord__14J3DTexGenBlockFUlPC11J3DTexCoord(); -extern "C" void setTexGenNum__14J3DTexGenBlockFUl(); -extern "C" void setAmbColor__13J3DColorBlockFUl10J3DGXColor(); -extern "C" void setColorChan__13J3DColorBlockFUlRC12J3DColorChan(); -extern "C" void setMatColor__13J3DColorBlockFUl10J3DGXColor(); -extern "C" void setColorChanNum__13J3DColorBlockFUc(); -extern "C" void __ct__19J3DIndTexCoordScaleFv(); -extern "C" void __ct__12J3DIndTexMtxFv(); -extern "C" void __ct__14J3DIndTexOrderFv(); -extern "C" void __ct__19J3DTevSwapModeTableFv(); -extern "C" void __ct__11J3DTevOrderFv(); -extern "C" void __ct__14J3DIndTevStageFv(); -extern "C" void __ct__11J3DTevStageFv(); -extern "C" void __ct__13J3DGXColorS10Fv(); -extern "C" void __ct__11J3DTexCoordFv(); -extern "C" void __ct__12J3DColorChanFv(); -extern "C" void __ct__10J3DGXColorFv(); -extern "C" void setTexMtx__14J3DTexGenBlockFUlP9J3DTexMtx(); -extern "C" void setLight__13J3DColorBlockFUlP11J3DLightObj(); -extern "C" void setAmbColor__13J3DColorBlockFUlPC10J3DGXColor(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void J3DGDSetGenMode__FUcUcUcUc11_GXCullMode(); -extern "C" void J3DGDSetGenMode_3Param__FUcUcUc(); -extern "C" void newDisplayList__17J3DDisplayListObjFUl(); -extern "C" void newSingleDisplayList__17J3DDisplayListObjFUl(); -extern "C" void callDL__17J3DDisplayListObjCFv(); -extern "C" void beginDL__17J3DDisplayListObjFv(); -extern "C" void endDL__17J3DDisplayListObjFv(); -extern "C" void beginPatch__17J3DDisplayListObjFv(); -extern "C" void endPatch__17J3DDisplayListObjFv(); -extern "C" void beginDiff__12J3DMatPacketFv(); -extern "C" void endDiff__12J3DMatPacketFv(); -extern "C" void initialize__21J3DColorBlockLightOffFv(); -extern "C" void initialize__22J3DColorBlockAmbientOnFv(); -extern "C" void initialize__20J3DColorBlockLightOnFv(); -extern "C" void initialize__21J3DTexGenBlockPatchedFv(); -extern "C" void initialize__15J3DTexGenBlock4Fv(); -extern "C" void initialize__19J3DTexGenBlockBasicFv(); -extern "C" void initialize__12J3DTevBlock1Fv(); -extern "C" void initialize__12J3DTevBlock2Fv(); -extern "C" void initialize__12J3DTevBlock4Fv(); -extern "C" void initialize__13J3DTevBlock16Fv(); -extern "C" void initialize__15J3DIndBlockFullFv(); -extern "C" void initialize__16J3DPEBlockFogOffFv(); -extern "C" void initialize__14J3DPEBlockFullFv(); -extern "C" void loadNBTScale__FR11J3DNBTScale(); -extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo(); -extern "C" void __construct_array(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__14J3DPEBlockFull[31]; -extern "C" extern void* __vt__16J3DPEBlockFogOff[31]; -extern "C" extern void* __vt__13J3DTevBlock16[55]; -extern "C" extern void* __vt__12J3DTevBlock4[55]; -extern "C" extern void* __vt__12J3DTevBlock2[55]; -extern "C" extern void* __vt__12J3DTevBlock1[55]; -extern "C" extern void* __vt__19J3DTexGenBlockBasic[27]; -extern "C" extern void* __vt__15J3DTexGenBlock4[27]; -extern "C" extern void* __vt__21J3DTexGenBlockPatched[27]; -extern "C" extern void* __vt__20J3DColorBlockLightOn[36]; -extern "C" extern void* __vt__22J3DColorBlockAmbientOn[36]; -extern "C" extern void* __vt__13J3DPEBlockXlu[31]; -extern "C" extern void* __vt__17J3DPEBlockTexEdge[31]; -extern "C" extern void* __vt__13J3DPEBlockOpa[31]; -extern "C" extern void* __vt__15J3DIndBlockFull[19]; -extern "C" extern void* __vt__11J3DTevBlock[55]; -extern "C" extern void* __vt__21J3DColorBlockLightOff[36 + 1 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803CDC90-803CDCC0 02ADB0 0030+00 0/0 1/1 0/0 .data __vt__17J3DLockedMaterial */ -SECTION_DATA extern void* __vt__17J3DLockedMaterial[12] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__17J3DLockedMaterialFPA4_Cf, - (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf, - (void*)makeDisplayList__17J3DLockedMaterialFv, - (void*)makeSharedDisplayList__17J3DLockedMaterialFv, - (void*)load__17J3DLockedMaterialFv, - (void*)loadSharedDL__17J3DLockedMaterialFv, - (void*)patch__17J3DLockedMaterialFv, - (void*)diff__17J3DLockedMaterialFUl, - (void*)reset__17J3DLockedMaterialFv, - (void*)change__17J3DLockedMaterialFv, -}; - -/* 803CDCC0-803CDCF0 02ADE0 0030+00 0/0 1/1 0/0 .data __vt__18J3DPatchedMaterial */ -SECTION_DATA extern void* __vt__18J3DPatchedMaterial[12] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DMaterialFPA4_Cf, - (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf, - (void*)makeDisplayList__18J3DPatchedMaterialFv, - (void*)makeSharedDisplayList__18J3DPatchedMaterialFv, - (void*)load__18J3DPatchedMaterialFv, - (void*)loadSharedDL__18J3DPatchedMaterialFv, - (void*)patch__11J3DMaterialFv, - (void*)diff__11J3DMaterialFUl, - (void*)reset__18J3DPatchedMaterialFv, - (void*)change__18J3DPatchedMaterialFv, -}; - -/* 803CDCF0-803CDD20 02AE10 0030+00 0/0 6/6 0/0 .data __vt__11J3DMaterial */ -SECTION_DATA extern void* __vt__11J3DMaterial[12] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DMaterialFPA4_Cf, - (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf, - (void*)makeDisplayList__11J3DMaterialFv, - (void*)makeSharedDisplayList__11J3DMaterialFv, - (void*)load__11J3DMaterialFv, - (void*)loadSharedDL__11J3DMaterialFv, - (void*)patch__11J3DMaterialFv, - (void*)diff__11J3DMaterialFUl, - (void*)reset__11J3DMaterialFv, - (void*)change__11J3DMaterialFv, -}; - -/* 803CDD20-803CDD9C 02AE40 007C+00 2/2 7/7 0/0 .data __vt__10J3DPEBlock */ -SECTION_DATA extern void* __vt__10J3DPEBlock[31] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)reset__10J3DPEBlockFP10J3DPEBlock, - (void*)NULL, - (void*)patch__10J3DPEBlockFv, - (void*)diff__10J3DPEBlockFUl, - (void*)diffFog__10J3DPEBlockFv, - (void*)diffBlend__10J3DPEBlockFv, - (void*)countDLSize__10J3DPEBlockFv, - (void*)NULL, - (void*)setFog__10J3DPEBlockF6J3DFog, - (void*)setFog__10J3DPEBlockFP6J3DFog, - (void*)getFog__10J3DPEBlockFv, - (void*)setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp, - (void*)setAlphaComp__10J3DPEBlockFRC12J3DAlphaComp, - (void*)getAlphaComp__10J3DPEBlockFv, - (void*)setBlend__10J3DPEBlockFPC8J3DBlend, - (void*)setBlend__10J3DPEBlockFRC8J3DBlend, - (void*)getBlend__10J3DPEBlockFv, - (void*)setZMode__10J3DPEBlockFPC8J3DZMode, - (void*)setZMode__10J3DPEBlockF8J3DZMode, - (void*)getZMode__10J3DPEBlockFv, - (void*)setZCompLoc__10J3DPEBlockFPCUc, - (void*)setZCompLoc__10J3DPEBlockFUc, - (void*)getZCompLoc__10J3DPEBlockCFv, - (void*)setDither__10J3DPEBlockFPCUc, - (void*)setDither__10J3DPEBlockFUc, - (void*)getDither__10J3DPEBlockCFv, - (void*)getFogOffset__10J3DPEBlockCFv, - (void*)setFogOffset__10J3DPEBlockFUl, - (void*)__dt__10J3DPEBlockFv, -}; - -/* 803CDD9C-803CDDE8 02AEBC 004C+00 2/2 1/1 0/0 .data __vt__15J3DIndBlockNull */ -SECTION_DATA extern void* __vt__15J3DIndBlockNull[19] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)reset__15J3DIndBlockNullFP11J3DIndBlock, - (void*)diff__15J3DIndBlockNullFUl, - (void*)load__15J3DIndBlockNullFv, - (void*)countDLSize__11J3DIndBlockFv, - (void*)getType__15J3DIndBlockNullFv, - (void*)setIndTexStageNum__11J3DIndBlockFUc, - (void*)getIndTexStageNum__11J3DIndBlockCFv, - (void*)setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder, - (void*)setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder, - (void*)getIndTexOrder__11J3DIndBlockFUl, - (void*)setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx, - (void*)setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx, - (void*)getIndTexMtx__11J3DIndBlockFUl, - (void*)setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale, - (void*)setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale, - (void*)getIndTexCoordScale__11J3DIndBlockFUl, - (void*)__dt__15J3DIndBlockNullFv, -}; - -/* 803CDDE8-803CDE34 02AF08 004C+00 3/3 2/2 0/0 .data __vt__11J3DIndBlock */ -SECTION_DATA extern void* __vt__11J3DIndBlock[19] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)reset__11J3DIndBlockFP11J3DIndBlock, - (void*)NULL, - (void*)NULL, - (void*)countDLSize__11J3DIndBlockFv, - (void*)NULL, - (void*)setIndTexStageNum__11J3DIndBlockFUc, - (void*)getIndTexStageNum__11J3DIndBlockCFv, - (void*)setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder, - (void*)setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder, - (void*)getIndTexOrder__11J3DIndBlockFUl, - (void*)setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx, - (void*)setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx, - (void*)getIndTexMtx__11J3DIndBlockFUl, - (void*)setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale, - (void*)setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale, - (void*)getIndTexCoordScale__11J3DIndBlockFUl, - (void*)__dt__11J3DIndBlockFv, -}; - -/* 803CDE34-803CDEA0 02AF54 006C+00 3/3 5/5 0/0 .data __vt__14J3DTexGenBlock */ -SECTION_DATA extern void* __vt__14J3DTexGenBlock[27] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)reset__14J3DTexGenBlockFP14J3DTexGenBlock, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)countDLSize__14J3DTexGenBlockFv, - (void*)NULL, - (void*)setTexGenNum__14J3DTexGenBlockFPCUl, - (void*)setTexGenNum__14J3DTexGenBlockFUl, - (void*)getTexGenNum__14J3DTexGenBlockCFv, - (void*)setTexCoord__14J3DTexGenBlockFUlPC11J3DTexCoord, - (void*)getTexCoord__14J3DTexGenBlockFUl, - (void*)setTexMtx__14J3DTexGenBlockFUlP9J3DTexMtx, - (void*)getTexMtx__14J3DTexGenBlockFUl, - (void*)setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale, - (void*)setNBTScale__14J3DTexGenBlockF11J3DNBTScale, - (void*)getNBTScale__14J3DTexGenBlockFv, - (void*)getTexMtxOffset__14J3DTexGenBlockCFv, - (void*)setTexMtxOffset__14J3DTexGenBlockFUl, - (void*)__dt__14J3DTexGenBlockFv, -}; - -/* 803CDEA0-803CDF30 02AFC0 0090+00 3/3 4/4 0/0 .data __vt__13J3DColorBlock */ -SECTION_DATA extern void* __vt__13J3DColorBlock[36] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)load__13J3DColorBlockFv, - (void*)reset__13J3DColorBlockFP13J3DColorBlock, - (void*)patch__13J3DColorBlockFv, - (void*)patchMatColor__13J3DColorBlockFv, - (void*)patchLight__13J3DColorBlockFv, - (void*)diff__13J3DColorBlockFUl, - (void*)diffAmbColor__13J3DColorBlockFv, - (void*)diffMatColor__13J3DColorBlockFv, - (void*)diffColorChan__13J3DColorBlockFv, - (void*)diffLightObj__13J3DColorBlockFUl, - (void*)countDLSize__13J3DColorBlockFv, - (void*)NULL, - (void*)setMatColor__13J3DColorBlockFUlPC10J3DGXColor, - (void*)setMatColor__13J3DColorBlockFUl10J3DGXColor, - (void*)getMatColor__13J3DColorBlockFUl, - (void*)setAmbColor__13J3DColorBlockFUlPC10J3DGXColor, - (void*)setAmbColor__13J3DColorBlockFUl10J3DGXColor, - (void*)getAmbColor__13J3DColorBlockFUl, - (void*)setColorChanNum__13J3DColorBlockFUc, - (void*)setColorChanNum__13J3DColorBlockFPCUc, - (void*)getColorChanNum__13J3DColorBlockCFv, - (void*)setColorChan__13J3DColorBlockFUlRC12J3DColorChan, - (void*)setColorChan__13J3DColorBlockFUlPC12J3DColorChan, - (void*)getColorChan__13J3DColorBlockFUl, - (void*)setLight__13J3DColorBlockFUlP11J3DLightObj, - (void*)getLight__13J3DColorBlockFUl, - (void*)setCullMode__13J3DColorBlockFPCUc, - (void*)setCullMode__13J3DColorBlockFUc, - (void*)getCullMode__13J3DColorBlockCFv, - (void*)getMatColorOffset__13J3DColorBlockCFv, - (void*)getColorChanOffset__13J3DColorBlockCFv, - (void*)setMatColorOffset__13J3DColorBlockFUl, - (void*)setColorChanOffset__13J3DColorBlockFUl, - (void*)__dt__13J3DColorBlockFv, -}; - -/* 803157A0-803159A0 3100E0 0200+00 0/0 3/3 0/0 .text createColorBlock__11J3DMaterialFUl - */ -J3DColorBlock* J3DMaterial::createColorBlock(u32 param_0) { - J3DColorBlock* rv = NULL; - switch (param_0) { - case 0: - rv = new J3DColorBlockLightOff(); - break; - case 0x40000000: - rv = new J3DColorBlockLightOn(); - break; - case 0x80000000: - rv = new J3DColorBlockAmbientOn(); - break; - } - - return rv; -} - -/* 803159A0-80315B04 3102E0 0164+00 0/0 2/2 0/0 .text createTexGenBlock__11J3DMaterialFUl - */ -J3DTexGenBlock* J3DMaterial::createTexGenBlock(u32 param_0) { - switch (param_0) { - case 0x8000000: - return new J3DTexGenBlock4(); - case 0: - default: - return new J3DTexGenBlockBasic(); - } -} - -/* 80315B04-80315E78 310444 0374+00 0/0 2/2 0/0 .text createTevBlock__11J3DMaterialFi */ -J3DTevBlock* J3DMaterial::createTevBlock(int param_0) { - J3DTevBlock* rv = NULL; - if (param_0 <= 1) { - rv = new J3DTevBlock1(); - } else if (param_0 == 2) { - rv = new J3DTevBlock2(); - } else if (param_0 <= 4) { - rv = new J3DTevBlock4(); - } else if (param_0 <= 16) { - rv = new J3DTevBlock16(); - } - return rv; -} - -/* 80315E78-80315F60 3107B8 00E8+00 0/0 3/3 0/0 .text createIndBlock__11J3DMaterialFi */ -J3DIndBlock* J3DMaterial::createIndBlock(int param_0) { - if (param_0 != 0) { - return new J3DIndBlockFull(); - } - - return new J3DIndBlockNull(); -} - -/* 80315F60-80316100 3108A0 01A0+00 0/0 3/3 0/0 .text createPEBlock__11J3DMaterialFUlUl - */ -// rv is in r5 for some reason -#ifdef NONMATCHING -J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) { - J3DPEBlock* rv = NULL; - if (param_0 == 0) { - if (param_1 & 1) { - return new J3DPEBlockOpa(); - } else if (param_1 & 2) { - return new J3DPEBlockTexEdge(); - } else if (param_1 & 4) { - return new J3DPEBlockXlu(); - } - } - - if (param_0 == 0x10000000) { - rv = new J3DPEBlockFull(); - } else if (param_0 == 0x20000000) { - rv = new J3DPEBlockFogOff(); - } - return rv; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/createPEBlock__11J3DMaterialFUlUl.s" -} -#pragma pop -#endif - -/* 80316100-80316150 310A40 0050+00 0/0 2/2 0/0 .text calcSizeColorBlock__11J3DMaterialFUl */ -u32 J3DMaterial::calcSizeColorBlock(u32 param_0) { - u32 rv = 0; - switch (param_0) { - case 0: - rv = sizeof(J3DColorBlockLightOff); - break; - case 0x40000000: - rv = sizeof(J3DColorBlockLightOn); - break; - case 0x80000000: - rv = sizeof(J3DColorBlockAmbientOn); - break; - } - - return rv; -} - -/* 80316150-8031617C 310A90 002C+00 0/0 1/1 0/0 .text calcSizeTexGenBlock__11J3DMaterialFUl */ -u32 J3DMaterial::calcSizeTexGenBlock(u32 param_0) { - switch (param_0) { - case 0x8000000: - return sizeof(J3DTexGenBlock4); - case 0: - default: - return sizeof(J3DTexGenBlockBasic); - } -} - -/* 8031617C-803161C4 310ABC 0048+00 0/0 1/1 0/0 .text calcSizeTevBlock__11J3DMaterialFi - */ -u32 J3DMaterial::calcSizeTevBlock(int param_0) { - u32 rv = 0; - if (param_0 <= 1) { - rv = sizeof(J3DTevBlock1); - } else if (param_0 == 2) { - rv = sizeof(J3DTevBlock2); - } else if (param_0 <= 4) { - rv = sizeof(J3DTevBlock4); - } else if (param_0 <= 16) { - rv = sizeof(J3DTevBlock16); - } - return rv; -} - -/* 803161C4-803161D8 310B04 0014+00 0/0 2/2 0/0 .text calcSizeIndBlock__11J3DMaterialFi - */ -u32 J3DMaterial::calcSizeIndBlock(int param_0) { - if (param_0 != 0) { - return sizeof(J3DIndBlockFull); - } - - return sizeof(J3DIndBlockNull); -} - -/* 803161D8-80316240 310B18 0068+00 0/0 2/2 0/0 .text calcSizePEBlock__11J3DMaterialFUlUl - */ -u32 J3DMaterial::calcSizePEBlock(u32 param_0, u32 param_1) { - u32 rv = 0; - if (param_0 == 0) { - if (param_1 & 1) { - rv = sizeof(J3DPEBlockOpa); - } else if (param_1 & 2) { - rv = sizeof(J3DPEBlockTexEdge); - } else if (param_1 & 4) { - rv = sizeof(J3DPEBlockXlu); - } - } - else if (param_0 == 0x10000000) { - rv = sizeof(J3DPEBlockFull); - } else if (param_0 == 0x20000000) { - rv = sizeof(J3DPEBlockFogOff); - } - return rv; -} - -/* 80316240-80316290 310B80 0050+00 2/2 5/5 0/0 .text initialize__11J3DMaterialFv */ -void J3DMaterial::initialize() { - mShape = NULL; - mNext = NULL; - mJoint = NULL; - mMaterialMode = 1; - mIndex = -1; - mInvalid = 0; - mDiffFlag = 0; - mColorBlock = NULL; - mTexGenBlock = NULL; - mTevBlock = NULL; - mIndBlock = NULL; - mPEBlock = NULL; - mpOrigMaterial = NULL; - mMaterialAnm = NULL; - mSharedDLObj = NULL; -} - -/* 80316290-80316344 310BD0 00B4+00 0/0 2/2 0/0 .text countDLSize__11J3DMaterialFv */ -u32 J3DMaterial::countDLSize() { - return (mColorBlock->countDLSize() + mTexGenBlock->countDLSize() + mTevBlock->countDLSize() + - mIndBlock->countDLSize() + mPEBlock->countDLSize() + 31) & ~0x1f; -} - -/* 80316344-80316620 310C84 02DC+00 2/2 0/0 0/0 .text - * makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj */ -void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) { - param_0->beginDL(); - mTevBlock->load(); - mIndBlock->load(); - mPEBlock->load(); - J3DGDSetGenMode(mTexGenBlock->getTexGenNum(), mColorBlock->getColorChanNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum(), (GXCullMode)(u8)mColorBlock->getCullMode()); - mTexGenBlock->load(); - mColorBlock->load(); - J3DGDSetNumChans(mColorBlock->getColorChanNum()); - J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum()); - param_0->endDL(); -} - -/* 80316620-80316668 310F60 0048+00 1/0 0/0 0/0 .text makeDisplayList__11J3DMaterialFv */ -void J3DMaterial::makeDisplayList() { - if (!j3dSys.getMatPacket()->isLocked()) { - j3dSys.getMatPacket()->mDiffFlag = mDiffFlag; - makeDisplayList_private(j3dSys.getMatPacket()->getDisplayListObj()); - } -} - -/* 80316668-8031668C 310FA8 0024+00 1/0 0/0 0/0 .text makeSharedDisplayList__11J3DMaterialFv */ -void J3DMaterial::makeSharedDisplayList() { - makeDisplayList_private(mSharedDLObj); -} - -/* 8031668C-803166DC 310FCC 0050+00 1/0 0/0 0/0 .text load__11J3DMaterialFv */ -void J3DMaterial::load() { - j3dSys.setMaterialMode(mMaterialMode); - if (!j3dSys.checkFlag(2)) { - loadNBTScale(*mTexGenBlock->getNBTScale()); - } -} - -/* 803166DC-80316740 31101C 0064+00 1/0 0/0 0/0 .text loadSharedDL__11J3DMaterialFv */ -void J3DMaterial::loadSharedDL() { - j3dSys.setMaterialMode(mMaterialMode); - if (!j3dSys.checkFlag(2)) { - mSharedDLObj->callDL(); - loadNBTScale(*mTexGenBlock->getNBTScale()); - } -} - -/* 80316740-803167D8 311080 0098+00 2/0 0/0 0/0 .text patch__11J3DMaterialFv */ -void J3DMaterial::patch() { - j3dSys.getMatPacket()->mDiffFlag = mDiffFlag; - j3dSys.getMatPacket()->beginPatch(); - mTevBlock->patch(); - mColorBlock->patch(); - mTexGenBlock->patch(); - j3dSys.getMatPacket()->endPatch(); -} - -/* 803167D8-803169DC 311118 0204+00 2/0 0/0 0/0 .text diff__11J3DMaterialFUl */ -void J3DMaterial::diff(u32 param_0) { - if (j3dSys.getMatPacket()->isEnabled_Diff()) { - j3dSys.getMatPacket()->beginDiff(); - mTevBlock->diff(param_0); - mIndBlock->diff(param_0); - mPEBlock->diff(param_0); - if (param_0 & 0x2000000) { - J3DGDSetGenMode_3Param(mTexGenBlock->getTexGenNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum()); - J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum()); - } - mTexGenBlock->diff(param_0); - mColorBlock->diff(param_0); - j3dSys.getMatPacket()->endDiff(); - } -} - -/* 803169DC-80316A54 31131C 0078+00 2/0 0/0 0/0 .text calc__11J3DMaterialFPA4_Cf */ -// Matches but changes order of TU vtables (?!) -#ifdef NONMATCHING -void J3DMaterial::calc(f32 const (*param_0)[4]) { - if (j3dSys.checkFlag(0x40000000)) { - mTexGenBlock->calcPostTexMtx(param_0); - } else { - mTexGenBlock->calc(param_0); - } - - calcCurrentMtx(); - setCurrentMtx(); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void calc__11J3DMaterialFPA4_Cf() { - // asm void J3DMaterial::calc(f32 const (*param_0)[4]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/calc__11J3DMaterialFPA4_Cf.s" -} -#pragma pop -#endif - -/* 80316A54-80316AB0 311394 005C+00 3/0 0/0 0/0 .text calcDiffTexMtx__11J3DMaterialFPA4_Cf */ -void J3DMaterial::calcDiffTexMtx(f32 const (*param_0)[4]) { - if (j3dSys.checkFlag(0x40000000)) { - mTexGenBlock->calcPostTexMtxWithoutViewMtx(param_0); - } else { - mTexGenBlock->calcWithoutViewMtx(param_0); - } -} - -/* 80316AB0-80316AC8 3113F0 0018+00 1/1 1/1 0/0 .text setCurrentMtx__11J3DMaterialFv */ -void J3DMaterial::setCurrentMtx() { - mShape->setCurrentMtx(mCurrentMtx); -} - -/* 80316AC8-80316D68 311408 02A0+00 1/1 0/0 0/0 .text calcCurrentMtx__11J3DMaterialFv */ -// Issues with setCurrentTexMtx -#ifdef NONMATCHING -void J3DMaterial::calcCurrentMtx() { - if (!j3dSys.checkFlag(0x40000000)) { - mCurrentMtx.setCurrentTexMtx( - mTexGenBlock->getTexCoord(0)->getTexGenMtx(), - mTexGenBlock->getTexCoord(1)->getTexGenMtx(), - mTexGenBlock->getTexCoord(2)->getTexGenMtx(), - mTexGenBlock->getTexCoord(3)->getTexGenMtx(), - mTexGenBlock->getTexCoord(4)->getTexGenMtx(), - mTexGenBlock->getTexCoord(5)->getTexGenMtx(), - mTexGenBlock->getTexCoord(6)->getTexGenMtx(), - mTexGenBlock->getTexCoord(7)->getTexGenMtx() - ); - } else { - mCurrentMtx.setCurrentTexMtx( - mTexGenBlock->getTexCoord(0)->getTexMtxReg(), - mTexGenBlock->getTexCoord(1)->getTexMtxReg(), - mTexGenBlock->getTexCoord(2)->getTexMtxReg(), - mTexGenBlock->getTexCoord(3)->getTexMtxReg(), - mTexGenBlock->getTexCoord(4)->getTexMtxReg(), - mTexGenBlock->getTexCoord(5)->getTexMtxReg(), - mTexGenBlock->getTexCoord(6)->getTexMtxReg(), - mTexGenBlock->getTexCoord(7)->getTexMtxReg() - ); - } -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterial::calcCurrentMtx() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcCurrentMtx__11J3DMaterialFv.s" -} -#pragma pop -#endif - -/* 80316D68-80316E14 3116A8 00AC+00 1/1 0/0 0/0 .text copy__11J3DMaterialFP11J3DMaterial - */ -void J3DMaterial::copy(J3DMaterial* param_0) { - mColorBlock->reset(param_0->mColorBlock); - mTexGenBlock->reset(param_0->mTexGenBlock); - mTevBlock->reset(param_0->mTevBlock); - mIndBlock->reset(param_0->mIndBlock); - mPEBlock->reset(param_0->mPEBlock); -} - -/* 80316E14-80316E70 311754 005C+00 1/0 0/0 0/0 .text reset__11J3DMaterialFv */ -void J3DMaterial::reset() { - if ((~mDiffFlag & 0x80000000) == 0) { - mDiffFlag &= ~0x80000000; - mMaterialMode = mpOrigMaterial->mMaterialMode; - mInvalid = mpOrigMaterial->mInvalid; - mMaterialAnm = NULL; - copy(mpOrigMaterial); - } -} - -/* 80316E70-80316E90 3117B0 0020+00 1/0 0/0 0/0 .text change__11J3DMaterialFv */ -void J3DMaterial::change() { - if ((mDiffFlag & 0xc0000000) == 0) { - mDiffFlag |= 0x80000000; - mMaterialAnm = NULL; - } -} - -/* 80316E90-80316F24 3117D0 0094+00 0/0 2/2 0/0 .text newSharedDisplayList__11J3DMaterialFUl */ -s32 J3DMaterial::newSharedDisplayList(u32 param_0) { - if (mSharedDLObj == NULL) { - mSharedDLObj = new J3DDisplayListObj(); - if (mSharedDLObj == NULL) { - return 4; - } - s32 res = mSharedDLObj->newDisplayList(param_0); - switch (res) { - case kJ3DError_Success: - break; - default: - return res; - } - } - return 0; -} - -/* 80316F24-80316FB8 311864 0094+00 0/0 2/2 0/0 .text newSingleSharedDisplayList__11J3DMaterialFUl - */ -s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) { - if (mSharedDLObj == NULL) { - mSharedDLObj = new J3DDisplayListObj(); - if (mSharedDLObj == NULL) { - return 4; - } - s32 res = mSharedDLObj->newSingleDisplayList(param_0); - switch (res) { - case kJ3DError_Success: - break; - default: - return res; - } - } - return 0; -} - -/* 80316FB8-80316FD8 3118F8 0020+00 0/0 1/1 0/0 .text initialize__18J3DPatchedMaterialFv - */ -void J3DPatchedMaterial::initialize() { - J3DMaterial::initialize(); -} - -/* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */ -extern "C" asm void makeDisplayList__18J3DPatchedMaterialFv() { -//void J3DPatchedMaterial::makeDisplayList() { - /* empty function */ -} - -/* 80316FDC-80316FE0 31191C 0004+00 1/0 0/0 0/0 .text - * makeSharedDisplayList__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::makeSharedDisplayList() { - /* empty function */ -} - -/* 80316FE0-80316FFC 311920 001C+00 1/0 0/0 0/0 .text load__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::load() { - j3dSys.setMaterialMode(mMaterialMode); - if (j3dSys.checkFlag(2)) { - return; - } -} - -/* 80316FFC-8031703C 31193C 0040+00 1/0 0/0 0/0 .text loadSharedDL__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::loadSharedDL() { - j3dSys.setMaterialMode(mMaterialMode); - if (!j3dSys.checkFlag(0x02)) - mSharedDLObj->callDL(); -} - -/* 8031703C-80317040 31197C 0004+00 1/0 0/0 0/0 .text reset__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::reset() { - /* empty function */ -} - -/* 80317040-80317044 311980 0004+00 1/0 0/0 0/0 .text change__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::change() { - /* empty function */ -} - -/* 80317044-80317064 311984 0020+00 0/0 1/1 0/0 .text initialize__17J3DLockedMaterialFv - */ -void J3DLockedMaterial::initialize() { - J3DMaterial::initialize(); -} - -/* 80317064-80317068 3119A4 0004+00 1/0 0/0 0/0 .text makeDisplayList__17J3DLockedMaterialFv */ -void J3DLockedMaterial::makeDisplayList() { - /* empty function */ -} - -/* 80317068-8031706C 3119A8 0004+00 1/0 0/0 0/0 .text makeSharedDisplayList__17J3DLockedMaterialFv - */ -void J3DLockedMaterial::makeSharedDisplayList() { - /* empty function */ -} - -/* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */ -void J3DLockedMaterial::load() { - j3dSys.setMaterialMode(mMaterialMode); - if (j3dSys.checkFlag(2)) { - return; - } -} - -/* 80317088-803170C8 3119C8 0040+00 1/0 0/0 0/0 .text loadSharedDL__17J3DLockedMaterialFv - */ -void J3DLockedMaterial::loadSharedDL() { - j3dSys.setMaterialMode(mMaterialMode); - if (!j3dSys.checkFlag(0x02)) - mSharedDLObj->callDL(); -} - -/* 803170C8-803170CC 311A08 0004+00 1/0 0/0 0/0 .text patch__17J3DLockedMaterialFv */ -void J3DLockedMaterial::patch() { - /* empty function */ -} - -/* 803170CC-803170D0 311A0C 0004+00 1/0 0/0 0/0 .text diff__17J3DLockedMaterialFUl */ -void J3DLockedMaterial::diff(u32 param_0) { - /* empty function */ -} - -/* 803170D0-803170D4 311A10 0004+00 1/0 0/0 0/0 .text calc__17J3DLockedMaterialFPA4_Cf */ -extern "C" asm void calc__17J3DLockedMaterialFPA4_Cf() { - /* empty function */ -} - -/* 803170D4-803170D8 311A14 0004+00 1/0 0/0 0/0 .text reset__17J3DLockedMaterialFv */ -void J3DLockedMaterial::reset() { - /* empty function */ -} - -/* 803170D8-803170DC 311A18 0004+00 1/0 0/0 0/0 .text change__17J3DLockedMaterialFv */ -void J3DLockedMaterial::change() { - /* empty function */ -} - -/* 803170DC-80317138 311A1C 005C+00 0/0 1/0 0/0 .text __dt__21J3DColorBlockLightOffFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DColorBlockLightOff::~J3DColorBlockLightOff() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__21J3DColorBlockLightOffFv.s" -} -#pragma pop - -/* 80317138-80317180 311A78 0048+00 1/0 0/0 0/0 .text __dt__13J3DColorBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DColorBlock::~J3DColorBlock() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__13J3DColorBlockFv.s" -} -#pragma pop - -/* 80317180-803171DC 311AC0 005C+00 0/0 1/0 0/0 .text __dt__21J3DTexGenBlockPatchedFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DTexGenBlockPatched::~J3DTexGenBlockPatched() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__21J3DTexGenBlockPatchedFv.s" -} -#pragma pop - -/* 803171DC-80317224 311B1C 0048+00 1/0 0/0 0/0 .text __dt__14J3DTexGenBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DTexGenBlock::~J3DTexGenBlock() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__14J3DTexGenBlockFv.s" -} -#pragma pop - -/* 80317224-8031726C 311B64 0048+00 0/0 1/0 0/0 .text __dt__11J3DTevBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DTevBlock::~J3DTevBlock() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__11J3DTevBlockFv.s" -} -#pragma pop - -/* 8031726C-803172B4 311BAC 0048+00 1/0 0/0 0/0 .text __dt__11J3DIndBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DIndBlock::~J3DIndBlock() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__11J3DIndBlockFv.s" -} -#pragma pop - -/* 803172B4-803172FC 311BF4 0048+00 1/0 0/0 0/0 .text __dt__10J3DPEBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DPEBlock::~J3DPEBlock() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__10J3DPEBlockFv.s" -} -#pragma pop - -/* 803172FC-80317304 311C3C 0008+00 1/0 1/0 0/0 .text countDLSize__14J3DTexGenBlockFv */ -s32 J3DTexGenBlock::countDLSize() { - return false; -} - -/* 80317304-8031730C 311C44 0008+00 1/0 1/0 0/0 .text countDLSize__13J3DColorBlockFv */ -s32 J3DColorBlock::countDLSize() { - return false; -} - -/* 8031730C-80317314 311C4C 0008+00 0/0 2/0 0/0 .text countDLSize__11J3DTevBlockFv */ -s32 J3DTevBlock::countDLSize() { - return false; -} - -/* 80317314-8031731C 311C54 0008+00 2/0 0/0 0/0 .text countDLSize__11J3DIndBlockFv */ -s32 J3DIndBlock::countDLSize() { - return false; -} - -/* 8031731C-80317324 311C5C 0008+00 1/0 1/0 0/0 .text countDLSize__10J3DPEBlockFv */ -s32 J3DPEBlock::countDLSize() { - return false; -} - -/* 80317324-80317328 311C64 0004+00 1/0 1/0 0/0 .text load__13J3DColorBlockFv */ -extern "C" void load__13J3DColorBlockFv() { - /* empty function */ -} - -/* 80317328-80317330 311C68 0008+00 1/0 1/0 0/0 .text getCullMode__13J3DColorBlockCFv */ -s32 J3DColorBlock::getCullMode() const { - return 2; -} - -/* 80317330-80317334 311C70 0004+00 0/0 2/0 0/0 .text load__11J3DTevBlockFv */ -void J3DTevBlock::load() { - /* empty function */ -} - -/* 80317334-8031733C 311C74 0008+00 1/0 2/0 0/0 .text getNBTScale__14J3DTexGenBlockFv */ -J3DNBTScale* J3DTexGenBlock::getNBTScale() { - return NULL; -} - -/* 8031733C-80317340 311C7C 0004+00 1/0 1/0 0/0 .text patch__13J3DColorBlockFv */ -void J3DColorBlock::patch() { - /* empty function */ -} - -/* 80317340-80317344 311C80 0004+00 1/0 1/0 0/0 .text diff__13J3DColorBlockFUl */ -void J3DColorBlock::diff(u32 param_0) { - /* empty function */ -} - -/* 80317344-80317348 311C84 0004+00 1/0 4/0 0/0 .text diff__10J3DPEBlockFUl */ -void J3DPEBlock::diff(u32 param_0) { - /* empty function */ -} - -/* 80317348-8031734C 311C88 0004+00 1/0 4/0 0/0 .text reset__10J3DPEBlockFP10J3DPEBlock - */ -extern "C" void reset__10J3DPEBlockFP10J3DPEBlock() { - /* empty function */ -} - -/* 8031734C-80317350 311C8C 0004+00 1/0 0/0 0/0 .text reset__11J3DIndBlockFP11J3DIndBlock - */ -extern "C" void reset__11J3DIndBlockFP11J3DIndBlock() { - /* empty function */ -} - -/* 80317350-80317354 311C90 0004+00 0/0 1/0 0/0 .text reset__11J3DTevBlockFP11J3DTevBlock - */ -extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0) { - /* empty function */ -} - -/* 80317354-80317358 311C94 0004+00 1/0 1/0 0/0 .text reset__14J3DTexGenBlockFP14J3DTexGenBlock */ -extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock() { - /* empty function */ -} - -/* 80317358-8031735C 311C98 0004+00 1/0 1/0 0/0 .text reset__13J3DColorBlockFP13J3DColorBlock */ -void J3DColorBlock::reset(J3DColorBlock* param_0) { - /* empty function */ -} - -/* 8031735C-80317360 311C9C 0004+00 1/0 5/0 0/0 .text diffFog__10J3DPEBlockFv */ -void J3DPEBlock::diffFog() { - /* empty function */ -} - -/* 80317360-80317364 311CA0 0004+00 1/0 4/0 0/0 .text diffBlend__10J3DPEBlockFv */ -void J3DPEBlock::diffBlend() { - /* empty function */ -} - -/* 80317364-80317368 311CA4 0004+00 1/0 5/0 0/0 .text setFog__10J3DPEBlockFP6J3DFog */ -void J3DPEBlock::setFog(J3DFog* param_0) { - /* empty function */ -} - -/* 80317368-8031736C 311CA8 0004+00 1/0 5/0 0/0 .text setFog__10J3DPEBlockF6J3DFog */ -void J3DPEBlock::setFog(J3DFog param_0) { - /* empty function */ -} - -/* 8031736C-80317370 311CAC 0004+00 1/0 4/0 0/0 .text setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp - */ -void J3DPEBlock::setAlphaComp(J3DAlphaComp const* param_0) { - /* empty function */ -} - -/* 80317370-80317374 311CB0 0004+00 1/0 4/0 0/0 .text setBlend__10J3DPEBlockFPC8J3DBlend - */ -void J3DPEBlock::setBlend(J3DBlend const* param_0) { - /* empty function */ -} - -/* 80317374-80317378 311CB4 0004+00 1/0 4/0 0/0 .text setZMode__10J3DPEBlockFPC8J3DZMode - */ -void J3DPEBlock::setZMode(J3DZMode const* param_0) { - /* empty function */ -} - -/* 80317378-8031737C 311CB8 0004+00 1/0 4/0 0/0 .text setZCompLoc__10J3DPEBlockFPCUc */ -void J3DPEBlock::setZCompLoc(u8 const* param_0) { - /* empty function */ -} - -/* 8031737C-80317380 311CBC 0004+00 1/0 4/0 0/0 .text setDither__10J3DPEBlockFUc */ -void J3DPEBlock::setDither(u8 param_0) { - /* empty function */ -} - -/* 80317380-80317384 311CC0 0004+00 1/0 4/0 0/0 .text setDither__10J3DPEBlockFPCUc */ -void J3DPEBlock::setDither(u8 const* param_0) { - /* empty function */ -} - -/* 80317384-8031738C 311CC4 0008+00 1/0 4/0 0/0 .text getDither__10J3DPEBlockCFv */ -bool J3DPEBlock::getDither() const { - return false; -} - -/* 8031738C-80317394 311CCC 0008+00 1/0 5/0 0/0 .text getFogOffset__10J3DPEBlockCFv */ -bool J3DPEBlock::getFogOffset() const { - return false; -} - -/* 80317394-80317398 311CD4 0004+00 1/0 5/0 0/0 .text setFogOffset__10J3DPEBlockFUl */ -void J3DPEBlock::setFogOffset(u32 param_0) { - /* empty function */ -} - -/* 80317398-8031739C 311CD8 0004+00 1/0 0/0 0/0 .text diff__15J3DIndBlockNullFUl */ -void J3DIndBlockNull::diff(u32 param_0) { - /* empty function */ -} - -/* 8031739C-803173A0 311CDC 0004+00 1/0 0/0 0/0 .text load__15J3DIndBlockNullFv */ -void J3DIndBlockNull::load() { - /* empty function */ -} - -/* 803173A0-803173A4 311CE0 0004+00 1/0 0/0 0/0 .text reset__15J3DIndBlockNullFP11J3DIndBlock */ -extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() { - /* empty function */ -} - -/* 803173A4-803173B0 311CE4 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockNullFv */ -u32 J3DIndBlockNull::getType() { - return 'IBLN'; -} - -/* 803173B0-8031740C 311CF0 005C+00 1/0 0/0 0/0 .text __dt__15J3DIndBlockNullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DIndBlockNull::~J3DIndBlockNull() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__15J3DIndBlockNullFv.s" -} -#pragma pop - -/* 8031740C-80317410 311D4C 0004+00 2/0 0/0 0/0 .text - * setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder */ -void J3DIndBlock::setIndTexOrder(u32 param_0, J3DIndTexOrder const* param_1) { - /* empty function */ -} - -/* 80317410-80317414 311D50 0004+00 2/0 0/0 0/0 .text - * setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder */ -void J3DIndBlock::setIndTexOrder(u32 param_0, J3DIndTexOrder param_1) { - /* empty function */ -} - -/* 80317414-80317418 311D54 0004+00 2/0 0/0 0/0 .text - * setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx */ -void J3DIndBlock::setIndTexMtx(u32 param_0, J3DIndTexMtx const* param_1) { - /* empty function */ -} - -/* 80317418-8031741C 311D58 0004+00 2/0 0/0 0/0 .text - * setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale */ -void J3DIndBlock::setIndTexCoordScale(u32 param_0, J3DIndTexCoordScale const* param_1) { - /* empty function */ -} - -/* 8031741C-80317420 311D5C 0004+00 1/0 1/0 0/0 .text setTexGenNum__14J3DTexGenBlockFPCUl - */ -void J3DTexGenBlock::setTexGenNum(u32 const* param_0) { - /* empty function */ -} - -/* 80317420-80317424 311D60 0004+00 1/0 2/0 0/0 .text setNBTScale__14J3DTexGenBlockF11J3DNBTScale - */ -void J3DTexGenBlock::setNBTScale(J3DNBTScale param_0) { - /* empty function */ -} - -/* 80317424-80317428 311D64 0004+00 1/0 2/0 0/0 .text - * setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale */ -void J3DTexGenBlock::setNBTScale(J3DNBTScale const* param_0) { - /* empty function */ -} - -/* 80317428-80317430 311D68 0008+00 1/0 1/0 0/0 .text getTexMtxOffset__14J3DTexGenBlockCFv */ -bool J3DTexGenBlock::getTexMtxOffset() const { - return false; -} - -/* 80317430-80317434 311D70 0004+00 1/0 1/0 0/0 .text setTexMtxOffset__14J3DTexGenBlockFUl */ -void J3DTexGenBlock::setTexMtxOffset(u32 param_0) { - /* empty function */ -} - -/* 80317434-80317438 311D74 0004+00 1/0 1/0 0/0 .text patchMatColor__13J3DColorBlockFv */ -void J3DColorBlock::patchMatColor() { - /* empty function */ -} - -/* 80317438-8031743C 311D78 0004+00 1/0 3/0 0/0 .text diffAmbColor__13J3DColorBlockFv */ -void J3DColorBlock::diffAmbColor() { - /* empty function */ -} - -/* 8031743C-80317440 311D7C 0004+00 1/0 1/0 0/0 .text diffMatColor__13J3DColorBlockFv */ -void J3DColorBlock::diffMatColor() { - /* empty function */ -} - -/* 80317440-80317444 311D80 0004+00 1/0 1/0 0/0 .text diffColorChan__13J3DColorBlockFv */ -void J3DColorBlock::diffColorChan() { - /* empty function */ -} - -/* 80317444-80317448 311D84 0004+00 1/0 3/0 0/0 .text diffLightObj__13J3DColorBlockFUl */ -void J3DColorBlock::diffLightObj(u32 param_0) { - /* empty function */ -} - -/* 80317448-8031744C 311D88 0004+00 1/0 1/0 0/0 .text - * setMatColor__13J3DColorBlockFUlPC10J3DGXColor */ -void J3DColorBlock::setMatColor(u32 param_0, J3DGXColor const* param_1) { - /* empty function */ -} - -/* 8031744C-80317450 311D8C 0004+00 1/0 1/0 0/0 .text setColorChanNum__13J3DColorBlockFPCUc */ -void J3DColorBlock::setColorChanNum(u8 const* param_0) { - /* empty function */ -} - -/* 80317450-80317454 311D90 0004+00 1/0 1/0 0/0 .text - * setColorChan__13J3DColorBlockFUlPC12J3DColorChan */ -void J3DColorBlock::setColorChan(u32 param_0, J3DColorChan const* param_1) { - /* empty function */ -} - -/* 80317454-8031745C 311D94 0008+00 1/0 3/0 0/0 .text getLight__13J3DColorBlockFUl */ -bool J3DColorBlock::getLight(u32 param_0) { - return false; -} - -/* 8031745C-80317460 311D9C 0004+00 1/0 1/0 0/0 .text setCullMode__13J3DColorBlockFUc */ -void J3DColorBlock::setCullMode(u8 param_0) { - /* empty function */ -} - -/* 80317460-80317464 311DA0 0004+00 1/0 1/0 0/0 .text setCullMode__13J3DColorBlockFPCUc - */ -void J3DColorBlock::setCullMode(u8 const* param_0) { - /* empty function */ -} - -/* 80317464-8031746C 311DA4 0008+00 1/0 1/0 0/0 .text getMatColorOffset__13J3DColorBlockCFv */ -bool J3DColorBlock::getMatColorOffset() const { - return false; -} - -/* 8031746C-80317474 311DAC 0008+00 1/0 1/0 0/0 .text getColorChanOffset__13J3DColorBlockCFv */ -bool J3DColorBlock::getColorChanOffset() const { - return false; -} - -/* 80317474-80317478 311DB4 0004+00 1/0 1/0 0/0 .text setMatColorOffset__13J3DColorBlockFUl */ -void J3DColorBlock::setMatColorOffset(u32 param_0) { - /* empty function */ -} - -/* 80317478-8031747C 311DB8 0004+00 1/0 1/0 0/0 .text setColorChanOffset__13J3DColorBlockFUl */ -void J3DColorBlock::setColorChanOffset(u32 param_0) { - /* empty function */ -} +//
+// Generated By: dol2asm
+// Translation Unit: J3DMaterial
+//
+
+#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "JSystem/J3DGraphBase/J3DGD.h"
+#include "dol2asm.h"
+
+//
+// Forward References:
+//
+
+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 calcSizeColorBlock__11J3DMaterialFUl();
+extern "C" void calcSizeTexGenBlock__11J3DMaterialFUl();
+extern "C" void calcSizeTevBlock__11J3DMaterialFi();
+extern "C" void calcSizeIndBlock__11J3DMaterialFi();
+extern "C" void calcSizePEBlock__11J3DMaterialFUlUl();
+extern "C" void initialize__11J3DMaterialFv();
+extern "C" void countDLSize__11J3DMaterialFv();
+extern "C" void makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj();
+extern "C" void makeDisplayList__11J3DMaterialFv();
+extern "C" void makeSharedDisplayList__11J3DMaterialFv();
+extern "C" void load__11J3DMaterialFv();
+extern "C" void loadSharedDL__11J3DMaterialFv();
+extern "C" void patch__11J3DMaterialFv();
+extern "C" void diff__11J3DMaterialFUl();
+extern "C" void calc__11J3DMaterialFPA4_Cf();
+extern "C" void calcDiffTexMtx__11J3DMaterialFPA4_Cf();
+extern "C" void setCurrentMtx__11J3DMaterialFv();
+extern "C" void calcCurrentMtx__11J3DMaterialFv();
+extern "C" void copy__11J3DMaterialFP11J3DMaterial();
+extern "C" void reset__11J3DMaterialFv();
+extern "C" void change__11J3DMaterialFv();
+extern "C" void newSharedDisplayList__11J3DMaterialFUl();
+extern "C" void newSingleSharedDisplayList__11J3DMaterialFUl();
+extern "C" void initialize__18J3DPatchedMaterialFv();
+extern "C" void makeDisplayList__18J3DPatchedMaterialFv();
+extern "C" void makeSharedDisplayList__18J3DPatchedMaterialFv();
+extern "C" void load__18J3DPatchedMaterialFv();
+extern "C" void loadSharedDL__18J3DPatchedMaterialFv();
+extern "C" void reset__18J3DPatchedMaterialFv();
+extern "C" void change__18J3DPatchedMaterialFv();
+extern "C" void initialize__17J3DLockedMaterialFv();
+extern "C" void makeDisplayList__17J3DLockedMaterialFv();
+extern "C" void makeSharedDisplayList__17J3DLockedMaterialFv();
+extern "C" void load__17J3DLockedMaterialFv();
+extern "C" void loadSharedDL__17J3DLockedMaterialFv();
+extern "C" void patch__17J3DLockedMaterialFv();
+extern "C" void diff__17J3DLockedMaterialFUl();
+extern "C" void calc__17J3DLockedMaterialFPA4_Cf();
+extern "C" void reset__17J3DLockedMaterialFv();
+extern "C" void change__17J3DLockedMaterialFv();
+extern "C" void __dt__21J3DColorBlockLightOffFv();
+extern "C" void __dt__13J3DColorBlockFv();
+extern "C" void __dt__21J3DTexGenBlockPatchedFv();
+extern "C" void __dt__14J3DTexGenBlockFv();
+extern "C" void __dt__11J3DTevBlockFv();
+extern "C" void __dt__11J3DIndBlockFv();
+extern "C" void __dt__10J3DPEBlockFv();
+extern "C" bool countDLSize__14J3DTexGenBlockFv();
+extern "C" bool countDLSize__13J3DColorBlockFv();
+extern "C" bool countDLSize__11J3DTevBlockFv();
+extern "C" bool countDLSize__11J3DIndBlockFv();
+extern "C" bool countDLSize__10J3DPEBlockFv();
+extern "C" void load__13J3DColorBlockFv();
+extern "C" s32 getCullMode__13J3DColorBlockCFv();
+extern "C" void load__11J3DTevBlockFv();
+extern "C" J3DNBTScale* getNBTScale__14J3DTexGenBlockFv();
+extern "C" void patch__13J3DColorBlockFv();
+extern "C" void diff__13J3DColorBlockFUl();
+extern "C" void diff__10J3DPEBlockFUl();
+extern "C" void reset__10J3DPEBlockFP10J3DPEBlock();
+extern "C" void reset__11J3DIndBlockFP11J3DIndBlock();
+extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0);
+extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock();
+extern "C" void reset__13J3DColorBlockFP13J3DColorBlock();
+extern "C" void diffFog__10J3DPEBlockFv();
+extern "C" void diffBlend__10J3DPEBlockFv();
+extern "C" void setFog__10J3DPEBlockFP6J3DFog();
+extern "C" void setFog__10J3DPEBlockF6J3DFog();
+extern "C" void setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp();
+extern "C" void setBlend__10J3DPEBlockFPC8J3DBlend();
+extern "C" void setZMode__10J3DPEBlockFPC8J3DZMode();
+extern "C" void setZCompLoc__10J3DPEBlockFPCUc();
+extern "C" void setDither__10J3DPEBlockFUc();
+extern "C" void setDither__10J3DPEBlockFPCUc();
+extern "C" bool getDither__10J3DPEBlockCFv();
+extern "C" bool getFogOffset__10J3DPEBlockCFv();
+extern "C" void setFogOffset__10J3DPEBlockFUl();
+extern "C" void diff__15J3DIndBlockNullFUl();
+extern "C" void load__15J3DIndBlockNullFv();
+extern "C" void reset__15J3DIndBlockNullFP11J3DIndBlock();
+extern "C" void getType__15J3DIndBlockNullFv();
+extern "C" void __dt__15J3DIndBlockNullFv();
+extern "C" void setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder();
+extern "C" void setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder();
+extern "C" void setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx();
+extern "C" void setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale();
+extern "C" void setTexGenNum__14J3DTexGenBlockFPCUl();
+extern "C" void setNBTScale__14J3DTexGenBlockF11J3DNBTScale();
+extern "C" void setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale();
+extern "C" bool getTexMtxOffset__14J3DTexGenBlockCFv();
+extern "C" void setTexMtxOffset__14J3DTexGenBlockFUl();
+extern "C" void patchMatColor__13J3DColorBlockFv();
+extern "C" void diffAmbColor__13J3DColorBlockFv();
+extern "C" void diffMatColor__13J3DColorBlockFv();
+extern "C" void diffColorChan__13J3DColorBlockFv();
+extern "C" void diffLightObj__13J3DColorBlockFUl();
+extern "C" void setMatColor__13J3DColorBlockFUlPC10J3DGXColor();
+extern "C" void setColorChanNum__13J3DColorBlockFPCUc();
+extern "C" void setColorChan__13J3DColorBlockFUlPC12J3DColorChan();
+extern "C" bool getLight__13J3DColorBlockFUl();
+extern "C" void setCullMode__13J3DColorBlockFUc();
+extern "C" void setCullMode__13J3DColorBlockFPCUc();
+extern "C" bool getMatColorOffset__13J3DColorBlockCFv();
+extern "C" bool getColorChanOffset__13J3DColorBlockCFv();
+extern "C" void setMatColorOffset__13J3DColorBlockFUl();
+extern "C" void setColorChanOffset__13J3DColorBlockFUl();
+
+//
+// External References:
+//
+
+extern "C" void patch__10J3DPEBlockFv();
+extern "C" void patchLight__13J3DColorBlockFv();
+extern "C" bool getZCompLoc__10J3DPEBlockCFv();
+extern "C" bool getZMode__10J3DPEBlockFv();
+extern "C" bool getBlend__10J3DPEBlockFv();
+extern "C" bool getAlphaComp__10J3DPEBlockFv();
+extern "C" bool getFog__10J3DPEBlockFv();
+extern "C" bool getIndTexCoordScale__11J3DIndBlockFUl();
+extern "C" bool getIndTexMtx__11J3DIndBlockFUl();
+extern "C" bool getIndTexOrder__11J3DIndBlockFUl();
+extern "C" bool getIndTexStageNum__11J3DIndBlockCFv();
+extern "C" bool getTexMtx__14J3DTexGenBlockFUl();
+extern "C" bool getTexCoord__14J3DTexGenBlockFUl();
+extern "C" bool getTexGenNum__14J3DTexGenBlockCFv();
+extern "C" bool getAmbColor__13J3DColorBlockFUl();
+extern "C" bool getColorChan__13J3DColorBlockFUl();
+extern "C" bool getMatColor__13J3DColorBlockFUl();
+extern "C" bool getColorChanNum__13J3DColorBlockCFv();
+extern "C" void setZCompLoc__10J3DPEBlockFUc();
+extern "C" void setZMode__10J3DPEBlockF8J3DZMode();
+extern "C" void setBlend__10J3DPEBlockFRC8J3DBlend();
+extern "C" void setAlphaComp__10J3DPEBlockFRC12J3DAlphaComp();
+extern "C" void setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale();
+extern "C" void __dt__19J3DIndTexCoordScaleFv();
+extern "C" void setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx();
+extern "C" void __dt__12J3DIndTexMtxFv();
+extern "C" void setIndTexStageNum__11J3DIndBlockFUc();
+extern "C" void setTexCoord__14J3DTexGenBlockFUlPC11J3DTexCoord();
+extern "C" void setTexGenNum__14J3DTexGenBlockFUl();
+extern "C" void setAmbColor__13J3DColorBlockFUl10J3DGXColor();
+extern "C" void setColorChan__13J3DColorBlockFUlRC12J3DColorChan();
+extern "C" void setMatColor__13J3DColorBlockFUl10J3DGXColor();
+extern "C" void setColorChanNum__13J3DColorBlockFUc();
+extern "C" void __ct__19J3DIndTexCoordScaleFv();
+extern "C" void __ct__12J3DIndTexMtxFv();
+extern "C" void __ct__14J3DIndTexOrderFv();
+extern "C" void __ct__19J3DTevSwapModeTableFv();
+extern "C" void __ct__11J3DTevOrderFv();
+extern "C" void __ct__14J3DIndTevStageFv();
+extern "C" void __ct__11J3DTevStageFv();
+extern "C" void __ct__13J3DGXColorS10Fv();
+extern "C" void __ct__11J3DTexCoordFv();
+extern "C" void __ct__12J3DColorChanFv();
+extern "C" void __ct__10J3DGXColorFv();
+extern "C" void setTexMtx__14J3DTexGenBlockFUlP9J3DTexMtx();
+extern "C" void setLight__13J3DColorBlockFUlP11J3DLightObj();
+extern "C" void setAmbColor__13J3DColorBlockFUlPC10J3DGXColor();
+extern "C" void* __nw__FUl();
+extern "C" void __dl__FPv();
+extern "C" void J3DGDSetGenMode__FUcUcUcUc11_GXCullMode();
+extern "C" void J3DGDSetGenMode_3Param__FUcUcUc();
+extern "C" void newDisplayList__17J3DDisplayListObjFUl();
+extern "C" void newSingleDisplayList__17J3DDisplayListObjFUl();
+extern "C" void callDL__17J3DDisplayListObjCFv();
+extern "C" void beginDL__17J3DDisplayListObjFv();
+extern "C" void endDL__17J3DDisplayListObjFv();
+extern "C" void beginPatch__17J3DDisplayListObjFv();
+extern "C" void endPatch__17J3DDisplayListObjFv();
+extern "C" void beginDiff__12J3DMatPacketFv();
+extern "C" void endDiff__12J3DMatPacketFv();
+extern "C" void initialize__21J3DColorBlockLightOffFv();
+extern "C" void initialize__22J3DColorBlockAmbientOnFv();
+extern "C" void initialize__20J3DColorBlockLightOnFv();
+extern "C" void initialize__21J3DTexGenBlockPatchedFv();
+extern "C" void initialize__15J3DTexGenBlock4Fv();
+extern "C" void initialize__19J3DTexGenBlockBasicFv();
+extern "C" void initialize__12J3DTevBlock1Fv();
+extern "C" void initialize__12J3DTevBlock2Fv();
+extern "C" void initialize__12J3DTevBlock4Fv();
+extern "C" void initialize__13J3DTevBlock16Fv();
+extern "C" void initialize__15J3DIndBlockFullFv();
+extern "C" void initialize__16J3DPEBlockFogOffFv();
+extern "C" void initialize__14J3DPEBlockFullFv();
+extern "C" void loadNBTScale__FR11J3DNBTScale();
+extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo();
+extern "C" void __construct_array();
+extern "C" void _savegpr_24();
+extern "C" void _savegpr_26();
+extern "C" void _savegpr_27();
+extern "C" void _savegpr_29();
+extern "C" void _restgpr_24();
+extern "C" void _restgpr_26();
+extern "C" void _restgpr_27();
+extern "C" void _restgpr_29();
+extern "C" extern void* __vt__14J3DPEBlockFull[31];
+extern "C" extern void* __vt__16J3DPEBlockFogOff[31];
+extern "C" extern void* __vt__13J3DTevBlock16[55];
+extern "C" extern void* __vt__12J3DTevBlock4[55];
+extern "C" extern void* __vt__12J3DTevBlock2[55];
+extern "C" extern void* __vt__12J3DTevBlock1[55];
+extern "C" extern void* __vt__19J3DTexGenBlockBasic[27];
+extern "C" extern void* __vt__15J3DTexGenBlock4[27];
+extern "C" extern void* __vt__21J3DTexGenBlockPatched[27];
+extern "C" extern void* __vt__20J3DColorBlockLightOn[36];
+extern "C" extern void* __vt__22J3DColorBlockAmbientOn[36];
+extern "C" extern void* __vt__13J3DPEBlockXlu[31];
+extern "C" extern void* __vt__17J3DPEBlockTexEdge[31];
+extern "C" extern void* __vt__13J3DPEBlockOpa[31];
+extern "C" extern void* __vt__15J3DIndBlockFull[19];
+extern "C" extern void* __vt__11J3DTevBlock[55];
+extern "C" extern void* __vt__21J3DColorBlockLightOff[36 + 1 /* padding */];
+
+//
+// Declarations:
+//
+
+/* ############################################################################################## */
+/* 803CDC90-803CDCC0 02ADB0 0030+00 0/0 1/1 0/0 .data __vt__17J3DLockedMaterial */
+SECTION_DATA extern void* __vt__17J3DLockedMaterial[12] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)calc__17J3DLockedMaterialFPA4_Cf,
+ (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf,
+ (void*)makeDisplayList__17J3DLockedMaterialFv,
+ (void*)makeSharedDisplayList__17J3DLockedMaterialFv,
+ (void*)load__17J3DLockedMaterialFv,
+ (void*)loadSharedDL__17J3DLockedMaterialFv,
+ (void*)patch__17J3DLockedMaterialFv,
+ (void*)diff__17J3DLockedMaterialFUl,
+ (void*)reset__17J3DLockedMaterialFv,
+ (void*)change__17J3DLockedMaterialFv,
+};
+
+/* 803CDCC0-803CDCF0 02ADE0 0030+00 0/0 1/1 0/0 .data __vt__18J3DPatchedMaterial */
+SECTION_DATA extern void* __vt__18J3DPatchedMaterial[12] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)calc__11J3DMaterialFPA4_Cf,
+ (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf,
+ (void*)makeDisplayList__18J3DPatchedMaterialFv,
+ (void*)makeSharedDisplayList__18J3DPatchedMaterialFv,
+ (void*)load__18J3DPatchedMaterialFv,
+ (void*)loadSharedDL__18J3DPatchedMaterialFv,
+ (void*)patch__11J3DMaterialFv,
+ (void*)diff__11J3DMaterialFUl,
+ (void*)reset__18J3DPatchedMaterialFv,
+ (void*)change__18J3DPatchedMaterialFv,
+};
+
+/* 803CDCF0-803CDD20 02AE10 0030+00 0/0 6/6 0/0 .data __vt__11J3DMaterial */
+SECTION_DATA extern void* __vt__11J3DMaterial[12] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)calc__11J3DMaterialFPA4_Cf,
+ (void*)calcDiffTexMtx__11J3DMaterialFPA4_Cf,
+ (void*)makeDisplayList__11J3DMaterialFv,
+ (void*)makeSharedDisplayList__11J3DMaterialFv,
+ (void*)load__11J3DMaterialFv,
+ (void*)loadSharedDL__11J3DMaterialFv,
+ (void*)patch__11J3DMaterialFv,
+ (void*)diff__11J3DMaterialFUl,
+ (void*)reset__11J3DMaterialFv,
+ (void*)change__11J3DMaterialFv,
+};
+
+/* 803CDD20-803CDD9C 02AE40 007C+00 2/2 7/7 0/0 .data __vt__10J3DPEBlock */
+SECTION_DATA extern void* __vt__10J3DPEBlock[31] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)reset__10J3DPEBlockFP10J3DPEBlock,
+ (void*)NULL,
+ (void*)patch__10J3DPEBlockFv,
+ (void*)diff__10J3DPEBlockFUl,
+ (void*)diffFog__10J3DPEBlockFv,
+ (void*)diffBlend__10J3DPEBlockFv,
+ (void*)countDLSize__10J3DPEBlockFv,
+ (void*)NULL,
+ (void*)setFog__10J3DPEBlockF6J3DFog,
+ (void*)setFog__10J3DPEBlockFP6J3DFog,
+ (void*)getFog__10J3DPEBlockFv,
+ (void*)setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp,
+ (void*)setAlphaComp__10J3DPEBlockFRC12J3DAlphaComp,
+ (void*)getAlphaComp__10J3DPEBlockFv,
+ (void*)setBlend__10J3DPEBlockFPC8J3DBlend,
+ (void*)setBlend__10J3DPEBlockFRC8J3DBlend,
+ (void*)getBlend__10J3DPEBlockFv,
+ (void*)setZMode__10J3DPEBlockFPC8J3DZMode,
+ (void*)setZMode__10J3DPEBlockF8J3DZMode,
+ (void*)getZMode__10J3DPEBlockFv,
+ (void*)setZCompLoc__10J3DPEBlockFPCUc,
+ (void*)setZCompLoc__10J3DPEBlockFUc,
+ (void*)getZCompLoc__10J3DPEBlockCFv,
+ (void*)setDither__10J3DPEBlockFPCUc,
+ (void*)setDither__10J3DPEBlockFUc,
+ (void*)getDither__10J3DPEBlockCFv,
+ (void*)getFogOffset__10J3DPEBlockCFv,
+ (void*)setFogOffset__10J3DPEBlockFUl,
+ (void*)__dt__10J3DPEBlockFv,
+};
+
+/* 803CDD9C-803CDDE8 02AEBC 004C+00 2/2 1/1 0/0 .data __vt__15J3DIndBlockNull */
+SECTION_DATA extern void* __vt__15J3DIndBlockNull[19] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)reset__15J3DIndBlockNullFP11J3DIndBlock,
+ (void*)diff__15J3DIndBlockNullFUl,
+ (void*)load__15J3DIndBlockNullFv,
+ (void*)countDLSize__11J3DIndBlockFv,
+ (void*)getType__15J3DIndBlockNullFv,
+ (void*)setIndTexStageNum__11J3DIndBlockFUc,
+ (void*)getIndTexStageNum__11J3DIndBlockCFv,
+ (void*)setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder,
+ (void*)setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder,
+ (void*)getIndTexOrder__11J3DIndBlockFUl,
+ (void*)setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx,
+ (void*)setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx,
+ (void*)getIndTexMtx__11J3DIndBlockFUl,
+ (void*)setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale,
+ (void*)setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale,
+ (void*)getIndTexCoordScale__11J3DIndBlockFUl,
+ (void*)__dt__15J3DIndBlockNullFv,
+};
+
+/* 803CDDE8-803CDE34 02AF08 004C+00 3/3 2/2 0/0 .data __vt__11J3DIndBlock */
+SECTION_DATA extern void* __vt__11J3DIndBlock[19] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)reset__11J3DIndBlockFP11J3DIndBlock,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)countDLSize__11J3DIndBlockFv,
+ (void*)NULL,
+ (void*)setIndTexStageNum__11J3DIndBlockFUc,
+ (void*)getIndTexStageNum__11J3DIndBlockCFv,
+ (void*)setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder,
+ (void*)setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder,
+ (void*)getIndTexOrder__11J3DIndBlockFUl,
+ (void*)setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx,
+ (void*)setIndTexMtx__11J3DIndBlockFUl12J3DIndTexMtx,
+ (void*)getIndTexMtx__11J3DIndBlockFUl,
+ (void*)setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale,
+ (void*)setIndTexCoordScale__11J3DIndBlockFUl19J3DIndTexCoordScale,
+ (void*)getIndTexCoordScale__11J3DIndBlockFUl,
+ (void*)__dt__11J3DIndBlockFv,
+};
+
+/* 803CDE34-803CDEA0 02AF54 006C+00 3/3 5/5 0/0 .data __vt__14J3DTexGenBlock */
+SECTION_DATA extern void* __vt__14J3DTexGenBlock[27] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)reset__14J3DTexGenBlockFP14J3DTexGenBlock,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)NULL,
+ (void*)countDLSize__14J3DTexGenBlockFv,
+ (void*)NULL,
+ (void*)setTexGenNum__14J3DTexGenBlockFPCUl,
+ (void*)setTexGenNum__14J3DTexGenBlockFUl,
+ (void*)getTexGenNum__14J3DTexGenBlockCFv,
+ (void*)setTexCoord__14J3DTexGenBlockFUlPC11J3DTexCoord,
+ (void*)getTexCoord__14J3DTexGenBlockFUl,
+ (void*)setTexMtx__14J3DTexGenBlockFUlP9J3DTexMtx,
+ (void*)getTexMtx__14J3DTexGenBlockFUl,
+ (void*)setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale,
+ (void*)setNBTScale__14J3DTexGenBlockF11J3DNBTScale,
+ (void*)getNBTScale__14J3DTexGenBlockFv,
+ (void*)getTexMtxOffset__14J3DTexGenBlockCFv,
+ (void*)setTexMtxOffset__14J3DTexGenBlockFUl,
+ (void*)__dt__14J3DTexGenBlockFv,
+};
+
+/* 803CDEA0-803CDF30 02AFC0 0090+00 3/3 4/4 0/0 .data __vt__13J3DColorBlock */
+SECTION_DATA extern void* __vt__13J3DColorBlock[36] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)load__13J3DColorBlockFv,
+ (void*)reset__13J3DColorBlockFP13J3DColorBlock,
+ (void*)patch__13J3DColorBlockFv,
+ (void*)patchMatColor__13J3DColorBlockFv,
+ (void*)patchLight__13J3DColorBlockFv,
+ (void*)diff__13J3DColorBlockFUl,
+ (void*)diffAmbColor__13J3DColorBlockFv,
+ (void*)diffMatColor__13J3DColorBlockFv,
+ (void*)diffColorChan__13J3DColorBlockFv,
+ (void*)diffLightObj__13J3DColorBlockFUl,
+ (void*)countDLSize__13J3DColorBlockFv,
+ (void*)NULL,
+ (void*)setMatColor__13J3DColorBlockFUlPC10J3DGXColor,
+ (void*)setMatColor__13J3DColorBlockFUl10J3DGXColor,
+ (void*)getMatColor__13J3DColorBlockFUl,
+ (void*)setAmbColor__13J3DColorBlockFUlPC10J3DGXColor,
+ (void*)setAmbColor__13J3DColorBlockFUl10J3DGXColor,
+ (void*)getAmbColor__13J3DColorBlockFUl,
+ (void*)setColorChanNum__13J3DColorBlockFUc,
+ (void*)setColorChanNum__13J3DColorBlockFPCUc,
+ (void*)getColorChanNum__13J3DColorBlockCFv,
+ (void*)setColorChan__13J3DColorBlockFUlRC12J3DColorChan,
+ (void*)setColorChan__13J3DColorBlockFUlPC12J3DColorChan,
+ (void*)getColorChan__13J3DColorBlockFUl,
+ (void*)setLight__13J3DColorBlockFUlP11J3DLightObj,
+ (void*)getLight__13J3DColorBlockFUl,
+ (void*)setCullMode__13J3DColorBlockFPCUc,
+ (void*)setCullMode__13J3DColorBlockFUc,
+ (void*)getCullMode__13J3DColorBlockCFv,
+ (void*)getMatColorOffset__13J3DColorBlockCFv,
+ (void*)getColorChanOffset__13J3DColorBlockCFv,
+ (void*)setMatColorOffset__13J3DColorBlockFUl,
+ (void*)setColorChanOffset__13J3DColorBlockFUl,
+ (void*)__dt__13J3DColorBlockFv,
+};
+
+/* 803157A0-803159A0 3100E0 0200+00 0/0 3/3 0/0 .text createColorBlock__11J3DMaterialFUl
+ */
+J3DColorBlock* J3DMaterial::createColorBlock(u32 param_0) {
+ J3DColorBlock* rv = NULL;
+ switch (param_0) {
+ case 0:
+ rv = new J3DColorBlockLightOff();
+ break;
+ case 0x40000000:
+ rv = new J3DColorBlockLightOn();
+ break;
+ case 0x80000000:
+ rv = new J3DColorBlockAmbientOn();
+ break;
+ }
+
+ return rv;
+}
+
+/* 803159A0-80315B04 3102E0 0164+00 0/0 2/2 0/0 .text createTexGenBlock__11J3DMaterialFUl
+ */
+J3DTexGenBlock* J3DMaterial::createTexGenBlock(u32 param_0) {
+ switch (param_0) {
+ case 0x8000000:
+ return new J3DTexGenBlock4();
+ case 0:
+ default:
+ return new J3DTexGenBlockBasic();
+ }
+}
+
+/* 80315B04-80315E78 310444 0374+00 0/0 2/2 0/0 .text createTevBlock__11J3DMaterialFi */
+J3DTevBlock* J3DMaterial::createTevBlock(int param_0) {
+ J3DTevBlock* rv = NULL;
+ if (param_0 <= 1) {
+ rv = new J3DTevBlock1();
+ } else if (param_0 == 2) {
+ rv = new J3DTevBlock2();
+ } else if (param_0 <= 4) {
+ rv = new J3DTevBlock4();
+ } else if (param_0 <= 16) {
+ rv = new J3DTevBlock16();
+ }
+ return rv;
+}
+
+/* 80315E78-80315F60 3107B8 00E8+00 0/0 3/3 0/0 .text createIndBlock__11J3DMaterialFi */
+J3DIndBlock* J3DMaterial::createIndBlock(int param_0) {
+ if (param_0 != 0) {
+ return new J3DIndBlockFull();
+ }
+
+ return new J3DIndBlockNull();
+}
+
+/* 80315F60-80316100 3108A0 01A0+00 0/0 3/3 0/0 .text createPEBlock__11J3DMaterialFUlUl
+ */
+// rv is in r5 for some reason
+#ifdef NONMATCHING
+J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) {
+ J3DPEBlock* rv = NULL;
+ if (param_0 == 0) {
+ if (param_1 & 1) {
+ return new J3DPEBlockOpa();
+ } else if (param_1 & 2) {
+ return new J3DPEBlockTexEdge();
+ } else if (param_1 & 4) {
+ return new J3DPEBlockXlu();
+ }
+ }
+
+ if (param_0 == 0x10000000) {
+ rv = new J3DPEBlockFull();
+ } else if (param_0 == 0x20000000) {
+ rv = new J3DPEBlockFogOff();
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/createPEBlock__11J3DMaterialFUlUl.s"
+}
+#pragma pop
+#endif
+
+/* 80316100-80316150 310A40 0050+00 0/0 2/2 0/0 .text calcSizeColorBlock__11J3DMaterialFUl */
+u32 J3DMaterial::calcSizeColorBlock(u32 param_0) {
+ u32 rv = 0;
+ switch (param_0) {
+ case 0:
+ rv = sizeof(J3DColorBlockLightOff);
+ break;
+ case 0x40000000:
+ rv = sizeof(J3DColorBlockLightOn);
+ break;
+ case 0x80000000:
+ rv = sizeof(J3DColorBlockAmbientOn);
+ break;
+ }
+
+ return rv;
+}
+
+/* 80316150-8031617C 310A90 002C+00 0/0 1/1 0/0 .text calcSizeTexGenBlock__11J3DMaterialFUl */
+u32 J3DMaterial::calcSizeTexGenBlock(u32 param_0) {
+ switch (param_0) {
+ case 0x8000000:
+ return sizeof(J3DTexGenBlock4);
+ case 0:
+ default:
+ return sizeof(J3DTexGenBlockBasic);
+ }
+}
+
+/* 8031617C-803161C4 310ABC 0048+00 0/0 1/1 0/0 .text calcSizeTevBlock__11J3DMaterialFi
+ */
+u32 J3DMaterial::calcSizeTevBlock(int param_0) {
+ u32 rv = 0;
+ if (param_0 <= 1) {
+ rv = sizeof(J3DTevBlock1);
+ } else if (param_0 == 2) {
+ rv = sizeof(J3DTevBlock2);
+ } else if (param_0 <= 4) {
+ rv = sizeof(J3DTevBlock4);
+ } else if (param_0 <= 16) {
+ rv = sizeof(J3DTevBlock16);
+ }
+ return rv;
+}
+
+/* 803161C4-803161D8 310B04 0014+00 0/0 2/2 0/0 .text calcSizeIndBlock__11J3DMaterialFi
+ */
+u32 J3DMaterial::calcSizeIndBlock(int param_0) {
+ if (param_0 != 0) {
+ return sizeof(J3DIndBlockFull);
+ }
+
+ return sizeof(J3DIndBlockNull);
+}
+
+/* 803161D8-80316240 310B18 0068+00 0/0 2/2 0/0 .text calcSizePEBlock__11J3DMaterialFUlUl
+ */
+u32 J3DMaterial::calcSizePEBlock(u32 param_0, u32 param_1) {
+ u32 rv = 0;
+ if (param_0 == 0) {
+ if (param_1 & 1) {
+ rv = sizeof(J3DPEBlockOpa);
+ } else if (param_1 & 2) {
+ rv = sizeof(J3DPEBlockTexEdge);
+ } else if (param_1 & 4) {
+ rv = sizeof(J3DPEBlockXlu);
+ }
+ }
+ else if (param_0 == 0x10000000) {
+ rv = sizeof(J3DPEBlockFull);
+ } else if (param_0 == 0x20000000) {
+ rv = sizeof(J3DPEBlockFogOff);
+ }
+ return rv;
+}
+
+/* 80316240-80316290 310B80 0050+00 2/2 5/5 0/0 .text initialize__11J3DMaterialFv */
+void J3DMaterial::initialize() {
+ mShape = NULL;
+ mNext = NULL;
+ mJoint = NULL;
+ mMaterialMode = 1;
+ mIndex = -1;
+ mInvalid = 0;
+ mDiffFlag = 0;
+ mColorBlock = NULL;
+ mTexGenBlock = NULL;
+ mTevBlock = NULL;
+ mIndBlock = NULL;
+ mPEBlock = NULL;
+ mpOrigMaterial = NULL;
+ mMaterialAnm = NULL;
+ mSharedDLObj = NULL;
+}
+
+/* 80316290-80316344 310BD0 00B4+00 0/0 2/2 0/0 .text countDLSize__11J3DMaterialFv */
+u32 J3DMaterial::countDLSize() {
+ return (mColorBlock->countDLSize() + mTexGenBlock->countDLSize() + mTevBlock->countDLSize() +
+ mIndBlock->countDLSize() + mPEBlock->countDLSize() + 31) & ~0x1f;
+}
+
+/* 80316344-80316620 310C84 02DC+00 2/2 0/0 0/0 .text
+ * makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj */
+void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) {
+ param_0->beginDL();
+ mTevBlock->load();
+ mIndBlock->load();
+ mPEBlock->load();
+ J3DGDSetGenMode(mTexGenBlock->getTexGenNum(), mColorBlock->getColorChanNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum(), (GXCullMode)(u8)mColorBlock->getCullMode());
+ mTexGenBlock->load();
+ mColorBlock->load();
+ J3DGDSetNumChans(mColorBlock->getColorChanNum());
+ J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum());
+ param_0->endDL();
+}
+
+/* 80316620-80316668 310F60 0048+00 1/0 0/0 0/0 .text makeDisplayList__11J3DMaterialFv */
+void J3DMaterial::makeDisplayList() {
+ if (!j3dSys.getMatPacket()->isLocked()) {
+ j3dSys.getMatPacket()->mDiffFlag = mDiffFlag;
+ makeDisplayList_private(j3dSys.getMatPacket()->getDisplayListObj());
+ }
+}
+
+/* 80316668-8031668C 310FA8 0024+00 1/0 0/0 0/0 .text makeSharedDisplayList__11J3DMaterialFv */
+void J3DMaterial::makeSharedDisplayList() {
+ makeDisplayList_private(mSharedDLObj);
+}
+
+/* 8031668C-803166DC 310FCC 0050+00 1/0 0/0 0/0 .text load__11J3DMaterialFv */
+void J3DMaterial::load() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (!j3dSys.checkFlag(2)) {
+ loadNBTScale(*mTexGenBlock->getNBTScale());
+ }
+}
+
+/* 803166DC-80316740 31101C 0064+00 1/0 0/0 0/0 .text loadSharedDL__11J3DMaterialFv */
+void J3DMaterial::loadSharedDL() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (!j3dSys.checkFlag(2)) {
+ mSharedDLObj->callDL();
+ loadNBTScale(*mTexGenBlock->getNBTScale());
+ }
+}
+
+/* 80316740-803167D8 311080 0098+00 2/0 0/0 0/0 .text patch__11J3DMaterialFv */
+void J3DMaterial::patch() {
+ j3dSys.getMatPacket()->mDiffFlag = mDiffFlag;
+ j3dSys.getMatPacket()->beginPatch();
+ mTevBlock->patch();
+ mColorBlock->patch();
+ mTexGenBlock->patch();
+ j3dSys.getMatPacket()->endPatch();
+}
+
+/* 803167D8-803169DC 311118 0204+00 2/0 0/0 0/0 .text diff__11J3DMaterialFUl */
+void J3DMaterial::diff(u32 param_0) {
+ if (j3dSys.getMatPacket()->isEnabled_Diff()) {
+ j3dSys.getMatPacket()->beginDiff();
+ mTevBlock->diff(param_0);
+ mIndBlock->diff(param_0);
+ mPEBlock->diff(param_0);
+ if (param_0 & 0x2000000) {
+ J3DGDSetGenMode_3Param(mTexGenBlock->getTexGenNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum());
+ J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum());
+ }
+ mTexGenBlock->diff(param_0);
+ mColorBlock->diff(param_0);
+ j3dSys.getMatPacket()->endDiff();
+ }
+}
+
+/* 803169DC-80316A54 31131C 0078+00 2/0 0/0 0/0 .text calc__11J3DMaterialFPA4_Cf */
+// Matches but changes order of TU vtables (?!)
+#ifdef NONMATCHING
+void J3DMaterial::calc(f32 const (*param_0)[4]) {
+ if (j3dSys.checkFlag(0x40000000)) {
+ mTexGenBlock->calcPostTexMtx(param_0);
+ } else {
+ mTexGenBlock->calc(param_0);
+ }
+
+ calcCurrentMtx();
+ setCurrentMtx();
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+extern "C" asm void calc__11J3DMaterialFPA4_Cf() {
+ // asm void J3DMaterial::calc(f32 const (*param_0)[4]) {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/calc__11J3DMaterialFPA4_Cf.s"
+}
+#pragma pop
+#endif
+
+/* 80316A54-80316AB0 311394 005C+00 3/0 0/0 0/0 .text calcDiffTexMtx__11J3DMaterialFPA4_Cf */
+void J3DMaterial::calcDiffTexMtx(f32 const (*param_0)[4]) {
+ if (j3dSys.checkFlag(0x40000000)) {
+ mTexGenBlock->calcPostTexMtxWithoutViewMtx(param_0);
+ } else {
+ mTexGenBlock->calcWithoutViewMtx(param_0);
+ }
+}
+
+/* 80316AB0-80316AC8 3113F0 0018+00 1/1 1/1 0/0 .text setCurrentMtx__11J3DMaterialFv */
+void J3DMaterial::setCurrentMtx() {
+ mShape->setCurrentMtx(mCurrentMtx);
+}
+
+/* 80316AC8-80316D68 311408 02A0+00 1/1 0/0 0/0 .text calcCurrentMtx__11J3DMaterialFv */
+// Issues with setCurrentTexMtx
+#ifdef NONMATCHING
+void J3DMaterial::calcCurrentMtx() {
+ if (!j3dSys.checkFlag(0x40000000)) {
+ mCurrentMtx.setCurrentTexMtx(
+ mTexGenBlock->getTexCoord(0)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(1)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(2)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(3)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(4)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(5)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(6)->getTexGenMtx(),
+ mTexGenBlock->getTexCoord(7)->getTexGenMtx()
+ );
+ } else {
+ mCurrentMtx.setCurrentTexMtx(
+ mTexGenBlock->getTexCoord(0)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(1)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(2)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(3)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(4)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(5)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(6)->getTexMtxReg(),
+ mTexGenBlock->getTexCoord(7)->getTexMtxReg()
+ );
+ }
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void J3DMaterial::calcCurrentMtx() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcCurrentMtx__11J3DMaterialFv.s"
+}
+#pragma pop
+#endif
+
+/* 80316D68-80316E14 3116A8 00AC+00 1/1 0/0 0/0 .text copy__11J3DMaterialFP11J3DMaterial
+ */
+void J3DMaterial::copy(J3DMaterial* param_0) {
+ mColorBlock->reset(param_0->mColorBlock);
+ mTexGenBlock->reset(param_0->mTexGenBlock);
+ mTevBlock->reset(param_0->mTevBlock);
+ mIndBlock->reset(param_0->mIndBlock);
+ mPEBlock->reset(param_0->mPEBlock);
+}
+
+/* 80316E14-80316E70 311754 005C+00 1/0 0/0 0/0 .text reset__11J3DMaterialFv */
+void J3DMaterial::reset() {
+ if ((~mDiffFlag & 0x80000000) == 0) {
+ mDiffFlag &= ~0x80000000;
+ mMaterialMode = mpOrigMaterial->mMaterialMode;
+ mInvalid = mpOrigMaterial->mInvalid;
+ mMaterialAnm = NULL;
+ copy(mpOrigMaterial);
+ }
+}
+
+/* 80316E70-80316E90 3117B0 0020+00 1/0 0/0 0/0 .text change__11J3DMaterialFv */
+void J3DMaterial::change() {
+ if ((mDiffFlag & 0xc0000000) == 0) {
+ mDiffFlag |= 0x80000000;
+ mMaterialAnm = NULL;
+ }
+}
+
+/* 80316E90-80316F24 3117D0 0094+00 0/0 2/2 0/0 .text newSharedDisplayList__11J3DMaterialFUl */
+s32 J3DMaterial::newSharedDisplayList(u32 param_0) {
+ if (mSharedDLObj == NULL) {
+ mSharedDLObj = new J3DDisplayListObj();
+ if (mSharedDLObj == NULL) {
+ return 4;
+ }
+ s32 res = mSharedDLObj->newDisplayList(param_0);
+ switch (res) {
+ case kJ3DError_Success:
+ break;
+ default:
+ return res;
+ }
+ }
+ return 0;
+}
+
+/* 80316F24-80316FB8 311864 0094+00 0/0 2/2 0/0 .text newSingleSharedDisplayList__11J3DMaterialFUl
+ */
+s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
+ if (mSharedDLObj == NULL) {
+ mSharedDLObj = new J3DDisplayListObj();
+ if (mSharedDLObj == NULL) {
+ return 4;
+ }
+ s32 res = mSharedDLObj->newSingleDisplayList(param_0);
+ switch (res) {
+ case kJ3DError_Success:
+ break;
+ default:
+ return res;
+ }
+ }
+ return 0;
+}
+
+/* 80316FB8-80316FD8 3118F8 0020+00 0/0 1/1 0/0 .text initialize__18J3DPatchedMaterialFv
+ */
+void J3DPatchedMaterial::initialize() {
+ J3DMaterial::initialize();
+}
+
+/* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */
+extern "C" asm void makeDisplayList__18J3DPatchedMaterialFv() {
+//void J3DPatchedMaterial::makeDisplayList() {
+ /* empty function */
+}
+
+/* 80316FDC-80316FE0 31191C 0004+00 1/0 0/0 0/0 .text
+ * makeSharedDisplayList__18J3DPatchedMaterialFv */
+void J3DPatchedMaterial::makeSharedDisplayList() {
+ /* empty function */
+}
+
+/* 80316FE0-80316FFC 311920 001C+00 1/0 0/0 0/0 .text load__18J3DPatchedMaterialFv */
+void J3DPatchedMaterial::load() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (j3dSys.checkFlag(2)) {
+ return;
+ }
+}
+
+/* 80316FFC-8031703C 31193C 0040+00 1/0 0/0 0/0 .text loadSharedDL__18J3DPatchedMaterialFv */
+void J3DPatchedMaterial::loadSharedDL() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (!j3dSys.checkFlag(0x02))
+ mSharedDLObj->callDL();
+}
+
+/* 8031703C-80317040 31197C 0004+00 1/0 0/0 0/0 .text reset__18J3DPatchedMaterialFv */
+void J3DPatchedMaterial::reset() {
+ /* empty function */
+}
+
+/* 80317040-80317044 311980 0004+00 1/0 0/0 0/0 .text change__18J3DPatchedMaterialFv */
+void J3DPatchedMaterial::change() {
+ /* empty function */
+}
+
+/* 80317044-80317064 311984 0020+00 0/0 1/1 0/0 .text initialize__17J3DLockedMaterialFv
+ */
+void J3DLockedMaterial::initialize() {
+ J3DMaterial::initialize();
+}
+
+/* 80317064-80317068 3119A4 0004+00 1/0 0/0 0/0 .text makeDisplayList__17J3DLockedMaterialFv */
+void J3DLockedMaterial::makeDisplayList() {
+ /* empty function */
+}
+
+/* 80317068-8031706C 3119A8 0004+00 1/0 0/0 0/0 .text makeSharedDisplayList__17J3DLockedMaterialFv
+ */
+void J3DLockedMaterial::makeSharedDisplayList() {
+ /* empty function */
+}
+
+/* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */
+void J3DLockedMaterial::load() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (j3dSys.checkFlag(2)) {
+ return;
+ }
+}
+
+/* 80317088-803170C8 3119C8 0040+00 1/0 0/0 0/0 .text loadSharedDL__17J3DLockedMaterialFv
+ */
+void J3DLockedMaterial::loadSharedDL() {
+ j3dSys.setMaterialMode(mMaterialMode);
+ if (!j3dSys.checkFlag(0x02))
+ mSharedDLObj->callDL();
+}
+
+/* 803170C8-803170CC 311A08 0004+00 1/0 0/0 0/0 .text patch__17J3DLockedMaterialFv */
+void J3DLockedMaterial::patch() {
+ /* empty function */
+}
+
+/* 803170CC-803170D0 311A0C 0004+00 1/0 0/0 0/0 .text diff__17J3DLockedMaterialFUl */
+void J3DLockedMaterial::diff(u32 param_0) {
+ /* empty function */
+}
+
+/* 803170D0-803170D4 311A10 0004+00 1/0 0/0 0/0 .text calc__17J3DLockedMaterialFPA4_Cf */
+extern "C" asm void calc__17J3DLockedMaterialFPA4_Cf() {
+ /* empty function */
+}
+
+/* 803170D4-803170D8 311A14 0004+00 1/0 0/0 0/0 .text reset__17J3DLockedMaterialFv */
+void J3DLockedMaterial::reset() {
+ /* empty function */
+}
+
+/* 803170D8-803170DC 311A18 0004+00 1/0 0/0 0/0 .text change__17J3DLockedMaterialFv */
+void J3DLockedMaterial::change() {
+ /* empty function */
+}
+
+/* 803170DC-80317138 311A1C 005C+00 0/0 1/0 0/0 .text __dt__21J3DColorBlockLightOffFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm J3DColorBlockLightOff::~J3DColorBlockLightOff() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__21J3DColorBlockLightOffFv.s"
+}
+#pragma pop
+
+/* 80317138-80317180 311A78 0048+00 1/0 0/0 0/0 .text __dt__13J3DColorBlockFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+// asm J3DColorBlock::~J3DColorBlock() {
+extern "C" asm void __dt__13J3DColorBlockFv() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__13J3DColorBlockFv.s"
+}
+#pragma pop
+
+/* 80317180-803171DC 311AC0 005C+00 0/0 1/0 0/0 .text __dt__21J3DTexGenBlockPatchedFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm J3DTexGenBlockPatched::~J3DTexGenBlockPatched() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__21J3DTexGenBlockPatchedFv.s"
+}
+#pragma pop
+
+/* 803171DC-80317224 311B1C 0048+00 1/0 0/0 0/0 .text __dt__14J3DTexGenBlockFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+// asm J3DTexGenBlock::~J3DTexGenBlock() {
+extern "C" asm void __dt__14J3DTexGenBlockFv() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__14J3DTexGenBlockFv.s"
+}
+#pragma pop
+
+/* 80317224-8031726C 311B64 0048+00 0/0 1/0 0/0 .text __dt__11J3DTevBlockFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+// asm J3DTevBlock::~J3DTevBlock() {
+extern "C" asm void __dt__11J3DTevBlockFv() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__11J3DTevBlockFv.s"
+}
+#pragma pop
+
+/* 8031726C-803172B4 311BAC 0048+00 1/0 0/0 0/0 .text __dt__11J3DIndBlockFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm J3DIndBlock::~J3DIndBlock() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__11J3DIndBlockFv.s"
+}
+#pragma pop
+
+/* 803172B4-803172FC 311BF4 0048+00 1/0 0/0 0/0 .text __dt__10J3DPEBlockFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+// asm J3DPEBlock::~J3DPEBlock() {
+extern "C" asm void __dt__10J3DPEBlockFv() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__10J3DPEBlockFv.s"
+}
+#pragma pop
+
+/* 803172FC-80317304 311C3C 0008+00 1/0 1/0 0/0 .text countDLSize__14J3DTexGenBlockFv */
+s32 J3DTexGenBlock::countDLSize() {
+ return false;
+}
+
+/* 80317304-8031730C 311C44 0008+00 1/0 1/0 0/0 .text countDLSize__13J3DColorBlockFv */
+s32 J3DColorBlock::countDLSize() {
+ return false;
+}
+
+/* 8031730C-80317314 311C4C 0008+00 0/0 2/0 0/0 .text countDLSize__11J3DTevBlockFv */
+s32 J3DTevBlock::countDLSize() {
+ return false;
+}
+
+/* 80317314-8031731C 311C54 0008+00 2/0 0/0 0/0 .text countDLSize__11J3DIndBlockFv */
+s32 J3DIndBlock::countDLSize() {
+ return false;
+}
+
+/* 8031731C-80317324 311C5C 0008+00 1/0 1/0 0/0 .text countDLSize__10J3DPEBlockFv */
+s32 J3DPEBlock::countDLSize() {
+ return false;
+}
+
+/* 80317324-80317328 311C64 0004+00 1/0 1/0 0/0 .text load__13J3DColorBlockFv */
+extern "C" void load__13J3DColorBlockFv() {
+ /* empty function */
+}
+
+/* 80317328-80317330 311C68 0008+00 1/0 1/0 0/0 .text getCullMode__13J3DColorBlockCFv */
+s32 J3DColorBlock::getCullMode() const {
+ return 2;
+}
+
+/* 80317330-80317334 311C70 0004+00 0/0 2/0 0/0 .text load__11J3DTevBlockFv */
+void J3DTevBlock::load() {
+ /* empty function */
+}
+
+/* 80317334-8031733C 311C74 0008+00 1/0 2/0 0/0 .text getNBTScale__14J3DTexGenBlockFv */
+J3DNBTScale* J3DTexGenBlock::getNBTScale() {
+ return NULL;
+}
+
+/* 8031733C-80317340 311C7C 0004+00 1/0 1/0 0/0 .text patch__13J3DColorBlockFv */
+void J3DColorBlock::patch() {
+ /* empty function */
+}
+
+/* 80317340-80317344 311C80 0004+00 1/0 1/0 0/0 .text diff__13J3DColorBlockFUl */
+void J3DColorBlock::diff(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317344-80317348 311C84 0004+00 1/0 4/0 0/0 .text diff__10J3DPEBlockFUl */
+void J3DPEBlock::diff(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317348-8031734C 311C88 0004+00 1/0 4/0 0/0 .text reset__10J3DPEBlockFP10J3DPEBlock
+ */
+extern "C" void reset__10J3DPEBlockFP10J3DPEBlock() {
+ /* empty function */
+}
+
+/* 8031734C-80317350 311C8C 0004+00 1/0 0/0 0/0 .text reset__11J3DIndBlockFP11J3DIndBlock
+ */
+extern "C" void reset__11J3DIndBlockFP11J3DIndBlock() {
+ /* empty function */
+}
+
+/* 80317350-80317354 311C90 0004+00 0/0 1/0 0/0 .text reset__11J3DTevBlockFP11J3DTevBlock
+ */
+extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0) {
+ /* empty function */
+}
+
+/* 80317354-80317358 311C94 0004+00 1/0 1/0 0/0 .text reset__14J3DTexGenBlockFP14J3DTexGenBlock */
+extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock() {
+ /* empty function */
+}
+
+/* 80317358-8031735C 311C98 0004+00 1/0 1/0 0/0 .text reset__13J3DColorBlockFP13J3DColorBlock */
+void J3DColorBlock::reset(J3DColorBlock* param_0) {
+ /* empty function */
+}
+
+/* 8031735C-80317360 311C9C 0004+00 1/0 5/0 0/0 .text diffFog__10J3DPEBlockFv */
+void J3DPEBlock::diffFog() {
+ /* empty function */
+}
+
+/* 80317360-80317364 311CA0 0004+00 1/0 4/0 0/0 .text diffBlend__10J3DPEBlockFv */
+void J3DPEBlock::diffBlend() {
+ /* empty function */
+}
+
+/* 80317364-80317368 311CA4 0004+00 1/0 5/0 0/0 .text setFog__10J3DPEBlockFP6J3DFog */
+void J3DPEBlock::setFog(J3DFog* param_0) {
+ /* empty function */
+}
+
+/* 80317368-8031736C 311CA8 0004+00 1/0 5/0 0/0 .text setFog__10J3DPEBlockF6J3DFog */
+void J3DPEBlock::setFog(J3DFog param_0) {
+ /* empty function */
+}
+
+/* 8031736C-80317370 311CAC 0004+00 1/0 4/0 0/0 .text setAlphaComp__10J3DPEBlockFPC12J3DAlphaComp
+ */
+void J3DPEBlock::setAlphaComp(J3DAlphaComp const* param_0) {
+ /* empty function */
+}
+
+/* 80317370-80317374 311CB0 0004+00 1/0 4/0 0/0 .text setBlend__10J3DPEBlockFPC8J3DBlend
+ */
+void J3DPEBlock::setBlend(J3DBlend const* param_0) {
+ /* empty function */
+}
+
+/* 80317374-80317378 311CB4 0004+00 1/0 4/0 0/0 .text setZMode__10J3DPEBlockFPC8J3DZMode
+ */
+void J3DPEBlock::setZMode(J3DZMode const* param_0) {
+ /* empty function */
+}
+
+/* 80317378-8031737C 311CB8 0004+00 1/0 4/0 0/0 .text setZCompLoc__10J3DPEBlockFPCUc */
+void J3DPEBlock::setZCompLoc(u8 const* param_0) {
+ /* empty function */
+}
+
+/* 8031737C-80317380 311CBC 0004+00 1/0 4/0 0/0 .text setDither__10J3DPEBlockFUc */
+void J3DPEBlock::setDither(u8 param_0) {
+ /* empty function */
+}
+
+/* 80317380-80317384 311CC0 0004+00 1/0 4/0 0/0 .text setDither__10J3DPEBlockFPCUc */
+void J3DPEBlock::setDither(u8 const* param_0) {
+ /* empty function */
+}
+
+/* 80317384-8031738C 311CC4 0008+00 1/0 4/0 0/0 .text getDither__10J3DPEBlockCFv */
+bool J3DPEBlock::getDither() const {
+ return false;
+}
+
+/* 8031738C-80317394 311CCC 0008+00 1/0 5/0 0/0 .text getFogOffset__10J3DPEBlockCFv */
+bool J3DPEBlock::getFogOffset() const {
+ return false;
+}
+
+/* 80317394-80317398 311CD4 0004+00 1/0 5/0 0/0 .text setFogOffset__10J3DPEBlockFUl */
+void J3DPEBlock::setFogOffset(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317398-8031739C 311CD8 0004+00 1/0 0/0 0/0 .text diff__15J3DIndBlockNullFUl */
+void J3DIndBlockNull::diff(u32 param_0) {
+ /* empty function */
+}
+
+/* 8031739C-803173A0 311CDC 0004+00 1/0 0/0 0/0 .text load__15J3DIndBlockNullFv */
+void J3DIndBlockNull::load() {
+ /* empty function */
+}
+
+/* 803173A0-803173A4 311CE0 0004+00 1/0 0/0 0/0 .text reset__15J3DIndBlockNullFP11J3DIndBlock */
+extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() {
+ /* empty function */
+}
+
+/* 803173A4-803173B0 311CE4 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockNullFv */
+u32 J3DIndBlockNull::getType() {
+ return 'IBLN';
+}
+
+/* 803173B0-8031740C 311CF0 005C+00 1/0 0/0 0/0 .text __dt__15J3DIndBlockNullFv */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm J3DIndBlockNull::~J3DIndBlockNull() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DMaterial/__dt__15J3DIndBlockNullFv.s"
+}
+#pragma pop
+
+/* 8031740C-80317410 311D4C 0004+00 2/0 0/0 0/0 .text
+ * setIndTexOrder__11J3DIndBlockFUlPC14J3DIndTexOrder */
+void J3DIndBlock::setIndTexOrder(u32 param_0, J3DIndTexOrder const* param_1) {
+ /* empty function */
+}
+
+/* 80317410-80317414 311D50 0004+00 2/0 0/0 0/0 .text
+ * setIndTexOrder__11J3DIndBlockFUl14J3DIndTexOrder */
+void J3DIndBlock::setIndTexOrder(u32 param_0, J3DIndTexOrder param_1) {
+ /* empty function */
+}
+
+/* 80317414-80317418 311D54 0004+00 2/0 0/0 0/0 .text
+ * setIndTexMtx__11J3DIndBlockFUlPC12J3DIndTexMtx */
+void J3DIndBlock::setIndTexMtx(u32 param_0, J3DIndTexMtx const* param_1) {
+ /* empty function */
+}
+
+/* 80317418-8031741C 311D58 0004+00 2/0 0/0 0/0 .text
+ * setIndTexCoordScale__11J3DIndBlockFUlPC19J3DIndTexCoordScale */
+void J3DIndBlock::setIndTexCoordScale(u32 param_0, J3DIndTexCoordScale const* param_1) {
+ /* empty function */
+}
+
+/* 8031741C-80317420 311D5C 0004+00 1/0 1/0 0/0 .text setTexGenNum__14J3DTexGenBlockFPCUl
+ */
+void J3DTexGenBlock::setTexGenNum(u32 const* param_0) {
+ /* empty function */
+}
+
+/* 80317420-80317424 311D60 0004+00 1/0 2/0 0/0 .text setNBTScale__14J3DTexGenBlockF11J3DNBTScale
+ */
+void J3DTexGenBlock::setNBTScale(J3DNBTScale param_0) {
+ /* empty function */
+}
+
+/* 80317424-80317428 311D64 0004+00 1/0 2/0 0/0 .text
+ * setNBTScale__14J3DTexGenBlockFPC11J3DNBTScale */
+void J3DTexGenBlock::setNBTScale(J3DNBTScale const* param_0) {
+ /* empty function */
+}
+
+/* 80317428-80317430 311D68 0008+00 1/0 1/0 0/0 .text getTexMtxOffset__14J3DTexGenBlockCFv */
+bool J3DTexGenBlock::getTexMtxOffset() const {
+ return false;
+}
+
+/* 80317430-80317434 311D70 0004+00 1/0 1/0 0/0 .text setTexMtxOffset__14J3DTexGenBlockFUl */
+void J3DTexGenBlock::setTexMtxOffset(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317434-80317438 311D74 0004+00 1/0 1/0 0/0 .text patchMatColor__13J3DColorBlockFv */
+void J3DColorBlock::patchMatColor() {
+ /* empty function */
+}
+
+/* 80317438-8031743C 311D78 0004+00 1/0 3/0 0/0 .text diffAmbColor__13J3DColorBlockFv */
+void J3DColorBlock::diffAmbColor() {
+ /* empty function */
+}
+
+/* 8031743C-80317440 311D7C 0004+00 1/0 1/0 0/0 .text diffMatColor__13J3DColorBlockFv */
+void J3DColorBlock::diffMatColor() {
+ /* empty function */
+}
+
+/* 80317440-80317444 311D80 0004+00 1/0 1/0 0/0 .text diffColorChan__13J3DColorBlockFv */
+void J3DColorBlock::diffColorChan() {
+ /* empty function */
+}
+
+/* 80317444-80317448 311D84 0004+00 1/0 3/0 0/0 .text diffLightObj__13J3DColorBlockFUl */
+void J3DColorBlock::diffLightObj(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317448-8031744C 311D88 0004+00 1/0 1/0 0/0 .text
+ * setMatColor__13J3DColorBlockFUlPC10J3DGXColor */
+void J3DColorBlock::setMatColor(u32 param_0, J3DGXColor const* param_1) {
+ /* empty function */
+}
+
+/* 8031744C-80317450 311D8C 0004+00 1/0 1/0 0/0 .text setColorChanNum__13J3DColorBlockFPCUc */
+void J3DColorBlock::setColorChanNum(u8 const* param_0) {
+ /* empty function */
+}
+
+/* 80317450-80317454 311D90 0004+00 1/0 1/0 0/0 .text
+ * setColorChan__13J3DColorBlockFUlPC12J3DColorChan */
+void J3DColorBlock::setColorChan(u32 param_0, J3DColorChan const* param_1) {
+ /* empty function */
+}
+
+/* 80317454-8031745C 311D94 0008+00 1/0 3/0 0/0 .text getLight__13J3DColorBlockFUl */
+bool J3DColorBlock::getLight(u32 param_0) {
+ return false;
+}
+
+/* 8031745C-80317460 311D9C 0004+00 1/0 1/0 0/0 .text setCullMode__13J3DColorBlockFUc */
+void J3DColorBlock::setCullMode(u8 param_0) {
+ /* empty function */
+}
+
+/* 80317460-80317464 311DA0 0004+00 1/0 1/0 0/0 .text setCullMode__13J3DColorBlockFPCUc
+ */
+void J3DColorBlock::setCullMode(u8 const* param_0) {
+ /* empty function */
+}
+
+/* 80317464-8031746C 311DA4 0008+00 1/0 1/0 0/0 .text getMatColorOffset__13J3DColorBlockCFv */
+bool J3DColorBlock::getMatColorOffset() const {
+ return false;
+}
+
+/* 8031746C-80317474 311DAC 0008+00 1/0 1/0 0/0 .text getColorChanOffset__13J3DColorBlockCFv */
+bool J3DColorBlock::getColorChanOffset() const {
+ return false;
+}
+
+/* 80317474-80317478 311DB4 0004+00 1/0 1/0 0/0 .text setMatColorOffset__13J3DColorBlockFUl */
+void J3DColorBlock::setMatColorOffset(u32 param_0) {
+ /* empty function */
+}
+
+/* 80317478-8031747C 311DB8 0004+00 1/0 1/0 0/0 .text setColorChanOffset__13J3DColorBlockFUl */
+void J3DColorBlock::setColorChanOffset(u32 param_0) {
+ /* empty function */
+}
diff --git a/libs/JSystem/J3DGraphBase/J3DStruct.cpp b/libs/JSystem/J3DGraphBase/J3DStruct.cpp index 1ea220f35e..6b1cec2e2a 100644 --- a/libs/JSystem/J3DGraphBase/J3DStruct.cpp +++ b/libs/JSystem/J3DGraphBase/J3DStruct.cpp @@ -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;
}
\ No newline at end of file diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index 5445c572b3..c6a7a07767 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -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;
diff --git a/libs/JSystem/J3DGraphBase/J3DTevs.cpp b/libs/JSystem/J3DGraphBase/J3DTevs.cpp index 879bbac1fd..e8196589b0 100644 --- a/libs/JSystem/J3DGraphBase/J3DTevs.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTevs.cpp @@ -1,691 +1,687 @@ -// -// Generated By: dol2asm -// Translation Unit: J3DTevs -// - -#include "JSystem/J3DGraphBase/J3DTevs.h" -#include "JSystem/J3DGraphBase/J3DGD.h" -#include "JSystem/J3DGraphBase/J3DMatBlock.h" -#include "JSystem/J3DGraphBase/J3DSys.h" -#include "JSystem/J3DGraphBase/J3DTexture.h" -#include "JSystem/J3DGraphBase/J3DTransform.h" -#include "dol2asm.h" - -// -// Types: -// - -// -// Forward References: -// - -extern "C" void load__11J3DLightObjCFUl(); -extern "C" void loadTexCoordGens__FUlP11J3DTexCoord(); -extern "C" void load__9J3DTexMtxCFUl(); -extern "C" void calc__9J3DTexMtxFPA4_Cf(); -extern "C" void calcTexMtx__9J3DTexMtxFPA4_Cf(); -extern "C" void calcPostTexMtx__9J3DTexMtxFPA4_Cf(); -extern "C" void isTexNoReg__FPv(); -extern "C" void getTexNoReg__FPv(); -extern "C" void loadTexNo__FUlRCUs(); -extern "C" void patchTexNo_PtrToIdx__FUlRCUs(); -extern "C" void loadNBTScale__FR11J3DNBTScale(); -extern "C" void makeTexCoordTable__Fv(); -extern "C" void makeAlphaCmpTable__Fv(); -extern "C" void makeZModeTable__Fv(); -extern "C" void makeTevSwapTable__Fv(); -extern "C" void loadTexMtx__9J3DTexMtxCFUl(); -extern "C" void loadPostTexMtx__9J3DTexMtxCFUl(); -extern "C" static void J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType(); -extern "C" static void J3DGDLoadPostTexMtxImm__FPA4_fUl(); -extern "C" extern GXColor j3dDefaultColInfo; -extern "C" extern u32 j3dDefaultAmbInfo; -extern "C" extern u8 data_804563C8; -extern "C" extern u32 j3dDefaultTevOrderInfoNull; -extern "C" extern u32 j3dDefaultIndTexOrderNull; -extern "C" extern GXColorS10 j3dDefaultTevColor; -extern "C" extern u8 j3dDefaultIndTexCoordScaleInfo[4]; -extern "C" extern GXColor j3dDefaultTevKColor; -extern "C" extern u8 j3dDefaultTevSwapMode[4]; -extern "C" extern u32 j3dDefaultTevSwapModeTable; -extern "C" extern u8 j3dDefaultColorChanInfo[8]; -extern "C" extern u16 data_804563F8; - -// -// External References: -// - -extern void J3DGDSetTexImgPtrRaw(_GXTexMapID param_0, u32 param_1); - -extern "C" void J3DGDSetLightAttn__F10_GXLightIDffffff(); -extern "C" void J3DGDSetLightColor__F10_GXLightID8_GXColor(); -extern "C" void J3DGDSetLightPos__F10_GXLightIDfff(); -extern "C" void J3DGDSetLightDir__F10_GXLightIDfff(); -extern "C" void J3DGDSetTexCoordGen__F13_GXTexGenType12_GXTexGenSrc(); -extern "C" void -J3DGDSetTexLookupMode__F11_GXTexMapID14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilterfffUcUc13_GXAnisotropy(); -extern "C" void J3DGDSetTexImgAttr__F11_GXTexMapIDUsUs9_GXTexFmt(); -extern "C" void J3DGDSetTexImgPtr__F11_GXTexMapIDPv(); -extern "C" void J3DGDSetTexTlut__F11_GXTexMapIDUl10_GXTlutFmt(); -extern "C" void J3DGDLoadTlut__FPvUl11_GXTlutSize(); -extern "C" void J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f(); -extern "C" void J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f(); -extern "C" void J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f(); -extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f(); -extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f(); -extern "C" void GDOverflowed(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */]; - -// -// Declarations: -// - -/* 80323590-80323644 31DED0 00B4+00 0/0 3/3 0/0 .text load__11J3DLightObjCFUl */ -// missing instruction -#ifdef NONMATCHING -void J3DLightObj::load(u32 param_0) const { - GDOverflowCheck(0x48); - J3DGDSetLightPos(GXLightID(param_0 * 2), mInfo.mLightPosition.x, mInfo.mLightPosition.y, mInfo.mLightPosition.z); - J3DGDSetLightAttn(GXLightID(param_0 * 2), mInfo.mCosAtten.x, mInfo.mCosAtten.y, mInfo.mCosAtten.z, mInfo.mDistAtten.x, mInfo.mDistAtten.y, mInfo.mDistAtten.z); - J3DGDSetLightColor(GXLightID(param_0 * 2), mInfo.mColor); - J3DGDSetLightDir(GXLightID(param_0 * 2), mInfo.mLightDirection.x, mInfo.mLightDirection.y, mInfo.mLightDirection.z); -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DLightObj::load(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/load__11J3DLightObjCFUl.s" -} -#pragma pop -#endif - -/* 80323644-803238C4 31DF84 0280+00 0/0 3/3 0/0 .text loadTexCoordGens__FUlP11J3DTexCoord - */ -void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) { - GDOverflowCheck(param_0 * 8 + 10); - J3DGDWriteXFCmdHdr(0x1040, param_0); - for (int i = 0; i < param_0; i++) { - J3DGDSetTexCoordGen( - GXTexGenType(param_1[i].getTexGenType()), - GXTexGenSrc(param_1[i].getTexGenSrc()) - ); - } - J3DGDWriteXFCmdHdr(0x1050, param_0); - if (j3dSys.checkFlag(0x40000000)) { - for (int i = 0; i < param_0; i++) { - J3DGDWrite_u32(param_1[i].getTexGenMtx() == 60 ? 61 : i * 3); - } - } else { - for (int i = 0; i < param_0; i++) { - J3DGDWrite_u32(61); - } - } -} - -/* 803238C4-80323900 31E204 003C+00 0/0 6/6 0/0 .text load__9J3DTexMtxCFUl */ -void J3DTexMtx::load(u32 mtxIdx) const { - if (j3dSys.checkFlag(J3DSysFlag_PostTexMtx)) { - loadPostTexMtx(mtxIdx); - } else { - loadTexMtx(mtxIdx); - } -} - -/* 80323900-80323920 31E240 0020+00 0/0 2/2 0/0 .text calc__9J3DTexMtxFPA4_Cf */ -void J3DTexMtx::calc(f32 const (*param_0)[4]) { - calcTexMtx(param_0); -} - -/* 80323920-80323C0C 31E260 02EC+00 2/1 0/0 0/0 .text calcTexMtx__9J3DTexMtxFPA4_Cf */ -void J3DTexMtx::calcTexMtx(const Mtx param_0) { - Mtx44 mtx1; - Mtx44 mtx2; - - static Mtx qMtx = { - 0.5f, 0.0f, 0.5f, 0.0f, - 0.0f, -0.5f, 0.5f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - }; - static Mtx qMtx2 = { - 0.5f, 0.0f, 0.0f, 0.5f, - 0.0f, -0.5f, 0.0f, 0.5f, - 0.0f, 0.0f, 1.0f, 0.0f, - }; - - u8 r28 = mTexMtxInfo.mInfo & 0x3f; - u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1; - switch (r28) { - case 8: - case 9: - case 11: - if (r30 == 0) { - J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); - } - MTXConcat(mtx2, qMtx, mtx2); - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 7: - if (r30 == 0) { - J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); - } else if (r30 == 1) { - J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1); - } - MTXConcat(mtx1, qMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 10: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - MTXConcat(mtx2, qMtx2, mtx2); - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 6: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); - } - MTXConcat(mtx1, qMtx2, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 1: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); - } - MTXConcat(mtx1, param_0, mMtx); - break; - case 2: - case 3: - case 5: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 4: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); - break; - default: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); - } - break; - } -} - -/* 80323C0C-80323F64 31E54C 0358+00 1/0 2/2 0/0 .text calcPostTexMtx__9J3DTexMtxFPA4_Cf - */ -void J3DTexMtx::calcPostTexMtx(const Mtx param_0) { - Mtx44 mtx1; - Mtx44 mtx2; - - static Mtx qMtx = { - 0.5f, 0.0f, 0.5f, 0.0f, - 0.0f, -0.5f, 0.5f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - }; - static Mtx qMtx2 = { - 0.5f, 0.0f, 0.0f, 0.5f, - 0.0f, -0.5f, 0.0f, 0.5f, - 0.0f, 0.0f, 1.0f, 0.0f, - }; - - u8 r29 = mTexMtxInfo.mInfo & 0x3f; - u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1; - switch (r29) { - case 8: - case 11: - if (r30 == 0) { - J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); - } - MTXConcat(mtx2, qMtx, mtx2); - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 9: - if (r30 == 0) { - J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); - } - MTXConcat(mtx2, qMtx, mtx2); - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); - break; - case 7: - if (r30 == 0) { - J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); - } else if (r30 == 1) { - J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1); - } - MTXConcat(mtx1, qMtx, mMtx); - break; - case 10: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - MTXConcat(mtx2, qMtx2, mtx2); - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 6: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); - } - MTXConcat(mtx1, qMtx2, mMtx); - break; - case 1: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); - } - break; - case 2: - case 5: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); - MTXConcat(mtx1, param_0, mMtx); - break; - case 3: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); - break; - case 4: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); - } - J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); - break; - default: - if (r30 == 0) { - J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); - } else if (r30 == 1) { - J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); - } - break; - } -} - -/* 80323F64-80323F88 31E8A4 0024+00 0/0 1/1 0/0 .text isTexNoReg__FPv */ -bool isTexNoReg(void* param_0) { - u8 r31 = ((u8*)param_0)[1]; - if (r31 >= 0x80 && r31 <= 0xbb) { - return true; - } - return false; -} - -/* 80323F88-80323F94 31E8C8 000C+00 0/0 1/1 0/0 .text getTexNoReg__FPv */ -u16 getTexNoReg(void* param_0) { - return *(u32*)((u8*)param_0 + 1); -} - -/* ############################################################################################## */ -/* 804563B0-804563B4 0049B0 0004+00 1/1 0/0 0/0 .sdata2 @1167 */ -SECTION_SDATA2 static f32 lit_1167 = 0.125f; - -/* 804563B4-804563B8 0049B4 0004+00 1/1 0/0 0/0 .sdata2 @1168 */ -SECTION_SDATA2 static f32 lit_1168 = 1.0f / 100.0f; - -/* 804563B8-804563C0 0049B8 0008+00 1/1 0/0 0/0 .sdata2 @1171 */ -SECTION_SDATA2 static f64 lit_1171 = 4503601774854144.0 /* cast s32 to float */; - -/* 80323F94-8032413C 31E8D4 01A8+00 0/0 20/20 0/0 .text loadTexNo__FUlRCUs */ -void loadTexNo(u32 param_0, u16 const& param_1) { - ResTIMG* resTIMG = j3dSys.getTexture()->getResTIMG(param_1); - J3DSys::sTexCoordScaleTable[param_0].field_0x00 = resTIMG->width; - J3DSys::sTexCoordScaleTable[param_0].field_0x02 = resTIMG->height; - GDOverflowCheck(0x14); - J3DGDSetTexImgPtr(GXTexMapID(param_0), (u8*)resTIMG + resTIMG->imageOffset); - J3DGDSetTexImgAttr(GXTexMapID(param_0), resTIMG->width, resTIMG->height, GXTexFmt(resTIMG->format & 0x0f)); - J3DGDSetTexLookupMode(GXTexMapID(param_0), GXTexWrapMode(resTIMG->wrapS), GXTexWrapMode(resTIMG->wrapT), GXTexFilter(resTIMG->minFilter), GXTexFilter(resTIMG->magFilter), resTIMG->minLOD * 0.125f, resTIMG->maxLOD * 0.125f, resTIMG->LODBias * 0.01f, resTIMG->biasClamp, resTIMG->doEdgeLOD, GXAnisotropy(resTIMG->maxAnisotropy)); - if (resTIMG->indexTexture == true) { - GXTlutSize tlutSize = resTIMG->numColors > 16 ? GX_TLUT_256 : GX_TLUT_16; - GDOverflowCheck(0x14); - J3DGDLoadTlut((u8*)resTIMG + resTIMG->paletteOffset, (param_0 << 13) + 0xf0000, tlutSize); - J3DGDSetTexTlut(GXTexMapID(param_0), (param_0 << 13) + 0xf0000, GXTlutFmt(resTIMG->colorFormat)); - } -} - -/* 8032413C-80324160 31EA7C 0024+00 0/0 2/2 0/0 .text patchTexNo_PtrToIdx__FUlRCUs */ -void patchTexNo_PtrToIdx(u32 texID, u16 const& idx) { - J3DGDSetTexImgPtrRaw(GXTexMapID(texID), idx); -} - -/* 80324160-80324194 31EAA0 0034+00 0/0 2/2 0/0 .text loadNBTScale__FR11J3DNBTScale */ -void loadNBTScale(J3DNBTScale& param_0) { - if (param_0.mbHasScale == true) { - j3dSys.setNBTScale(¶m_0.mScale); - } else { - j3dSys.setNBTScale(NULL); - } -} - -/* ############################################################################################## */ -/* 803A1EC8-803A1EFC 02E528 0034+00 0/0 9/9 24/24 .rodata j3dDefaultLightInfo */ -SECTION_RODATA extern const J3DLightInfo j3dDefaultLightInfo = { - 0.0f, 0.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0xff, 0xff, 0xff, 0xff, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, -}; -COMPILER_STRIP_GATE(0x803A1EC8, &j3dDefaultLightInfo); - -/* 803A1EFC-803A1F1C 02E55C 0020+00 0/0 5/5 0/0 .rodata j3dDefaultTexCoordInfo */ -SECTION_RODATA extern J3DDefaultTexCoordInfo const j3dDefaultTexCoordInfo[8] = { - {GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0}, - {GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0}, - {GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0}, - {GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0}, -}; -COMPILER_STRIP_GATE(0x803A1EFC, &j3dDefaultTexCoordInfo); - -/* 803A1F1C-803A1F80 02E57C 0064+00 0/0 1/1 0/0 .rodata j3dDefaultTexMtxInfo */ -SECTION_RODATA extern u8 const j3dDefaultTexMtxInfo[100] = { - 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1F1C, &j3dDefaultTexMtxInfo); - -/* 803A1F80-803A1F9C 02E5E0 001C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTexMtxInfo */ -SECTION_RODATA extern u8 const j3dDefaultIndTexMtxInfo[28] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1F80, &j3dDefaultIndTexMtxInfo); - -/* 803A1F9C-803A1FB0 02E5FC 0014+00 0/0 1/1 0/0 .rodata j3dDefaultTevStageInfo */ -SECTION_RODATA extern u8 const j3dDefaultTevStageInfo[20] = { - 0x04, 0x0A, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x05, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1F9C, &j3dDefaultTevStageInfo); - -/* 803A1FB0-803A1FBC 02E610 000C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTevStageInfo */ -SECTION_RODATA extern u8 const j3dDefaultIndTevStageInfo[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1FB0, &j3dDefaultIndTevStageInfo); - -/* 803A1FBC-803A1FE8 02E61C 002C+00 0/0 3/3 0/0 .rodata j3dDefaultFogInfo */ -SECTION_RODATA extern J3DFogInfo const j3dDefaultFogInfo = { - 0x00, 0x00, 0x0140, 0.0f, 0.0f, 0.1f, 10000.0f, 0xFF, 0xFF, 0xFF, 0x00, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -COMPILER_STRIP_GATE(0x803A1FBC, &j3dDefaultFogInfo); - -/* 803A1FE8-803A1FF8 02E648 0010+00 0/0 3/3 0/0 .rodata j3dDefaultNBTScaleInfo */ -SECTION_RODATA extern J3DNBTScaleInfo const j3dDefaultNBTScaleInfo = { - 0x00, 1.0f, 1.0f, 1.0f, -}; -COMPILER_STRIP_GATE(0x803A1FE8, &j3dDefaultNBTScaleInfo); - -/* 803A1FF8-803A2008 02E658 000B+05 1/1 0/0 0/0 .rodata @1197 */ -SECTION_RODATA static u8 const lit_1197[11 + 5 /* padding */] = { - 0x1E, - 0x21, - 0x24, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A1FF8, &lit_1197); - -/* 80434C98-80436A60 0619B8 1DC7+01 1/1 0/0 0/0 .bss j3dTexCoordTable */ -static u8 j3dTexCoordTable[7623 + 1 /* padding */]; - -/* 80324194-8032423C 31EAD4 00A8+00 0/0 1/1 0/0 .text makeTexCoordTable__Fv */ -// regswap -#ifdef NONMATCHING -void makeTexCoordTable() { - u8 bytes[] = { 0x1e, 0x21, 0x24, 0x27, 0x2a, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c }; - - u8* table = j3dTexCoordTable; - for (u32 i = 0; i < 11; i++) { - for (u32 j = 0; j < 21; j++) { - for (int k = 0; k < 11; k++) { - u32 idx = i * 0xe7 + j * 11 + k; - table[idx * 3] = i; - table[idx * 3 + 1] = j; - table[idx * 3 + 2] = bytes[k]; - } - } - } -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void makeTexCoordTable() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/makeTexCoordTable__Fv.s" -} -#pragma pop -#endif - -/* ############################################################################################## */ -/* 80436A60-80436E60 063780 0400+00 1/1 3/3 0/0 .bss j3dTevSwapTableTable */ -extern u8 j3dTevSwapTableTable[1024]; -u8 j3dTevSwapTableTable[1024]; - -/* 80436E60-80437160 063B80 0300+00 1/1 2/2 0/0 .bss j3dAlphaCmpTable */ -extern u8 j3dAlphaCmpTable[768]; -u8 j3dAlphaCmpTable[768]; - -/* 8032423C-803242A8 31EB7C 006C+00 0/0 1/1 0/0 .text makeAlphaCmpTable__Fv */ -void makeAlphaCmpTable() { - u8* table = j3dAlphaCmpTable; - for (u32 i = 0; i < 8; i++) { - for (int j = 0; j < 4; j++) { - for (u32 k = 0; k < 8; k++) { - u32 idx = i * 32 + j * 8 + k; - table[idx * 3] = i; - table[idx * 3 + 1] = j; - table[idx * 3 + 2] = k; - } - } - } -} - -/* ############################################################################################## */ -/* 80437160-804371C0 063E80 0060+00 1/1 4/4 5/5 .bss j3dZModeTable */ -extern u8 j3dZModeTable[96]; -u8 j3dZModeTable[96]; - -/* 803242A8-80324314 31EBE8 006C+00 0/0 1/1 0/0 .text makeZModeTable__Fv */ -// regswap -#ifdef NONMATCHING -void makeZModeTable() { - u8* table = j3dZModeTable; - for (int i = 0; i < 2; i++) { - for (u32 j = 0; j < 8; j++) { - for (int k = 0; k < 2; k++) { - u32 idx = i * 16 + j * 2 + k; - table[idx * 3] = i; - table[idx * 3 + 1] = j; - table[idx * 3 + 2] = k; - } - } - } -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void makeZModeTable() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/makeZModeTable__Fv.s" -} -#pragma pop -#endif - -/* 80324314-80324358 31EC54 0044+00 0/0 1/1 0/0 .text makeTevSwapTable__Fv */ -void makeTevSwapTable() { - u8* table = j3dTevSwapTableTable; - int i = 0; - do { - table[0] = i >> 6; - table[1] = (i >> 4) & 3; - table[2] = (i >> 2) & 3; - table[3] = i & 3; - i++; - table += 4; - } while (i < 256); -} - -/* 80324358-803243BC 31EC98 0064+00 1/1 0/0 0/0 .text loadTexMtx__9J3DTexMtxCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::loadTexMtx(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadTexMtx__9J3DTexMtxCFUl.s" -} -#pragma pop - -/* 803243BC-8032441C 31ECFC 0060+00 1/1 0/0 0/0 .text loadPostTexMtx__9J3DTexMtxCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::loadPostTexMtx(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadPostTexMtx__9J3DTexMtxCFUl.s" -} -#pragma pop - -/* 8032441C-8032499C 31ED5C 0580+00 1/1 0/0 0/0 .text J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DGDLoadTexMtxImm(f32 (*param_0)[4], u32 param_1, _GXTexMtxType param_2) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType.s" -} -#pragma pop - -/* 8032499C-80324F08 31F2DC 056C+00 1/1 0/0 0/0 .text J3DGDLoadPostTexMtxImm__FPA4_fUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DGDLoadPostTexMtxImm(f32 (*param_0)[4], u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadPostTexMtxImm__FPA4_fUl.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804563C0-804563C4 0049C0 0004+00 0/0 4/4 0/0 .sdata2 j3dDefaultColInfo */ -SECTION_SDATA2 extern GXColor j3dDefaultColInfo = {0xFF, 0xFF, 0xFF, 0xFF}; - -/* 804563C4-804563C8 0049C4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultAmbInfo */ -SECTION_SDATA2 extern u32 j3dDefaultAmbInfo = 0x32323232; - -/* 804563C8-804563CC 0049C8 0004+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u8 data_804563C8 = 0x01; - -/* 804563CC-804563D0 0049CC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultTevOrderInfoNull */ -SECTION_SDATA2 extern u32 j3dDefaultTevOrderInfoNull = 0xFFFFFF00; - -/* 804563D0-804563D4 0049D0 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexOrderNull */ -SECTION_SDATA2 extern u32 j3dDefaultIndTexOrderNull = 0xFFFF0000; - -/* 804563D4-804563D8 0049D4 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevColor */ -SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = {0xFF, 0xFF, 0xFF, 0xFF}; - -/* 804563DC-804563E0 0049DC 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexCoordScaleInfo */ -SECTION_SDATA2 extern u8 j3dDefaultIndTexCoordScaleInfo[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804563E0-804563E4 0049E0 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevKColor */ -SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = {0xFF, 0xFF, 0xFF, 0xFF}; - -/* 804563E4-804563E8 0049E4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapMode */ -SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804563E8-804563EC 0049E8 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapModeTable */ -SECTION_SDATA2 extern u32 j3dDefaultTevSwapModeTable = 0x00010203; - -/* 804563EC-804563F0 0049EC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultBlendInfo */ -SECTION_SDATA2 extern const J3DBlendInfo j3dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP}; - -/* 804563F0-804563F8 0049F0 0008+00 0/0 3/3 0/0 .sdata2 j3dDefaultColorChanInfo */ -SECTION_SDATA2 extern u8 j3dDefaultColorChanInfo[8] = { - 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0xFF, 0xFF, -}; - -/* 804563F8-804563FA 0049F8 0002+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u16 data_804563F8 = 0x1B00; - -/* 804563FA-804563FC 0049FA 0002+00 0/0 1/1 0/0 .sdata2 j3dDefaultAlphaCmpID */ -SECTION_SDATA2 extern const u16 j3dDefaultAlphaCmpID = 0x00E7; - -/* 804563FC-80456400 0049FC 0002+02 0/0 3/3 0/0 .sdata2 j3dDefaultZModeID */ -SECTION_SDATA2 extern const u16 j3dDefaultZModeID = 0x0017; +//
+// Generated By: dol2asm
+// Translation Unit: J3DTevs
+//
+
+#include "JSystem/J3DGraphBase/J3DTevs.h"
+#include "JSystem/J3DGraphBase/J3DGD.h"
+#include "JSystem/J3DGraphBase/J3DMatBlock.h"
+#include "JSystem/J3DGraphBase/J3DSys.h"
+#include "JSystem/J3DGraphBase/J3DTexture.h"
+#include "JSystem/J3DGraphBase/J3DTransform.h"
+#include "dol2asm.h"
+
+//
+// Types:
+//
+
+//
+// Forward References:
+//
+
+extern "C" void load__11J3DLightObjCFUl();
+extern "C" void loadTexCoordGens__FUlP11J3DTexCoord();
+extern "C" void load__9J3DTexMtxCFUl();
+extern "C" void calc__9J3DTexMtxFPA4_Cf();
+extern "C" void calcTexMtx__9J3DTexMtxFPA4_Cf();
+extern "C" void calcPostTexMtx__9J3DTexMtxFPA4_Cf();
+extern "C" void isTexNoReg__FPv();
+extern "C" void getTexNoReg__FPv();
+extern "C" void loadTexNo__FUlRCUs();
+extern "C" void patchTexNo_PtrToIdx__FUlRCUs();
+extern "C" void loadNBTScale__FR11J3DNBTScale();
+extern "C" void makeTexCoordTable__Fv();
+extern "C" void makeAlphaCmpTable__Fv();
+extern "C" void makeZModeTable__Fv();
+extern "C" void makeTevSwapTable__Fv();
+extern "C" void loadTexMtx__9J3DTexMtxCFUl();
+extern "C" void loadPostTexMtx__9J3DTexMtxCFUl();
+extern "C" static void J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType();
+extern "C" static void J3DGDLoadPostTexMtxImm__FPA4_fUl();
+extern "C" extern GXColor j3dDefaultColInfo;
+extern "C" extern u32 j3dDefaultAmbInfo;
+extern "C" extern u8 data_804563C8;
+extern "C" extern GXColorS10 j3dDefaultTevColor;
+extern "C" extern GXColor j3dDefaultTevKColor;
+extern "C" extern u8 j3dDefaultTevSwapMode[4];
+extern "C" extern u16 data_804563F8;
+
+//
+// External References:
+//
+
+extern void J3DGDSetTexImgPtrRaw(_GXTexMapID param_0, u32 param_1);
+
+extern "C" void J3DGDSetLightAttn__F10_GXLightIDffffff();
+extern "C" void J3DGDSetLightColor__F10_GXLightID8_GXColor();
+extern "C" void J3DGDSetLightPos__F10_GXLightIDfff();
+extern "C" void J3DGDSetLightDir__F10_GXLightIDfff();
+extern "C" void J3DGDSetTexCoordGen__F13_GXTexGenType12_GXTexGenSrc();
+extern "C" void
+J3DGDSetTexLookupMode__F11_GXTexMapID14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilterfffUcUc13_GXAnisotropy();
+extern "C" void J3DGDSetTexImgAttr__F11_GXTexMapIDUsUs9_GXTexFmt();
+extern "C" void J3DGDSetTexImgPtr__F11_GXTexMapIDPv();
+extern "C" void J3DGDSetTexTlut__F11_GXTexMapIDUl10_GXTlutFmt();
+extern "C" void J3DGDLoadTlut__FPvUl11_GXTlutSize();
+extern "C" void J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f();
+extern "C" void J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f();
+extern "C" void J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f();
+extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f();
+extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f();
+extern "C" void GDOverflowed();
+extern "C" void _savegpr_26();
+extern "C" void _savegpr_28();
+extern "C" void _restgpr_26();
+extern "C" void _restgpr_28();
+extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */];
+
+//
+// Declarations:
+//
+
+/* 80323590-80323644 31DED0 00B4+00 0/0 3/3 0/0 .text load__11J3DLightObjCFUl */
+// missing instruction
+#ifdef NONMATCHING
+void J3DLightObj::load(u32 param_0) const {
+ GDOverflowCheck(0x48);
+ J3DGDSetLightPos(GXLightID(param_0 * 2), mInfo.mLightPosition.x, mInfo.mLightPosition.y, mInfo.mLightPosition.z);
+ J3DGDSetLightAttn(GXLightID(param_0 * 2), mInfo.mCosAtten.x, mInfo.mCosAtten.y, mInfo.mCosAtten.z, mInfo.mDistAtten.x, mInfo.mDistAtten.y, mInfo.mDistAtten.z);
+ J3DGDSetLightColor(GXLightID(param_0 * 2), mInfo.mColor);
+ J3DGDSetLightDir(GXLightID(param_0 * 2), mInfo.mLightDirection.x, mInfo.mLightDirection.y, mInfo.mLightDirection.z);
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void J3DLightObj::load(u32 param_0) const {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/load__11J3DLightObjCFUl.s"
+}
+#pragma pop
+#endif
+
+/* 80323644-803238C4 31DF84 0280+00 0/0 3/3 0/0 .text loadTexCoordGens__FUlP11J3DTexCoord
+ */
+void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) {
+ GDOverflowCheck(param_0 * 8 + 10);
+ J3DGDWriteXFCmdHdr(0x1040, param_0);
+ for (int i = 0; i < param_0; i++) {
+ J3DGDSetTexCoordGen(
+ GXTexGenType(param_1[i].getTexGenType()),
+ GXTexGenSrc(param_1[i].getTexGenSrc())
+ );
+ }
+ J3DGDWriteXFCmdHdr(0x1050, param_0);
+ if (j3dSys.checkFlag(0x40000000)) {
+ for (int i = 0; i < param_0; i++) {
+ J3DGDWrite_u32(param_1[i].getTexGenMtx() == 60 ? 61 : i * 3);
+ }
+ } else {
+ for (int i = 0; i < param_0; i++) {
+ J3DGDWrite_u32(61);
+ }
+ }
+}
+
+/* 803238C4-80323900 31E204 003C+00 0/0 6/6 0/0 .text load__9J3DTexMtxCFUl */
+void J3DTexMtx::load(u32 mtxIdx) const {
+ if (j3dSys.checkFlag(J3DSysFlag_PostTexMtx)) {
+ loadPostTexMtx(mtxIdx);
+ } else {
+ loadTexMtx(mtxIdx);
+ }
+}
+
+/* 80323900-80323920 31E240 0020+00 0/0 2/2 0/0 .text calc__9J3DTexMtxFPA4_Cf */
+void J3DTexMtx::calc(f32 const (*param_0)[4]) {
+ calcTexMtx(param_0);
+}
+
+/* 80323920-80323C0C 31E260 02EC+00 2/1 0/0 0/0 .text calcTexMtx__9J3DTexMtxFPA4_Cf */
+void J3DTexMtx::calcTexMtx(const Mtx param_0) {
+ Mtx44 mtx1;
+ Mtx44 mtx2;
+
+ static Mtx qMtx = {
+ 0.5f, 0.0f, 0.5f, 0.0f,
+ 0.0f, -0.5f, 0.5f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ };
+ static Mtx qMtx2 = {
+ 0.5f, 0.0f, 0.0f, 0.5f,
+ 0.0f, -0.5f, 0.0f, 0.5f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ };
+
+ u8 r28 = mTexMtxInfo.mInfo & 0x3f;
+ u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1;
+ switch (r28) {
+ case 8:
+ case 9:
+ case 11:
+ if (r30 == 0) {
+ J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2);
+ }
+ MTXConcat(mtx2, qMtx, mtx2);
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 7:
+ if (r30 == 0) {
+ J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1);
+ }
+ MTXConcat(mtx1, qMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 10:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ MTXConcat(mtx2, qMtx2, mtx2);
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 6:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1);
+ }
+ MTXConcat(mtx1, qMtx2, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 1:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1);
+ }
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 2:
+ case 3:
+ case 5:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 4:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx);
+ break;
+ default:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx);
+ }
+ break;
+ }
+}
+
+/* 80323C0C-80323F64 31E54C 0358+00 1/0 2/2 0/0 .text calcPostTexMtx__9J3DTexMtxFPA4_Cf
+ */
+void J3DTexMtx::calcPostTexMtx(const Mtx param_0) {
+ Mtx44 mtx1;
+ Mtx44 mtx2;
+
+ static Mtx qMtx = {
+ 0.5f, 0.0f, 0.5f, 0.0f,
+ 0.0f, -0.5f, 0.5f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ };
+ static Mtx qMtx2 = {
+ 0.5f, 0.0f, 0.0f, 0.5f,
+ 0.0f, -0.5f, 0.0f, 0.5f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ };
+
+ u8 r29 = mTexMtxInfo.mInfo & 0x3f;
+ u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1;
+ switch (r29) {
+ case 8:
+ case 11:
+ if (r30 == 0) {
+ J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2);
+ }
+ MTXConcat(mtx2, qMtx, mtx2);
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 9:
+ if (r30 == 0) {
+ J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2);
+ }
+ MTXConcat(mtx2, qMtx, mtx2);
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx);
+ break;
+ case 7:
+ if (r30 == 0) {
+ J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1);
+ }
+ MTXConcat(mtx1, qMtx, mMtx);
+ break;
+ case 10:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ MTXConcat(mtx2, qMtx2, mtx2);
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 6:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1);
+ }
+ MTXConcat(mtx1, qMtx2, mMtx);
+ break;
+ case 1:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx);
+ }
+ break;
+ case 2:
+ case 5:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1);
+ MTXConcat(mtx1, param_0, mMtx);
+ break;
+ case 3:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx);
+ break;
+ case 4:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2);
+ }
+ J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx);
+ break;
+ default:
+ if (r30 == 0) {
+ J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx);
+ } else if (r30 == 1) {
+ J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx);
+ }
+ break;
+ }
+}
+
+/* 80323F64-80323F88 31E8A4 0024+00 0/0 1/1 0/0 .text isTexNoReg__FPv */
+bool isTexNoReg(void* param_0) {
+ u8 r31 = ((u8*)param_0)[1];
+ if (r31 >= 0x80 && r31 <= 0xbb) {
+ return true;
+ }
+ return false;
+}
+
+/* 80323F88-80323F94 31E8C8 000C+00 0/0 1/1 0/0 .text getTexNoReg__FPv */
+u16 getTexNoReg(void* param_0) {
+ return *(u32*)((u8*)param_0 + 1);
+}
+
+/* ############################################################################################## */
+/* 804563B0-804563B4 0049B0 0004+00 1/1 0/0 0/0 .sdata2 @1167 */
+SECTION_SDATA2 static f32 lit_1167 = 0.125f;
+
+/* 804563B4-804563B8 0049B4 0004+00 1/1 0/0 0/0 .sdata2 @1168 */
+SECTION_SDATA2 static f32 lit_1168 = 1.0f / 100.0f;
+
+/* 804563B8-804563C0 0049B8 0008+00 1/1 0/0 0/0 .sdata2 @1171 */
+SECTION_SDATA2 static f64 lit_1171 = 4503601774854144.0 /* cast s32 to float */;
+
+/* 80323F94-8032413C 31E8D4 01A8+00 0/0 20/20 0/0 .text loadTexNo__FUlRCUs */
+void loadTexNo(u32 param_0, u16 const& param_1) {
+ ResTIMG* resTIMG = j3dSys.getTexture()->getResTIMG(param_1);
+ J3DSys::sTexCoordScaleTable[param_0].field_0x00 = resTIMG->width;
+ J3DSys::sTexCoordScaleTable[param_0].field_0x02 = resTIMG->height;
+ GDOverflowCheck(0x14);
+ J3DGDSetTexImgPtr(GXTexMapID(param_0), (u8*)resTIMG + resTIMG->imageOffset);
+ J3DGDSetTexImgAttr(GXTexMapID(param_0), resTIMG->width, resTIMG->height, GXTexFmt(resTIMG->format & 0x0f));
+ J3DGDSetTexLookupMode(GXTexMapID(param_0), GXTexWrapMode(resTIMG->wrapS), GXTexWrapMode(resTIMG->wrapT), GXTexFilter(resTIMG->minFilter), GXTexFilter(resTIMG->magFilter), resTIMG->minLOD * 0.125f, resTIMG->maxLOD * 0.125f, resTIMG->LODBias * 0.01f, resTIMG->biasClamp, resTIMG->doEdgeLOD, GXAnisotropy(resTIMG->maxAnisotropy));
+ if (resTIMG->indexTexture == true) {
+ GXTlutSize tlutSize = resTIMG->numColors > 16 ? GX_TLUT_256 : GX_TLUT_16;
+ GDOverflowCheck(0x14);
+ J3DGDLoadTlut((u8*)resTIMG + resTIMG->paletteOffset, (param_0 << 13) + 0xf0000, tlutSize);
+ J3DGDSetTexTlut(GXTexMapID(param_0), (param_0 << 13) + 0xf0000, GXTlutFmt(resTIMG->colorFormat));
+ }
+}
+
+/* 8032413C-80324160 31EA7C 0024+00 0/0 2/2 0/0 .text patchTexNo_PtrToIdx__FUlRCUs */
+void patchTexNo_PtrToIdx(u32 texID, u16 const& idx) {
+ J3DGDSetTexImgPtrRaw(GXTexMapID(texID), idx);
+}
+
+/* 80324160-80324194 31EAA0 0034+00 0/0 2/2 0/0 .text loadNBTScale__FR11J3DNBTScale */
+void loadNBTScale(J3DNBTScale& param_0) {
+ if (param_0.mbHasScale == true) {
+ j3dSys.setNBTScale(¶m_0.mScale);
+ } else {
+ j3dSys.setNBTScale(NULL);
+ }
+}
+
+/* ############################################################################################## */
+/* 803A1EC8-803A1EFC 02E528 0034+00 0/0 9/9 24/24 .rodata j3dDefaultLightInfo */
+SECTION_RODATA extern const J3DLightInfo j3dDefaultLightInfo = {
+ 0.0f, 0.0f, 0.0f,
+ 0.0f, -1.0f, 0.0f,
+ 0xff, 0xff, 0xff, 0xff,
+ 1.0f, 0.0f, 0.0f,
+ 1.0f, 0.0f, 0.0f,
+};
+COMPILER_STRIP_GATE(0x803A1EC8, &j3dDefaultLightInfo);
+
+/* 803A1EFC-803A1F1C 02E55C 0020+00 0/0 5/5 0/0 .rodata j3dDefaultTexCoordInfo */
+SECTION_RODATA extern J3DTexCoordInfo const j3dDefaultTexCoordInfo[8] = {
+ {GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0},
+ {GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0},
+ {GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0},
+ {GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0},
+};
+COMPILER_STRIP_GATE(0x803A1EFC, &j3dDefaultTexCoordInfo);
+
+/* 803A1F1C-803A1F80 02E57C 0064+00 0/0 1/1 0/0 .rodata j3dDefaultTexMtxInfo */
+SECTION_RODATA extern u8 const j3dDefaultTexMtxInfo[100] = {
+ 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
+};
+COMPILER_STRIP_GATE(0x803A1F1C, &j3dDefaultTexMtxInfo);
+
+/* 803A1F80-803A1F9C 02E5E0 001C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTexMtxInfo */
+SECTION_RODATA extern J3DIndTexMtxInfo const j3dDefaultIndTexMtxInfo = {
+ 0.5f, 0.0f, 0.0f,
+ 0.0f, 0.5f, 0.0f,
+ 1
+};
+COMPILER_STRIP_GATE(0x803A1F80, &j3dDefaultIndTexMtxInfo);
+
+/* 803A1F9C-803A1FB0 02E5FC 0014+00 0/0 1/1 0/0 .rodata j3dDefaultTevStageInfo */
+SECTION_RODATA extern J3DTevStageInfo const j3dDefaultTevStageInfo = {
+ 0x04, 0x0A, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x05, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+};
+COMPILER_STRIP_GATE(0x803A1F9C, &j3dDefaultTevStageInfo);
+
+/* 803A1FB0-803A1FBC 02E610 000C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTevStageInfo */
+SECTION_RODATA extern J3DIndTevStageInfo const j3dDefaultIndTevStageInfo = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+COMPILER_STRIP_GATE(0x803A1FB0, &j3dDefaultIndTevStageInfo);
+
+/* 803A1FBC-803A1FE8 02E61C 002C+00 0/0 3/3 0/0 .rodata j3dDefaultFogInfo */
+SECTION_RODATA extern J3DFogInfo const j3dDefaultFogInfo = {
+ 0x00, 0x00, 0x0140, 0.0f, 0.0f, 0.1f, 10000.0f, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+};
+COMPILER_STRIP_GATE(0x803A1FBC, &j3dDefaultFogInfo);
+
+/* 803A1FE8-803A1FF8 02E648 0010+00 0/0 3/3 0/0 .rodata j3dDefaultNBTScaleInfo */
+SECTION_RODATA extern J3DNBTScaleInfo const j3dDefaultNBTScaleInfo = {
+ 0x00, 1.0f, 1.0f, 1.0f,
+};
+COMPILER_STRIP_GATE(0x803A1FE8, &j3dDefaultNBTScaleInfo);
+
+/* 803A1FF8-803A2008 02E658 000B+05 1/1 0/0 0/0 .rodata @1197 */
+SECTION_RODATA static u8 const lit_1197[11 + 5 /* padding */] = {
+ 0x1E,
+ 0x21,
+ 0x24,
+ 0x27,
+ 0x2A,
+ 0x2D,
+ 0x30,
+ 0x33,
+ 0x36,
+ 0x39,
+ 0x3C,
+ /* padding */
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+COMPILER_STRIP_GATE(0x803A1FF8, &lit_1197);
+
+/* 80434C98-80436A60 0619B8 1DC7+01 1/1 0/0 0/0 .bss j3dTexCoordTable */
+static u8 j3dTexCoordTable[7623 + 1 /* padding */];
+
+/* 80324194-8032423C 31EAD4 00A8+00 0/0 1/1 0/0 .text makeTexCoordTable__Fv */
+// regswap
+#ifdef NONMATCHING
+void makeTexCoordTable() {
+ u8 bytes[] = { 0x1e, 0x21, 0x24, 0x27, 0x2a, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c };
+
+ u8* table = j3dTexCoordTable;
+ for (u32 i = 0; i < 11; i++) {
+ for (u32 j = 0; j < 21; j++) {
+ for (int k = 0; k < 11; k++) {
+ u32 idx = i * 0xe7 + j * 11 + k;
+ table[idx * 3] = i;
+ table[idx * 3 + 1] = j;
+ table[idx * 3 + 2] = bytes[k];
+ }
+ }
+ }
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void makeTexCoordTable() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/makeTexCoordTable__Fv.s"
+}
+#pragma pop
+#endif
+
+/* ############################################################################################## */
+/* 80436A60-80436E60 063780 0400+00 1/1 3/3 0/0 .bss j3dTevSwapTableTable */
+extern u8 j3dTevSwapTableTable[1024];
+u8 j3dTevSwapTableTable[1024];
+
+/* 80436E60-80437160 063B80 0300+00 1/1 2/2 0/0 .bss j3dAlphaCmpTable */
+extern u8 j3dAlphaCmpTable[768];
+u8 j3dAlphaCmpTable[768];
+
+/* 8032423C-803242A8 31EB7C 006C+00 0/0 1/1 0/0 .text makeAlphaCmpTable__Fv */
+void makeAlphaCmpTable() {
+ u8* table = j3dAlphaCmpTable;
+ for (u32 i = 0; i < 8; i++) {
+ for (int j = 0; j < 4; j++) {
+ for (u32 k = 0; k < 8; k++) {
+ u32 idx = i * 32 + j * 8 + k;
+ table[idx * 3] = i;
+ table[idx * 3 + 1] = j;
+ table[idx * 3 + 2] = k;
+ }
+ }
+ }
+}
+
+/* ############################################################################################## */
+/* 80437160-804371C0 063E80 0060+00 1/1 4/4 5/5 .bss j3dZModeTable */
+extern u8 j3dZModeTable[96];
+u8 j3dZModeTable[96];
+
+/* 803242A8-80324314 31EBE8 006C+00 0/0 1/1 0/0 .text makeZModeTable__Fv */
+// regswap
+#ifdef NONMATCHING
+void makeZModeTable() {
+ u8* table = j3dZModeTable;
+ for (int i = 0; i < 2; i++) {
+ for (u32 j = 0; j < 8; j++) {
+ for (int k = 0; k < 2; k++) {
+ u32 idx = i * 16 + j * 2 + k;
+ table[idx * 3] = i;
+ table[idx * 3 + 1] = j;
+ table[idx * 3 + 2] = k;
+ }
+ }
+ }
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void makeZModeTable() {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/makeZModeTable__Fv.s"
+}
+#pragma pop
+#endif
+
+/* 80324314-80324358 31EC54 0044+00 0/0 1/1 0/0 .text makeTevSwapTable__Fv */
+void makeTevSwapTable() {
+ u8* table = j3dTevSwapTableTable;
+ int i = 0;
+ do {
+ table[0] = i >> 6;
+ table[1] = (i >> 4) & 3;
+ table[2] = (i >> 2) & 3;
+ table[3] = i & 3;
+ i++;
+ table += 4;
+ } while (i < 256);
+}
+
+/* 80324358-803243BC 31EC98 0064+00 1/1 0/0 0/0 .text loadTexMtx__9J3DTexMtxCFUl */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void J3DTexMtx::loadTexMtx(u32 param_0) const {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/loadTexMtx__9J3DTexMtxCFUl.s"
+}
+#pragma pop
+
+/* 803243BC-8032441C 31ECFC 0060+00 1/1 0/0 0/0 .text loadPostTexMtx__9J3DTexMtxCFUl */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm void J3DTexMtx::loadPostTexMtx(u32 param_0) const {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/loadPostTexMtx__9J3DTexMtxCFUl.s"
+}
+#pragma pop
+
+/* 8032441C-8032499C 31ED5C 0580+00 1/1 0/0 0/0 .text J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType
+ */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+static asm void J3DGDLoadTexMtxImm(f32 (*param_0)[4], u32 param_1, _GXTexMtxType param_2) {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType.s"
+}
+#pragma pop
+
+/* 8032499C-80324F08 31F2DC 056C+00 1/1 0/0 0/0 .text J3DGDLoadPostTexMtxImm__FPA4_fUl */
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+static asm void J3DGDLoadPostTexMtxImm(f32 (*param_0)[4], u32 param_1) {
+ nofralloc
+#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadPostTexMtxImm__FPA4_fUl.s"
+}
+#pragma pop
+
+/* ############################################################################################## */
+/* 804563C0-804563C4 0049C0 0004+00 0/0 4/4 0/0 .sdata2 j3dDefaultColInfo */
+SECTION_SDATA2 extern GXColor j3dDefaultColInfo = {0xFF, 0xFF, 0xFF, 0xFF};
+
+/* 804563C4-804563C8 0049C4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultAmbInfo */
+SECTION_SDATA2 extern u32 j3dDefaultAmbInfo = 0x32323232;
+
+/* 804563C8-804563CC 0049C8 0004+00 0/0 1/1 0/0 .sdata2 None */
+SECTION_SDATA2 extern u8 data_804563C8 = 0x01;
+
+/* 804563CC-804563D0 0049CC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultTevOrderInfoNull */
+SECTION_SDATA2 extern J3DTevOrderInfo j3dDefaultTevOrderInfoNull = {0xFF, 0xFF, 0xFF, 0x00};
+
+/* 804563D0-804563D4 0049D0 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexOrderNull */
+SECTION_SDATA2 extern J3DIndTexOrderInfo j3dDefaultIndTexOrderNull = {0xFF, 0xFF, 0x00, 0x00};
+
+/* 804563D4-804563D8 0049D4 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevColor */
+SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = {0xFF, 0xFF, 0xFF, 0xFF};
+
+/* 804563DC-804563E0 0049DC 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexCoordScaleInfo */
+SECTION_SDATA2 extern J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+
+/* 804563E0-804563E4 0049E0 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevKColor */
+SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = {0xFF, 0xFF, 0xFF, 0xFF};
+
+/* 804563E4-804563E8 0049E4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapMode */
+SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+
+/* 804563E8-804563EC 0049E8 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapModeTable */
+SECTION_SDATA2 extern J3DTevSwapModeTableInfo j3dDefaultTevSwapModeTable = {0x00, 0x01, 0x02, 0x03};
+
+/* 804563EC-804563F0 0049EC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultBlendInfo */
+SECTION_SDATA2 extern const J3DBlendInfo j3dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP};
+
+/* 804563F0-804563F8 0049F0 0008+00 0/0 3/3 0/0 .sdata2 j3dDefaultColorChanInfo */
+SECTION_SDATA2 extern J3DColorChanInfo j3dDefaultColorChanInfo = {
+ 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0xFF, 0xFF,
+};
+
+/* 804563F8-804563FA 0049F8 0002+00 0/0 1/1 0/0 .sdata2 None */
+SECTION_SDATA2 extern u16 data_804563F8 = 0x1B00;
+
+/* 804563FA-804563FC 0049FA 0002+00 0/0 1/1 0/0 .sdata2 j3dDefaultAlphaCmpID */
+SECTION_SDATA2 extern const u16 j3dDefaultAlphaCmpID = 0x00E7;
+
+/* 804563FC-80456400 0049FC 0002+02 0/0 3/3 0/0 .sdata2 j3dDefaultZModeID */
+SECTION_SDATA2 extern const u16 j3dDefaultZModeID = 0x0017;
diff --git a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp index 306e095590..2c42fd8dee 100644 --- a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp +++ b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp @@ -4,273 +4,12 @@ // #include "JSystem/J3DGraphLoader/J3DMaterialFactory.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/JSupport/JSupport.h" #include "dol2asm.h" // -// Types: -// - -struct J3DZMode {}; - -struct J3DTexMtxInfo { - /* 80325718 */ void operator=(J3DTexMtxInfo const&); -}; - -struct J3DTexMtx {}; - -struct J3DTexGenBlockPatched { - /* 80317644 */ void initialize(); -}; - -struct J3DTexGenBlockNull { - /* 80332AA0 */ void calc(f32 const (*)[4]); - /* 80332AA4 */ void calcWithoutViewMtx(f32 const (*)[4]); - /* 80332AA8 */ void calcPostTexMtx(f32 const (*)[4]); - /* 80332AAC */ void calcPostTexMtxWithoutViewMtx(f32 const (*)[4]); - /* 80332AB0 */ void load(); - /* 80332AB4 */ void patch(); - /* 80332AB8 */ void diff(u32); - /* 80332ABC */ void diffTexMtx(); - /* 80332AC0 */ void diffTexGen(); - /* 80332AC4 */ void getType(); - /* 80332AD0 */ ~J3DTexGenBlockNull(); -}; - -struct J3DNBTScale {}; - -struct J3DTexCoord { - /* 8000E464 */ J3DTexCoord(); -}; - -struct J3DTexGenBlock { - /* 8000DFD8 */ bool getTexMtx(u32); - /* 8000DFE0 */ bool getTexCoord(u32); - /* 8000DFE8 */ bool getTexGenNum() const; - /* 8000E0CC */ void setTexCoord(u32, J3DTexCoord const*); - /* 8031741C */ void setTexGenNum(u32 const*); - /* 8000E0D0 */ void setTexGenNum(u32); - /* 8003AB2C */ void setTexMtx(u32, J3DTexMtx*); - /* 803172FC */ bool countDLSize(); - /* 80317334 */ bool getNBTScale(); - /* 80317354 */ void reset(J3DTexGenBlock*); - /* 80317420 */ void setNBTScale(J3DNBTScale); - /* 80317424 */ void setNBTScale(J3DNBTScale const*); - /* 80317428 */ bool getTexMtxOffset() const; - /* 80317430 */ void setTexMtxOffset(u32); -}; - -struct J3DTevSwapModeTable {}; - -struct J3DTevSwapModeInfo {}; - -struct J3DTevStageInfo {}; - -struct J3DTevStage { - /* 8000E230 */ J3DTevStage(); - /* 8003AACC */ J3DTevStage(J3DTevStageInfo const&); -}; - -struct J3DTevOrder { - /* 8000E140 */ J3DTevOrder(); -}; - -struct J3DTevBlockPatched { - /* 803176E0 */ void initialize(); -}; - -struct J3DGXColorS10 { - /* 8000E460 */ J3DGXColorS10(); -}; - -struct J3DIndTevStage { - /* 8000E14C */ J3DIndTevStage(); -}; - -struct J3DGXColor { - /* 8000E538 */ J3DGXColor(); -}; - -struct J3DTevBlock { - /* 8000DBC8 */ void patchTexNoAndTexCoordScale(); - /* 8000DBD4 */ void patch(); - /* 8000DF84 */ bool getIndTevStage(u32); - /* 8000DF8C */ bool getTevStage(u32); - /* 8000DF94 */ void getTexNo(u32) const; - /* 8000DFA0 */ bool getTevSwapModeTable(u32); - /* 8000DFA8 */ bool getTevKAlphaSel(u32); - /* 8000DFB0 */ bool getTevKColorSel(u32); - /* 8000DFB8 */ bool getTevOrder(u32); - /* 8000DFC0 */ bool getTevKColor(u32); - /* 8000DFC8 */ bool getTevColor(u32); - /* 8000DFD0 */ bool getTevStageNum() const; - /* 8000E0A4 */ void setIndTevStage(u32, J3DIndTevStage); - /* 80323554 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 8000E0A8 */ void setTevStage(u32, J3DTevStage); - /* 80323550 */ void setTevStage(u32, J3DTevStage const*); - /* 8000E0AC */ void setTexNo(u32, u16); - /* 80323544 */ void setTexNo(u32, u16 const*); - /* 8000E0B0 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable); - /* 80322960 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable const*); - /* 8000E0B4 */ void setTevKAlphaSel(u32, u8); - /* 80322954 */ void setTevKAlphaSel(u32, u8 const*); - /* 8000E0B8 */ void setTevKColorSel(u32, u8); - /* 80322950 */ void setTevKColorSel(u32, u8 const*); - /* 8000E0BC */ void setTevOrder(u32, J3DTevOrder); - /* 80323548 */ void setTevOrder(u32, J3DTevOrder const*); - /* 800732AC */ void setTevKColor(u32, J3DGXColor const*); - /* 8000E0C0 */ void setTevKColor(u32, J3DGXColor); - /* 80110E80 */ void setTevColor(u32, J3DGXColorS10 const*); - /* 8000E0C4 */ void setTevColor(u32, J3DGXColorS10); - /* 8000E0C8 */ void setTevStageNum(u8); - /* 8032354C */ void setTevStageNum(u8 const*); - /* 8031730C */ bool countDLSize(); - /* 80317330 */ void load(); - /* 8031CD44 */ void diff(u32); - /* 8031E098 */ void indexToPtr_private(u32); - /* 80321938 */ void diffTevReg(); - /* 8032193C */ void diffTevStageIndirect(); - /* 80321940 */ void diffTevStage(); - /* 80321944 */ void diffTexCoordScale(); - /* 80321948 */ void diffTexNo(); - /* 80322958 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo); - /* 8032295C */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const*); - /* 80322964 */ bool getTevRegOffset() const; - /* 8032296C */ void setTevRegOffset(u32); - /* 8032353C */ void patchTexNo(); - /* 80323540 */ void patchTevReg(); - /* 80323558 */ bool getTexNoOffset() const; -}; - -struct J3DTevBlockNull { - /* 803176D4 */ void initialize(); - /* 80332A0C */ void reset(J3DTevBlock*); - /* 80332A10 */ void ptrToIndex(); - /* 80332A14 */ void indexToPtr(); - /* 80332A38 */ void getType(); - /* 80332A44 */ ~J3DTevBlockNull(); -}; - -struct J3DPatchedMaterial { - /* 80316FB8 */ void initialize(); -}; - -struct J3DPEBlockNull { - /* 803329A0 */ void load(); - /* 803329A4 */ void getType(); - /* 803329B0 */ ~J3DPEBlockNull(); -}; - -struct J3DFog {}; - -struct J3DAlphaComp {}; - -struct J3DBlend {}; - -struct J3DPEBlock { - /* 8000DBCC */ void patch(); - /* 8000DF3C */ bool getZCompLoc() const; - /* 8000DF44 */ bool getZMode(); - /* 8000DF4C */ bool getBlend(); - /* 8000DF54 */ bool getAlphaComp(); - /* 8000DF5C */ bool getFog(); - /* 8000E010 */ void setZCompLoc(u8); - /* 80317378 */ void setZCompLoc(u8 const*); - /* 8000E014 */ void setZMode(J3DZMode); - /* 80317374 */ void setZMode(J3DZMode const*); - /* 8000E018 */ void setBlend(J3DBlend const&); - /* 80317370 */ void setBlend(J3DBlend const*); - /* 8000E01C */ void setAlphaComp(J3DAlphaComp const&); - /* 8031736C */ void setAlphaComp(J3DAlphaComp const*); - /* 8031731C */ bool countDLSize(); - /* 80317344 */ void diff(u32); - /* 80317348 */ void reset(J3DPEBlock*); - /* 8031735C */ void diffFog(); - /* 80317360 */ void diffBlend(); - /* 80317364 */ void setFog(J3DFog*); - /* 80317368 */ void setFog(J3DFog); - /* 80317380 */ void setDither(u8 const*); - /* 8031737C */ void setDither(u8); - /* 80317384 */ bool getDither() const; - /* 8031738C */ bool getFogOffset() const; - /* 80317394 */ void setFogOffset(u32); -}; - -struct J3DMaterial { - /* 803157A0 */ void createColorBlock(u32); - /* 803159A0 */ void createTexGenBlock(u32); - /* 80315B04 */ void createTevBlock(int); - /* 80315E78 */ void createIndBlock(int); - /* 80315F60 */ void createPEBlock(u32, u32); - /* 80316100 */ void calcSizeColorBlock(u32); - /* 80316150 */ void calcSizeTexGenBlock(u32); - /* 8031617C */ void calcSizeTevBlock(int); - /* 803161C4 */ void calcSizeIndBlock(int); - /* 803161D8 */ void calcSizePEBlock(u32, u32); - /* 80316240 */ void initialize(); - /* 80332B94 */ ~J3DMaterial(); -}; - -struct J3DLockedMaterial { - /* 80317044 */ void initialize(); -}; - -struct J3DLightObj {}; - -struct J3DIndTexMtxInfo { - /* 803257DC */ void operator=(J3DIndTexMtxInfo const&); -}; - -struct J3DFogInfo { - /* 80325800 */ void operator=(J3DFogInfo const&); -}; - -struct J3DDisplayListObj { - /* 803125E4 */ void setSingleDisplayList(void*, u32); -}; - -struct J3DColorChan {}; - -struct J3DColorBlockNull { - /* 80332B2C */ void getType(); - /* 80332B38 */ ~J3DColorBlockNull(); -}; - -struct J3DColorBlock { - /* 8000DBD0 */ void patchLight(); - /* 8000DFF0 */ bool getAmbColor(u32); - /* 8000DFF8 */ bool getColorChan(u32); - /* 8000E000 */ bool getMatColor(u32); - /* 8000E008 */ u8 getColorChanNum() const; - /* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*); - /* 8000E0D4 */ void setAmbColor(u32, J3DGXColor); - /* 80317450 */ void setColorChan(u32, J3DColorChan const*); - /* 8000E0D8 */ void setColorChan(u32, J3DColorChan const&); - /* 80317448 */ void setMatColor(u32, J3DGXColor const*); - /* 8000E0DC */ void setMatColor(u32, J3DGXColor); - /* 8031744C */ void setColorChanNum(u8 const*); - /* 8000E0E0 */ void setColorChanNum(u8); - /* 801A4C08 */ void setLight(u32, J3DLightObj*); - /* 80317304 */ bool countDLSize(); - /* 80317324 */ void load(); - /* 80317328 */ s32 getCullMode() const; - /* 8031733C */ void patch(); - /* 80317340 */ void diff(u32); - /* 80317358 */ void reset(J3DColorBlock*); - /* 80317434 */ void patchMatColor(); - /* 80317438 */ void diffAmbColor(); - /* 8031743C */ void diffMatColor(); - /* 80317440 */ void diffColorChan(); - /* 80317444 */ void diffLightObj(u32); - /* 80317454 */ bool getLight(u32); - /* 8031745C */ void setCullMode(u8); - /* 80317460 */ void setCullMode(u8 const*); - /* 80317464 */ bool getMatColorOffset() const; - /* 8031746C */ bool getColorChanOffset() const; - /* 80317474 */ void setMatColorOffset(u32); - /* 80317478 */ void setColorChanOffset(u32); -}; - -// // Forward References: // @@ -423,11 +162,11 @@ extern "C" void setLight__13J3DColorBlockFUlP11J3DLightObj(); extern "C" void setAmbColor__13J3DColorBlockFUlPC10J3DGXColor(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); -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" 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 setSingleDisplayList__17J3DDisplayListObjFPvUl(); extern "C" void createColorBlock__11J3DMaterialFUl(); extern "C" void createTexGenBlock__11J3DMaterialFUl(); @@ -531,11 +270,6 @@ extern "C" void _restgpr_24(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 const j3dDefaultTexCoordInfo[32]; -extern "C" extern u8 const j3dDefaultIndTexMtxInfo[28]; -extern "C" extern u8 const j3dDefaultIndTevStageInfo[12]; -extern "C" extern u8 const j3dDefaultFogInfo[44]; -extern "C" extern u8 const j3dDefaultNBTScaleInfo[16]; extern "C" extern void* __vt__17J3DLockedMaterial[12]; extern "C" extern void* __vt__18J3DPatchedMaterial[12]; extern "C" extern void* __vt__11J3DMaterial[12]; @@ -547,13 +281,6 @@ extern "C" extern void* __vt__13J3DColorBlock[36]; extern "C" extern void* __vt__18J3DTevBlockPatched[55]; extern "C" extern void* __vt__21J3DTexGenBlockPatched[27]; extern "C" extern void* __vt__11J3DTevBlock[55]; -extern "C" extern u32 j3dDefaultTevOrderInfoNull; -extern "C" extern u32 j3dDefaultIndTexOrderNull; -extern "C" extern u8 j3dDefaultIndTexCoordScaleInfo[4]; -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: @@ -561,87 +288,271 @@ extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */]; /* 8032FFEC-80330234 32A92C 0248+00 0/0 7/7 0/0 .text * __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DMaterialFactory::J3DMaterialFactory(J3DMaterialBlock const& param_0) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__ct__18J3DMaterialFactoryFRC16J3DMaterialBlock.s" +J3DMaterialFactory::J3DMaterialFactory(J3DMaterialBlock const& i_block) { + mMaterialNum = i_block.mMaterialNum; + mpMaterialInitData = JSUConvertOffsetToPtr<J3DMaterialInitData>(&i_block, i_block.mpMaterialInitData); + // mpMaterialID = JSUConvertOffsetToPtr<u16>(&i_block, i_block.mpMaterialID); + mpMaterialID = func_802F42C0(&i_block, i_block.mpMaterialID); + if (i_block.mpIndInitData != NULL && (u32)i_block.mpIndInitData - (u32)i_block.mpNameTable > 4) { + mpIndInitData = JSUConvertOffsetToPtr<J3DIndInitData>(&i_block, i_block.mpIndInitData); + } else { + mpIndInitData = NULL; + } + // 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); + // mpAmbColor = JSUConvertOffsetToPtr<GXColor>(&i_block, i_block.mpAmbColor); + mpAmbColor = func_802F4278(&i_block, i_block.mpAmbColor); + mpLightInfo = JSUConvertOffsetToPtr<J3DLightInfo>(&i_block, i_block.mpLightInfo); + // 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_0x34 = JSUConvertOffsetToPtr<J3DTexMtxInfo>(&i_block, i_block.field_0x44); + // 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); + mpDisplayListInit = NULL; + mpPatchingInfo = NULL; + mpCurrentMtxInfo = NULL; + mpMaterialMode = NULL; } -#pragma pop /* 80330234-803302BC 32AB74 0088+00 0/0 2/2 0/0 .text * __ct__18J3DMaterialFactoryFRC18J3DMaterialDLBlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DMaterialFactory::J3DMaterialFactory(J3DMaterialDLBlock const& param_0) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__ct__18J3DMaterialFactoryFRC18J3DMaterialDLBlock.s" +J3DMaterialFactory::J3DMaterialFactory(J3DMaterialDLBlock const& i_block) { + mMaterialNum = i_block.mMaterialNum; + mpMaterialInitData = NULL; + mpDisplayListInit = JSUConvertOffsetToPtr<J3DDisplayListInit>(&i_block, i_block.mpDisplayListInit); + mpPatchingInfo = JSUConvertOffsetToPtr<J3DPatchingInfo>(&i_block, i_block.mpPatchingInfo); + mpCurrentMtxInfo = JSUConvertOffsetToPtr<J3DCurrentMtxInfo>(&i_block, i_block.mpCurrentMtxInfo); + // mpMaterialMode = JSUConvertOffsetToPtr<u8>(&i_block, i_block.mpMaterialMode); + mpMaterialMode = func_802F4260(&i_block, i_block.mpMaterialMode); } -#pragma pop /* 803302BC-80330304 32ABFC 0048+00 0/0 3/3 0/0 .text countUniqueMaterials__18J3DMaterialFactoryFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 J3DMaterialFactory::countUniqueMaterials() { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/countUniqueMaterials__18J3DMaterialFactoryFv.s" +u16 J3DMaterialFactory::countUniqueMaterials() { + u16 count = 0; + s32 id = -1; + for (u16 i = 0; i < mMaterialNum; i++) { + if (id < mpMaterialID[i]) { + count++; + id = mpMaterialID[i]; + } + } + return count; } -#pragma pop /* 80330304-8033033C 32AC44 0038+00 4/4 0/0 0/0 .text countTexGens__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::countTexGens(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/countTexGens__18J3DMaterialFactoryCFi.s" +u32 J3DMaterialFactory::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; } -#pragma pop /* 8033033C-803303C4 32AC7C 0088+00 2/2 0/0 0/0 .text countStages__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::countStages(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/countStages__18J3DMaterialFactoryCFi.s" +u32 J3DMaterialFactory::countStages(int i_idx) const { + J3DMaterialInitData* 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; } -#pragma pop /* 803303C4-80330440 32AD04 007C+00 0/0 4/4 0/0 .text * create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DMaterial* J3DMaterialFactory::create(J3DMaterial* param_0, J3DMaterialFactory::MaterialType param_1, - int param_2, u32 param_3) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_803303C4.s" +J3DMaterial* J3DMaterialFactory::create(J3DMaterial* i_material, MaterialType i_type, + int i_idx, u32 i_flags) const { + switch (i_type) { + case MATERIAL_TYPE_NORMAL: + i_material = createNormalMaterial(i_material, i_idx, i_flags); + break; + case MATERIAL_TYPE_LOCKED: + i_material = createLockedMaterial(i_material, i_idx, i_flags); + break; + case MATERIAL_TYPE_PATCHED: + i_material = createPatchedMaterial(i_material, i_idx, i_flags); + break; + } + return i_material; } -#pragma pop /* 80330440-80330D84 32AD80 0944+00 1/1 0/0 0/0 .text * createNormalMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::createNormalMaterial(J3DMaterial* param_0, int param_1, +#ifdef NONMATCHING +J3DMaterial* J3DMaterialFactory::createNormalMaterial(J3DMaterial* i_material, int i_idx, + u32 i_flags) const { + if (mpDisplayListInit != NULL) { + return createLockedMaterial(i_material, i_idx, i_flags); + } + u32 stages = countStages(i_idx); + u32 tev_stage_num = getMdlDataFlag_TevStageNum(i_flags); + if (stages > tev_stage_num) { + tev_stage_num = stages; + } + u32 u1 = 8; + if (tev_stage_num <= 8) { + u1 = tev_stage_num; + } + u32 texgens = countTexGens(i_idx); + u32 texgen_flag = texgens > 4 ? 0 : getMdlDataFlag_TexGenFlag(i_flags); + u32 color_flag = getMdlDataFlag_ColorFlag(i_flags); + u32 pe_flag = getMdlDataFlag_PEFlag(i_flags); + bool ind_flag = (i_flags & 0x1000000) != 0; + if (i_material == NULL) { + i_material = new J3DMaterial(); + } + i_material->mColorBlock = J3DMaterial::createColorBlock(color_flag); + i_material->mTexGenBlock = J3DMaterial::createTexGenBlock(texgen_flag); + i_material->mTevBlock = J3DMaterial::createTevBlock((u16)tev_stage_num); + i_material->mIndBlock = J3DMaterial::createIndBlock(ind_flag); + i_material->mPEBlock = J3DMaterial::createPEBlock(pe_flag, getMaterialMode(i_idx)); + i_material->mIndex = i_idx; + i_material->mMaterialMode = getMaterialMode(i_idx); + i_material->mColorBlock->setColorChanNum(newColorChanNum(i_idx)); + i_material->mColorBlock->setCullMode(newCullMode(i_idx)); + i_material->mTexGenBlock->setTexGenNum(newTexGenNum(i_idx)); + i_material->mTexGenBlock->setNBTScale(newNBTScale(i_idx)); + i_material->mPEBlock->setFog(newFog(i_idx)); + i_material->mPEBlock->setAlphaComp(newAlphaComp(i_idx)); + i_material->mPEBlock->setBlend(newBlend(i_idx)); + i_material->mPEBlock->setZMode(newZMode(i_idx)); + i_material->mPEBlock->setZCompLoc(newZCompLoc(i_idx)); + i_material->mPEBlock->setDither(newDither(i_idx)); + i_material->mTevBlock->setTevStageNum(newTevStageNum(i_idx)); + for (u8 i = 0; i < u1; i++) { + i_material->mTevBlock->setTexNo(i, newTexNo(i_idx, i)); + } + for (u8 i = 0; i < tev_stage_num; i++) { + i_material->mTevBlock->setTevOrder(i, newTevOrder(i_idx, i)); + } + for (u8 i = 0; i < tev_stage_num; i++) { + J3DMaterialInitData* material_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + i_material->mTevBlock->setTevStage(i, newTevStage(i_idx, i)); + if (material_init_data->mTevSwapModeIdx[i] != 0xffff) { + i_material->mTevBlock->getTevStage(i)->setTexSel( + mpTevSwapModeInfo[material_init_data->mTevSwapModeIdx[i]].mTexSel); + i_material->mTevBlock->getTevStage(i)->setRasSel( + mpTevSwapModeInfo[material_init_data->mTevSwapModeIdx[i]].mRasSel); + } + } + for (u8 i = 0; i < 4; i++) { + i_material->mTevBlock->setTevKColor(i, newTevKColor(i_idx, i)); + } + for (u8 i = 0; i < 4; i++) { + i_material->mTevBlock->setTevColor(i, newTevColor(i_idx, i)); + } + for (u8 i = 0; i < 4; i++) { + i_material->mTevBlock->setTevSwapModeTable(i, newTevSwapModeTable(i_idx, i)); + } + for (u8 i = 0; i < 2; i++) { + i_material->mColorBlock->setAmbColor(i, newAmbColor(i_idx, i)); + } + for (u8 i = 0; i < 2; i++) { + i_material->mColorBlock->setMatColor(i, newMatColor(i_idx, i)); + } + for (u8 i = 0; i < 4; i++) { + i_material->mColorBlock->setColorChan(i, newColorChan(i_idx, i)); + } + for (u8 i = 0; i < texgens; i++) { + J3DTexCoord tex_coord = newTexCoord(i_idx, i); + i_material->mTexGenBlock->setTexCoord(i, &tex_coord); + } + for (u8 i = 0; i < 8; i++) { + i_material->mTexGenBlock->setTexMtx(i, newTexMtx(i_idx, i)); + } + J3DMaterialInitData* material_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + for (u8 i = 0; i < tev_stage_num; i++) { + if (material_init_data->mTevKColorSel[i] != 0xff) { + i_material->mTevBlock->setTevKColorSel(i, material_init_data->mTevKColorSel[i]); + } else { + i_material->mTevBlock->setTevKColorSel(i, 0xc); + } + } + for (u8 i = 0; i < tev_stage_num; i++) { + if (material_init_data->mTevKAlphaSel[i] != 0xff) { + i_material->mTevBlock->setTevKAlphaSel(i, material_init_data->mTevKAlphaSel[i]); + } else { + i_material->mTevBlock->setTevKAlphaSel(i, 0x1c); + } + } + if (mpIndInitData != NULL) { + u8 ind_tex_stage_num = newIndTexStageNum(i_idx); + i_material->mIndBlock->setIndTexStageNum(newIndTexStageNum(i_idx)); + for (u8 i = 0; i < ind_tex_stage_num; i++) { + i_material->mIndBlock->setIndTexMtx(i, newIndTexMtx(i_idx, i)); + } + for (u8 i = 0; i < ind_tex_stage_num; i++) { + i_material->mIndBlock->setIndTexOrder(i, newIndTexOrder(i_idx, i)); + } + for (u8 i = 0; i < ind_tex_stage_num; i++) { + i_material->mIndBlock->setIndTexCoordScale(i, newIndTexCoordScale(i_idx, i)); + } + for (u8 i = 0; i < tev_stage_num; i++) { + i_material->mTevBlock->setIndTevStage(i, newIndTevStage(i_idx, i)); + } + } + return i_material; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm J3DMaterial* J3DMaterialFactory::createNormalMaterial(J3DMaterial* param_0, int param_1, u32 param_2) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/createNormalMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" } #pragma pop +#endif /* 80330D84-8033168C 32B6C4 0908+00 1/1 0/0 0/0 .text * createPatchedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::createPatchedMaterial(J3DMaterial* param_0, int param_1, +asm J3DMaterial* J3DMaterialFactory::createPatchedMaterial(J3DMaterial* param_0, int param_1, u32 param_2) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/createPatchedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" @@ -659,7 +570,6 @@ asm void J3DMaterialFactory::modifyPatchedCurrentMtx(J3DMaterial* param_0, int p } #pragma pop -/* ############################################################################################## */ /* 803CEE90-803CEF0C 02BFB0 007C+00 2/2 0/0 0/0 .data __vt__14J3DPEBlockNull */ SECTION_DATA extern void* __vt__14J3DPEBlockNull[31] = { (void*)NULL /* RTTI */, @@ -829,368 +739,547 @@ SECTION_DATA extern void* __vt__17J3DColorBlockNull[36 + 1 /* padding */] = { /* 803317D4-80331A7C 32C114 02A8+00 2/2 0/0 0/0 .text * createLockedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::createLockedMaterial(J3DMaterial* param_0, int param_1, +#ifdef NONMATCHING +// matches but makes the J3DMaterial destructor appear in the wrong place +J3DMaterial* J3DMaterialFactory::createLockedMaterial(J3DMaterial* i_material, int i_idx, + u32 i_flags) const { + if (i_material == NULL) { + i_material = new J3DLockedMaterial(); + i_material->mColorBlock = new J3DColorBlockNull(); + i_material->mTexGenBlock = new J3DTexGenBlockNull(); + i_material->mTevBlock = new J3DTevBlockNull(); + i_material->mIndBlock = new J3DIndBlockNull(); + i_material->mPEBlock = new J3DPEBlockNull(); + i_material->mIndex = i_idx; + i_material->mMaterialMode = mpMaterialMode[i_idx]; + } + + i_material->mCurrentMtx = mpCurrentMtxInfo[i_idx]; + i_material->mColorBlock->setMatColorOffset(mpPatchingInfo[i_idx].mMatColorOffset); + i_material->mColorBlock->setColorChanOffset(mpPatchingInfo[i_idx].mColorChanOffset); + i_material->mTexGenBlock->setTexMtxOffset(mpPatchingInfo[i_idx].mTexMtxOffset); + i_material->mTevBlock->setTexNoOffset(mpPatchingInfo[i_idx].mTexNoOffset); + i_material->mTevBlock->setTevRegOffset(mpPatchingInfo[i_idx].mTevRegOffset); + i_material->mPEBlock->setFogOffset(mpPatchingInfo[i_idx].mFogOffset); + if (i_material->mSharedDLObj == NULL) { + i_material->mSharedDLObj = new J3DDisplayListObj(); + i_material->mSharedDLObj->setSingleDisplayList((void*)( + mpDisplayListInit[i_idx].mOffset + (u32)&mpDisplayListInit[i_idx]), + mpDisplayListInit[i_idx].field_0x4 + ); + } + return i_material; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm J3DMaterial* J3DMaterialFactory::createLockedMaterial(J3DMaterial* param_0, int param_1, u32 param_2) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/createLockedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" } #pragma pop +#endif /* 80331A7C-80331AFC 32C3BC 0080+00 0/0 4/4 0/0 .text * calcSize__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::calcSize(J3DMaterial* param_0, - J3DMaterialFactory::MaterialType param_1, int param_2, - u32 param_3) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80331A7C.s" +u32 J3DMaterialFactory::calcSize(J3DMaterial* i_material, J3DMaterialFactory::MaterialType i_type, + int i_idx, u32 i_flags) const { + u32 size = 0; + switch (i_type) { + case MATERIAL_TYPE_NORMAL: + size = calcSizeNormalMaterial(i_material, i_idx, i_flags); + break; + case MATERIAL_TYPE_LOCKED: + size = calcSizeLockedMaterial(i_material, i_idx, i_flags); + break; + case MATERIAL_TYPE_PATCHED: + size = calcSizePatchedMaterial(i_material, i_idx, i_flags); + break; + } + return size; } -#pragma pop /* 80331AFC-80331C30 32C43C 0134+00 1/1 0/0 0/0 .text * calcSizeNormalMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::calcSizeNormalMaterial(J3DMaterial* param_0, int param_1, +#ifdef NONMATCHING +// regalloc +u32 J3DMaterialFactory::calcSizeNormalMaterial(J3DMaterial* i_material, int i_idx, + u32 i_flags) const { + u32 size = 0; + if (mpDisplayListInit != NULL) { + return calcSizeLockedMaterial(i_material, i_idx, i_flags); + } + + u32 stages = countStages(i_idx); + // u32 tev_stage_num = getMdlDataFlag_TevStageNum(i_flags); + u32 tev_stage_num = (i_flags >> 0x10) & 0x1f; + if (stages > tev_stage_num) { + tev_stage_num = stages; + } + u32 tex_gens = countTexGens(i_flags); + u32 tex_gen_flag = tex_gens > 4 ? + getMdlDataFlag_TexGenFlag(0) : getMdlDataFlag_TexGenFlag(i_flags); + u32 color_block_flag = getMdlDataFlag_ColorFlag(i_flags); + u32 pe_flag = getMdlDataFlag_PEFlag(i_flags); + u32 ind_flag = (i_flags >> 0x18) & 1; + if (i_material == NULL) { + size = sizeof(J3DMaterial); + } + size += J3DMaterial::calcSizeColorBlock(color_block_flag); + size += J3DMaterial::calcSizeTexGenBlock(tex_gen_flag); + size += J3DMaterial::calcSizeTevBlock((u16)tev_stage_num); + size += J3DMaterial::calcSizeIndBlock(ind_flag); + size += J3DMaterial::calcSizePEBlock(pe_flag, getMaterialMode(i_idx)); + J3DMaterialInitData* init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + for (int i = 0; i < 8; i++) { + if (init_data->mTexMtxIdx[i] != 0xffff) { + size += sizeof(J3DTexMtx); + } + } + return size; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u32 J3DMaterialFactory::calcSizeNormalMaterial(J3DMaterial* param_0, int param_1, u32 param_2) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/calcSizeNormalMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" } #pragma pop +#endif /* 80331C30-80331D00 32C570 00D0+00 1/1 0/0 0/0 .text * calcSizePatchedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::calcSizePatchedMaterial(J3DMaterial* param_0, int param_1, +#ifdef NONMATCHING +u32 J3DMaterialFactory::calcSizePatchedMaterial(J3DMaterial* i_material, int i_idx, + u32 i_flags) const { + u32 size = 0; + if (i_material == NULL) { + size = sizeof(J3DPatchedMaterial); + } + int ind_flag = (i_flags & 0x3000000) != 0; + size += J3DMaterial::calcSizeColorBlock(0x40000000); + size += 0x134; // TODO what is this + size += J3DMaterial::calcSizeIndBlock(ind_flag); + size += J3DMaterial::calcSizePEBlock(0x10000000, getMaterialMode(i_idx)); + J3DMaterialInitData* init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + for (int i = 0; i < 8; i++) { + if (init_data->mTexMtxIdx[i] != 0xffff) { + size += sizeof(J3DTexMtx); + } + } + return size; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u32 J3DMaterialFactory::calcSizePatchedMaterial(J3DMaterial* param_0, int param_1, u32 param_2) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/calcSizePatchedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" } #pragma pop +#endif /* 80331D00-80331D18 32C640 0018+00 2/2 0/0 0/0 .text * calcSizeLockedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::calcSizeLockedMaterial(J3DMaterial* param_0, int param_1, - u32 param_2) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/calcSizeLockedMaterial__18J3DMaterialFactoryCFP11J3DMaterialiUl.s" +u32 J3DMaterialFactory::calcSizeLockedMaterial(J3DMaterial* i_material, int i_idx, + u32 i_flags) const { + u32 size = 0; + if (i_material == NULL) { + size = sizeof(J3DLockedMaterial) + sizeof(J3DColorBlockNull) + sizeof(J3DTexGenBlockNull) + + sizeof(J3DTevBlockNull) + sizeof(J3DIndBlockNull) + sizeof(J3DPEBlockNull); + } + return size + sizeof(J3DDisplayListObj); } -#pragma pop -/* ############################################################################################## */ /* 804564A8-804564AC 004AA8 0004+00 1/1 0/0 0/0 .sdata2 @1691 */ +#ifdef NONMATCHING +static GXColor const defaultMatColor = {0xff, 0xff, 0xff, 0xff}; +#else SECTION_SDATA2 static u32 lit_1691 = 0xFFFFFFFF; +#endif /* 80331D18-80331D74 32C658 005C+00 2/2 0/0 0/0 .text newMatColor__18J3DMaterialFactoryCFii */ +#ifdef NONMATCHING +J3DGXColor J3DMaterialFactory::newMatColor(int i_idx, int i_no) const { + J3DGXColor dflt = defaultMatColor; + u16 mat_color_index = mpMaterialInitData[mpMaterialID[i_idx]].mMatColorIdx[i_no]; + if (mat_color_index != 0xffff) { + return mpMatColor[mat_color_index]; + } else { + return dflt; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newMatColor(int param_0, int param_1) const { +asm J3DGXColor J3DMaterialFactory::newMatColor(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newMatColor__18J3DMaterialFactoryCFii.s" } #pragma pop +#endif /* 80331D74-80331DAC 32C6B4 0038+00 2/2 0/0 0/0 .text newColorChanNum__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newColorChanNum(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newColorChanNum__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::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; + } } -#pragma pop /* 80331DAC-80331F50 32C6EC 01A4+00 2/2 0/0 0/0 .text newColorChan__18J3DMaterialFactoryCFii */ +#ifdef NONMATCHING +// problem with J3DColorChan inline constructor +J3DColorChan J3DMaterialFactory::newColorChan(int i_idx, int i_no) const { + u16 color_chan_index = mpMaterialInitData[mpMaterialID[i_idx]].mColorChanIdx[i_no]; + if (color_chan_index != 0xffff) { + return J3DColorChan(mpColorChanInfo[color_chan_index]); + } else { + return J3DColorChan(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newColorChan(int param_0, int param_1) const { +asm J3DColorChan J3DMaterialFactory::newColorChan(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newColorChan__18J3DMaterialFactoryCFii.s" } #pragma pop +#endif -/* ############################################################################################## */ /* 804564AC-804564B0 004AAC 0004+00 1/1 0/0 0/0 .sdata2 @1798 */ +#ifdef NONMATCHING +static GXColor const defaultAmbColor = {0x32, 0x32, 0x32, 0x32}; +#else SECTION_SDATA2 static u32 lit_1798 = 0x32323232; +#endif /* 80331F50-80331FAC 32C890 005C+00 1/1 0/0 0/0 .text newAmbColor__18J3DMaterialFactoryCFii */ +#ifdef NONMATCHING +J3DGXColor J3DMaterialFactory::newAmbColor(int i_idx, int i_no) const { + J3DGXColor dflt = defaultAmbColor; + u16 amb_color_index = mpMaterialInitData[mpMaterialID[i_idx]].mAmbColorIdx[i_no]; + if (amb_color_index != 0xffff) { + return mpAmbColor[amb_color_index]; + } else { + return dflt; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newAmbColor(int param_0, int param_1) const { +asm J3DGXColor J3DMaterialFactory::newAmbColor(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newAmbColor__18J3DMaterialFactoryCFii.s" } #pragma pop +#endif /* 80331FAC-80331FE4 32C8EC 0038+00 2/2 0/0 0/0 .text newTexGenNum__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTexGenNum(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTexGenNum__18J3DMaterialFactoryCFi.s" +u32 J3DMaterialFactory::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; + } } -#pragma pop /* 80331FE4-80332044 32C924 0060+00 3/3 0/0 0/0 .text newTexCoord__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTexCoord(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTexCoord__18J3DMaterialFactoryCFii.s" +J3DTexCoord J3DMaterialFactory::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(); + } } -#pragma pop /* 80332044-803320CC 32C984 0088+00 2/2 0/0 0/0 .text newTexMtx__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTexMtx(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTexMtx__18J3DMaterialFactoryCFii.s" +J3DTexMtx* J3DMaterialFactory::newTexMtx(int i_idx, int i_no) const { + J3DTexMtx* tex_mtx = NULL; + J3DMaterialInitData* 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; } -#pragma pop /* 803320CC-8033210C 32CA0C 0040+00 2/2 0/0 0/0 .text newCullMode__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newCullMode(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newCullMode__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::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; + } } -#pragma pop /* 8033210C-80332154 32CA4C 0048+00 2/2 0/0 0/0 .text newTexNo__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTexNo(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTexNo__18J3DMaterialFactoryCFii.s" +u16 J3DMaterialFactory::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; + } } -#pragma pop /* 80332154-803321A0 32CA94 004C+00 2/2 0/0 0/0 .text newTevOrder__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTevOrder(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevOrder__18J3DMaterialFactoryCFii.s" +J3DTevOrder J3DMaterialFactory::newTevOrder(int i_idx, int i_no) const { + J3DMaterialInitData* 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(); + } } -#pragma pop -/* ############################################################################################## */ /* 80456BB8-80456BBC 000058 0004+00 1/1 0/0 0/0 .sbss2 @1897 */ -SECTION_SBSS2 static u8 lit_1897[4]; - -/* 80456BBC-80456BC0 00005C 0004+00 1/1 0/0 0/0 .sbss2 None */ -SECTION_SBSS2 static u8 data_80456BBC[4]; +SECTION_SBSS2 static GXColorS10 defaultTevColor; /* 803321A0-80332210 32CAE0 0070+00 2/2 0/0 0/0 .text newTevColor__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTevColor(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevColor__18J3DMaterialFactoryCFii.s" +J3DGXColorS10 J3DMaterialFactory::newTevColor(int i_idx, int i_no) const { + J3DGXColorS10 dflt = defaultTevColor; + J3DMaterialInitData* 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; + } } -#pragma pop -/* ############################################################################################## */ /* 804564B0-804564B8 004AB0 0004+04 1/1 0/0 0/0 .sdata2 @1915 */ +#ifdef NONMATCHING +static GXColor const defaultTevKColor = {0xff, 0xff, 0xff, 0xff}; +#else SECTION_SDATA2 static u32 lit_1915[1 + 1 /* padding */] = { 0xFFFFFFFF, /* padding */ 0x00000000, }; +#endif /* 80332210-8033226C 32CB50 005C+00 2/2 0/0 0/0 .text newTevKColor__18J3DMaterialFactoryCFii */ +#ifdef NONMATCHING +J3DGXColor J3DMaterialFactory::newTevKColor(int i_idx, int i_no) const { + J3DGXColor dflt = defaultTevKColor; + u16 tev_kcolor_index = mpMaterialInitData[mpMaterialID[i_idx]].mTevKColorIdx[i_no]; + if (tev_kcolor_index != 0xffff) { + return mpTevKColor[tev_kcolor_index]; + } else { + return dflt; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newTevKColor(int param_0, int param_1) const { +asm J3DGXColor J3DMaterialFactory::newTevKColor(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevKColor__18J3DMaterialFactoryCFii.s" } #pragma pop +#endif /* 8033226C-803322A4 32CBAC 0038+00 2/2 0/0 0/0 .text newTevStageNum__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTevStageNum(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevStageNum__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::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; + } } -#pragma pop /* 803322A4-80332304 32CBE4 0060+00 2/2 0/0 0/0 .text newTevStage__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newTevStage(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevStage__18J3DMaterialFactoryCFii.s" +J3DTevStage J3DMaterialFactory::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(); + } } -#pragma pop /* 80332304-803323A0 32CC44 009C+00 1/1 0/0 0/0 .text * newTevSwapModeTable__18J3DMaterialFactoryCFii */ +#ifdef NONMATCHING +// J3DTevSwapModeTable inline constructor matches in the first usage but not the second +J3DTevSwapModeTable J3DMaterialFactory::newTevSwapModeTable(int i_idx, int i_no) const { + u16 tev_swap_mode_table_index = mpMaterialInitData[mpMaterialID[i_idx]].mTevSwapModeTableIdx[i_no]; + if (tev_swap_mode_table_index != 0xffff) { + return J3DTevSwapModeTable(mpTevSwapModeTableInfo[tev_swap_mode_table_index]); + } else { + return J3DTevSwapModeTable(j3dDefaultTevSwapModeTable); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const { +asm J3DTevSwapModeTable J3DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newTevSwapModeTable__18J3DMaterialFactoryCFii.s" } #pragma pop +#endif /* 803323A0-803323C8 32CCE0 0028+00 2/2 0/0 0/0 .text newIndTexStageNum__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newIndTexStageNum(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newIndTexStageNum__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::newIndTexStageNum(int i_idx) const { + if (mpIndInitData[i_idx].mEnabled == true) { + return mpIndInitData[i_idx].mIndTexStageNum; + } else { + return 0; + } } -#pragma pop /* 803323C8-8033240C 32CD08 0044+00 2/2 0/0 0/0 .text newIndTexOrder__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newIndTexOrder(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newIndTexOrder__18J3DMaterialFactoryCFii.s" +J3DIndTexOrder J3DMaterialFactory::newIndTexOrder(int i_idx, int i_no) const { + J3DIndTexOrder dflt; + if (mpIndInitData[i_idx].mEnabled == true) { + return J3DIndTexOrder(mpIndInitData[i_idx].mIndTexOrderInfo[i_no]); + } else { + return dflt; + } } -#pragma pop /* 8033240C-803324B4 32CD4C 00A8+00 2/2 0/0 0/0 .text newIndTexMtx__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newIndTexMtx(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newIndTexMtx__18J3DMaterialFactoryCFii.s" +J3DIndTexMtx J3DMaterialFactory::newIndTexMtx(int i_idx, int i_no) const { + J3DIndTexMtx dflt; + if (mpIndInitData[i_idx].mEnabled == true) { + return J3DIndTexMtx(mpIndInitData[i_idx].mIndTexMtxInfo[i_no]); + } else { + return dflt; + } } -#pragma pop /* 803324B4-80332648 32CDF4 0194+00 2/2 0/0 0/0 .text newIndTevStage__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newIndTevStage(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newIndTevStage__18J3DMaterialFactoryCFii.s" +J3DIndTevStage J3DMaterialFactory::newIndTevStage(int i_idx, int i_no) const { + J3DIndTevStage dflt; + if (mpIndInitData[i_idx].mEnabled == true) { + return J3DIndTevStage(mpIndInitData[i_idx].mIndTevStageInfo[i_no]); + } else { + return dflt; + } } -#pragma pop /* 80332648-8033268C 32CF88 0044+00 2/2 0/0 0/0 .text * newIndTexCoordScale__18J3DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newIndTexCoordScale(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newIndTexCoordScale__18J3DMaterialFactoryCFii.s" +J3DIndTexCoordScale J3DMaterialFactory::newIndTexCoordScale(int i_idx, int i_no) const { + J3DIndTexCoordScale dflt; + if (mpIndInitData[i_idx].mEnabled == true) { + return J3DIndTexCoordScale(mpIndInitData[i_idx].mIndTexCoordScaleInfo[i_no]); + } else { + return dflt; + } } -#pragma pop /* 8033268C-80332768 32CFCC 00DC+00 2/2 0/0 0/0 .text newFog__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newFog(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newFog__18J3DMaterialFactoryCFi.s" +J3DFog J3DMaterialFactory::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; } -#pragma pop /* 80332768-803327E8 32D0A8 0080+00 2/2 0/0 0/0 .text newAlphaComp__18J3DMaterialFactoryCFi */ +#ifdef NONMATCHING +// weird issue with calcAlphaCmpID, see J3DMatBlock.h +J3DAlphaComp J3DMaterialFactory::newAlphaComp(int i_idx) const { + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mAlphaCompIdx != 0xffff) { + return J3DAlphaComp(mpAlphaCompInfo[mtl_init_data->mAlphaCompIdx]); + } else { + return J3DAlphaComp(0xffff); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterialFactory::newAlphaComp(int param_0) const { +asm J3DAlphaComp J3DMaterialFactory::newAlphaComp(int param_0) const { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newAlphaComp__18J3DMaterialFactoryCFi.s" } #pragma pop +#endif /* 803327E8-8033282C 32D128 0044+00 2/2 0/0 0/0 .text newBlend__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newBlend(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newBlend__18J3DMaterialFactoryCFi.s" +J3DBlend J3DMaterialFactory::newBlend(int i_idx) const { + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mBlendIdx != 0xffff) { + return J3DBlend(mpBlendInfo[mtl_init_data->mBlendIdx]); + } else { + return J3DBlend(j3dDefaultBlendInfo); + } } -#pragma pop /* 8033282C-8033288C 32D16C 0060+00 2/2 0/0 0/0 .text newZMode__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newZMode(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newZMode__18J3DMaterialFactoryCFi.s" +J3DZMode J3DMaterialFactory::newZMode(int i_idx) const { + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mZModeIdx != 0xff) { + return J3DZMode(mpZModeInfo[mtl_init_data->mZModeIdx]); + } else { + return J3DZMode(); + } } -#pragma pop /* 8033288C-803328C4 32D1CC 0038+00 2/2 0/0 0/0 .text newZCompLoc__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newZCompLoc(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newZCompLoc__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::newZCompLoc(int i_idx) const { + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mZCompLocIdx != 0xff){ + return mpZCompLoc[mtl_init_data->mZCompLocIdx]; + } else { + return 0; + } } -#pragma pop /* 803328C4-803328FC 32D204 0038+00 2/2 0/0 0/0 .text newDither__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newDither(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newDither__18J3DMaterialFactoryCFi.s" +u8 J3DMaterialFactory::newDither(int i_idx) const { + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mDitherIdx != 0xff){ + return mpDither[mtl_init_data->mDitherIdx]; + } else { + return 1; + } } -#pragma pop /* 803328FC-803329A0 32D23C 00A4+00 1/1 0/0 0/0 .text newNBTScale__18J3DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMaterialFactory::newNBTScale(int param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/newNBTScale__18J3DMaterialFactoryCFi.s" +J3DNBTScale J3DMaterialFactory::newNBTScale(int i_idx) const { + J3DNBTScale dflt(j3dDefaultNBTScaleInfo); + J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mNBTScaleIdx != 0xffff) { + return J3DNBTScale(mpNBTScaleInfo[mtl_init_data->mNBTScaleIdx]); + } else { + return dflt; + } } -#pragma pop /* 803329A0-803329A4 32D2E0 0004+00 1/0 0/0 0/0 .text load__14J3DPEBlockNullFv */ -void J3DPEBlockNull::load() { +// void J3DPEBlockNull::load() { +extern "C" void load__14J3DPEBlockNullFv() { /* empty function */ } @@ -1198,7 +1287,8 @@ void J3DPEBlockNull::load() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockNull::getType() { +// asm u32 J3DPEBlockNull::getType() { +extern "C" asm void getType__14J3DPEBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/getType__14J3DPEBlockNullFv.s" } @@ -1208,19 +1298,22 @@ asm void J3DPEBlockNull::getType() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DPEBlockNull::~J3DPEBlockNull() { +// asm J3DPEBlockNull::~J3DPEBlockNull() { +extern "C" asm void __dt__14J3DPEBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__dt__14J3DPEBlockNullFv.s" } #pragma pop /* 80332A0C-80332A10 32D34C 0004+00 1/0 0/0 0/0 .text reset__15J3DTevBlockNullFP11J3DTevBlock */ -void J3DTevBlockNull::reset(J3DTevBlock* param_0) { +// void J3DTevBlockNull::reset(J3DTevBlock* param_0) { +extern "C" void reset__15J3DTevBlockNullFP11J3DTevBlock() { /* empty function */ } /* 80332A10-80332A14 32D350 0004+00 1/0 0/0 0/0 .text ptrToIndex__15J3DTevBlockNullFv */ -void J3DTevBlockNull::ptrToIndex() { +// void J3DTevBlockNull::ptrToIndex() { +extern "C" void ptrToIndex__15J3DTevBlockNullFv() { /* empty function */ } @@ -1228,7 +1321,8 @@ void J3DTevBlockNull::ptrToIndex() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlockNull::indexToPtr() { +// asm void J3DTevBlockNull::indexToPtr() { +extern "C" asm void indexToPtr__15J3DTevBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/indexToPtr__15J3DTevBlockNullFv.s" } @@ -1238,7 +1332,8 @@ asm void J3DTevBlockNull::indexToPtr() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlockNull::getType() { +// asm u32 J3DTevBlockNull::getType() { +extern "C" asm void getType__15J3DTevBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/getType__15J3DTevBlockNullFv.s" } @@ -1248,7 +1343,8 @@ asm void J3DTevBlockNull::getType() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DTevBlockNull::~J3DTevBlockNull() { +// asm J3DTevBlockNull::~J3DTevBlockNull() { +extern "C" asm void __dt__15J3DTevBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__dt__15J3DTevBlockNullFv.s" } @@ -1256,52 +1352,61 @@ asm J3DTevBlockNull::~J3DTevBlockNull() { /* 80332AA0-80332AA4 32D3E0 0004+00 1/0 0/0 0/0 .text calc__18J3DTexGenBlockNullFPA4_Cf */ -void J3DTexGenBlockNull::calc(f32 const (*param_0)[4]) { +// void J3DTexGenBlockNull::calc(f32 const (*param_0)[4]) { +extern "C" void calc__18J3DTexGenBlockNullFPA4_Cf() { /* empty function */ } /* 80332AA4-80332AA8 32D3E4 0004+00 1/0 0/0 0/0 .text * calcWithoutViewMtx__18J3DTexGenBlockNullFPA4_Cf */ -void J3DTexGenBlockNull::calcWithoutViewMtx(f32 const (*param_0)[4]) { +// void J3DTexGenBlockNull::calcWithoutViewMtx(f32 const (*param_0)[4]) { +extern "C" void calcWithoutViewMtx__18J3DTexGenBlockNullFPA4_Cf() { /* empty function */ } /* 80332AA8-80332AAC 32D3E8 0004+00 1/0 0/0 0/0 .text calcPostTexMtx__18J3DTexGenBlockNullFPA4_Cf */ -void J3DTexGenBlockNull::calcPostTexMtx(f32 const (*param_0)[4]) { +// void J3DTexGenBlockNull::calcPostTexMtx(f32 const (*param_0)[4]) { +extern "C" void calcPostTexMtx__18J3DTexGenBlockNullFPA4_Cf() { /* empty function */ } /* 80332AAC-80332AB0 32D3EC 0004+00 1/0 0/0 0/0 .text * calcPostTexMtxWithoutViewMtx__18J3DTexGenBlockNullFPA4_Cf */ -void J3DTexGenBlockNull::calcPostTexMtxWithoutViewMtx(f32 const (*param_0)[4]) { +// void J3DTexGenBlockNull::calcPostTexMtxWithoutViewMtx(f32 const (*param_0)[4]) { +extern "C" void calcPostTexMtxWithoutViewMtx__18J3DTexGenBlockNullFPA4_Cf() { /* empty function */ } /* 80332AB0-80332AB4 32D3F0 0004+00 1/0 0/0 0/0 .text load__18J3DTexGenBlockNullFv */ -void J3DTexGenBlockNull::load() { +// void J3DTexGenBlockNull::load() { +extern "C" void load__18J3DTexGenBlockNullFv() { /* empty function */ } /* 80332AB4-80332AB8 32D3F4 0004+00 1/0 0/0 0/0 .text patch__18J3DTexGenBlockNullFv */ -void J3DTexGenBlockNull::patch() { +// void J3DTexGenBlockNull::patch() { +extern "C" void patch__18J3DTexGenBlockNullFv() { /* empty function */ } /* 80332AB8-80332ABC 32D3F8 0004+00 1/0 0/0 0/0 .text diff__18J3DTexGenBlockNullFUl */ -void J3DTexGenBlockNull::diff(u32 param_0) { +// void J3DTexGenBlockNull::diff(u32 param_0) { +extern "C" void diff__18J3DTexGenBlockNullFUl() { /* empty function */ } /* 80332ABC-80332AC0 32D3FC 0004+00 1/0 0/0 0/0 .text diffTexMtx__18J3DTexGenBlockNullFv */ -void J3DTexGenBlockNull::diffTexMtx() { +// void J3DTexGenBlockNull::diffTexMtx() { +extern "C" void diffTexMtx__18J3DTexGenBlockNullFv() { /* empty function */ } /* 80332AC0-80332AC4 32D400 0004+00 1/0 0/0 0/0 .text diffTexGen__18J3DTexGenBlockNullFv */ -void J3DTexGenBlockNull::diffTexGen() { +// void J3DTexGenBlockNull::diffTexGen() { +extern "C" void diffTexGen__18J3DTexGenBlockNullFv() { /* empty function */ } @@ -1309,7 +1414,8 @@ void J3DTexGenBlockNull::diffTexGen() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTexGenBlockNull::getType() { +// asm u32 J3DTexGenBlockNull::getType() { +extern "C" asm void getType__18J3DTexGenBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/getType__18J3DTexGenBlockNullFv.s" } @@ -1319,7 +1425,8 @@ asm void J3DTexGenBlockNull::getType() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DTexGenBlockNull::~J3DTexGenBlockNull() { +// asm J3DTexGenBlockNull::~J3DTexGenBlockNull() { +extern "C" asm void __dt__18J3DTexGenBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__dt__18J3DTexGenBlockNullFv.s" } @@ -1329,7 +1436,8 @@ asm J3DTexGenBlockNull::~J3DTexGenBlockNull() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DColorBlockNull::getType() { +// asm u32 J3DColorBlockNull::getType() { +extern "C" asm void getType__17J3DColorBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/getType__17J3DColorBlockNullFv.s" } @@ -1339,7 +1447,8 @@ asm void J3DColorBlockNull::getType() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DColorBlockNull::~J3DColorBlockNull() { +// asm J3DColorBlockNull::~J3DColorBlockNull() { +extern "C" asm void __dt__17J3DColorBlockNullFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__dt__17J3DColorBlockNullFv.s" } @@ -1349,217 +1458,9 @@ asm J3DColorBlockNull::~J3DColorBlockNull() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DMaterial::~J3DMaterial() { +// asm J3DMaterial::~J3DMaterial() { +extern "C" asm void __dt__11J3DMaterialFv() { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/__dt__11J3DMaterialFv.s" } #pragma pop - -/* 80332BDC-80332BF4 32D51C 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<17J3DCurrentMtxInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332BDC(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332BDC.s" -} -#pragma pop - -/* 80332BF4-80332C0C 32D534 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<15J3DPatchingInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332BF4(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332BF4.s" -} -#pragma pop - -/* 80332C0C-80332C24 32D54C 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<18J3DDisplayListInit>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C0C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C0C.s" -} -#pragma pop - -/* 80332C24-80332C3C 32D564 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<15J3DNBTScaleInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C24(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C24.s" -} -#pragma pop - -/* 80332C3C-80332C54 32D57C 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<12J3DZModeInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C3C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C3C.s" -} -#pragma pop - -/* 80332C54-80332C6C 32D594 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<12J3DBlendInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C54(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C54.s" -} -#pragma pop - -/* 80332C6C-80332C84 32D5AC 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<16J3DAlphaCompInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C6C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C6C.s" -} -#pragma pop - -/* 80332C84-80332C9C 32D5C4 0018+00 1/1 1/1 0/0 .text JSUConvertOffsetToPtr<10J3DFogInfo>__FPCvPCv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C84(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C84.s" -} -#pragma pop - -/* 80332C9C-80332CB4 32D5DC 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<23J3DTevSwapModeTableInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332C9C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332C9C.s" -} -#pragma pop - -/* 80332CB4-80332CCC 32D5F4 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<18J3DTevSwapModeInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332CB4(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332CB4.s" -} -#pragma pop - -/* 80332CCC-80332CE4 32D60C 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<15J3DTevStageInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332CCC(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332CCC.s" -} -#pragma pop - -/* 80332CE4-80332CFC 32D624 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<15J3DTevOrderInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332CE4(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332CE4.s" -} -#pragma pop - -/* 80332CFC-80332D14 32D63C 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<13J3DTexMtxInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332CFC(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332CFC.s" -} -#pragma pop - -/* 80332D14-80332D2C 32D654 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<16J3DTexCoord2Info>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D14(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D14.s" -} -#pragma pop - -/* 80332D2C-80332D44 32D66C 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<15J3DTexCoordInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D2C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D2C.s" -} -#pragma pop - -/* 80332D44-80332D5C 32D684 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<12J3DLightInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D44(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D44.s" -} -#pragma pop - -/* 80332D5C-80332D74 32D69C 0018+00 1/1 1/1 0/0 .text - * JSUConvertOffsetToPtr<16J3DColorChanInfo>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D5C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D5C.s" -} -#pragma pop - -/* 80332D74-80332D8C 32D6B4 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<14J3DIndInitData>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D74(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D74.s" -} -#pragma pop - -/* 80332D8C-80332DA4 32D6CC 0018+00 1/1 0/0 0/0 .text - * JSUConvertOffsetToPtr<19J3DMaterialInitData>__FPCvPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_80332D8C(void* _this, void const* param_0, void const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory/func_80332D8C.s" -} -#pragma pop diff --git a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp index 06dac95a98..bbb24e1681 100644 --- a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp +++ b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp @@ -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;
+ }
+}
|
