diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h index ea62166b53e..9443e41e1f4 100644 --- a/include/JSystem/J2DGraph/J2DTevs.h +++ b/include/JSystem/J2DGraph/J2DTevs.h @@ -41,8 +41,8 @@ public: J2DTexMtx(const J2DTexMtxInfo& info) { mInfo = info; } /* 802E9C90 */ void load(u32); /* 802E9CC4 */ void calc(); - /* 802E9D2C */ void getTextureMtx(J2DTextureSRTInfo const&, Vec, f32 (*)[4]); - /* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, f32 (*)[4]); + /* 802E9D2C */ void getTextureMtx(J2DTextureSRTInfo const&, Vec, Mtx); + /* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, Mtx); J2DTexMtxInfo& getTexMtxInfo() { return mInfo; } void setTexMtxInfo(J2DTexMtxInfo info) { mInfo = info; } @@ -145,24 +145,24 @@ private: }; // Size: 0x2 struct J2DIndTevStageInfo { - /* 0x0 */ u8 field_0x0; - /* 0x1 */ u8 field_0x1; - /* 0x2 */ u8 field_0x2; - /* 0x3 */ u8 field_0x3; - /* 0x4 */ u8 field_0x4; - /* 0x5 */ u8 field_0x5; - /* 0x6 */ u8 field_0x6; - /* 0x7 */ u8 field_0x7; - /* 0x8 */ u8 field_0x8; + /* 0x0 */ u8 mIndStage; + /* 0x1 */ u8 mIndFormat; + /* 0x2 */ u8 mBiasSel; + /* 0x3 */ u8 mMtxSel; + /* 0x4 */ u8 mWrapS; + /* 0x5 */ u8 mWrapT; + /* 0x6 */ u8 mPrev; + /* 0x7 */ u8 mLod; + /* 0x8 */ u8 mAlphaSel; /* 0x9 */ u8 field_0x9; /* 0xa */ u8 field_0xa; /* 0xb */ u8 field_0xb; }; inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) { - return (info.field_0x8 << 22) | (info.field_0x7 << 21) | (info.field_0x6 << 20) | - (info.field_0x3 << 16) | (info.field_0x5 << 11) | (info.field_0x4 << 8) | - (info.field_0x2 << 4) | (info.field_0x1 << 2) | (info.field_0x0); + return (info.mAlphaSel << 22) | (info.mLod << 21) | (info.mPrev << 20) | + (info.mMtxSel << 16) | (info.mWrapT << 11) | (info.mWrapS << 8) | + (info.mBiasSel << 4) | (info.mIndFormat << 2) | (info.mIndStage); } extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo; @@ -263,30 +263,30 @@ public: struct J2DTevStageInfo { /* 0x00 */ u8 field_0x0; - /* 0x01 */ u8 field_0x1; - /* 0x02 */ u8 field_0x2; - /* 0x03 */ u8 field_0x3; - /* 0x04 */ u8 field_0x4; - /* 0x05 */ u8 field_0x5; - /* 0x06 */ u8 field_0x6; - /* 0x07 */ u8 field_0x7; - /* 0x08 */ u8 field_0x8; - /* 0x09 */ u8 field_0x9; - /* 0x0A */ u8 field_0xa; - /* 0x0B */ u8 field_0xb; - /* 0x0C */ u8 field_0xc; - /* 0x0D */ u8 field_0xd; - /* 0x0E */ u8 field_0xe; - /* 0x0F */ u8 field_0xf; - /* 0x10 */ u8 field_0x10; - /* 0x11 */ u8 field_0x11; - /* 0x12 */ u8 field_0x12; + /* 0x01 */ u8 mColorA; + /* 0x02 */ u8 mColorB; + /* 0x03 */ u8 mColorC; + /* 0x04 */ u8 mColorD; + /* 0x05 */ u8 mCOp; + /* 0x06 */ u8 mCBias; + /* 0x07 */ u8 mCScale; + /* 0x08 */ u8 mCClamp; + /* 0x09 */ u8 mCReg; + /* 0x0A */ u8 mAlphaA; + /* 0x0B */ u8 mAlphaB; + /* 0x0C */ u8 mAlphaC; + /* 0x0D */ u8 mAlphaD; + /* 0x0E */ u8 mAOp; + /* 0x0F */ u8 mABias; + /* 0x10 */ u8 mAScale; + /* 0x11 */ u8 mAClamp; + /* 0x12 */ u8 mAReg; /* 0x13 */ u8 field_0x13; }; struct J2DTevSwapModeInfo { - /* 0x0 */ u8 field_0x0; - /* 0x1 */ u8 field_0x1; + /* 0x0 */ u8 mRasSel; + /* 0x1 */ u8 mTexSel; /* 0x2 */ u8 field_0x2; /* 0x3 */ u8 field_0x3; }; @@ -303,8 +303,8 @@ public: } void setTevSwapModeInfo(const J2DTevSwapModeInfo& swapInfo) { - setTexSel(swapInfo.field_0x1); - setRasSel(swapInfo.field_0x0); + setTexSel(swapInfo.mTexSel); + setRasSel(swapInfo.mRasSel); } void setTexSel(u8 param_0) { @@ -315,58 +315,58 @@ public: field_0x7 = (field_0x7 & ~0x03) | param_0; } - void setColorABCD(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { - setTevColorAB(param_0, param_1); - setTevColorCD(param_2, param_3); + void setColorABCD(u8 a, u8 b, u8 c, u8 d) { + setTevColorAB(a, b); + setTevColorCD(c, d); } - void setTevColorAB(u8 param_0, u8 param_1) { field_0x2 = param_0 << 4 | param_1; } - void setTevColorCD(u8 param_0, u8 param_1) { field_0x3 = param_0 << 4 | param_1; } + void setTevColorAB(u8 a, u8 b) { field_0x2 = a << 4 | b; } + void setTevColorCD(u8 c, u8 d) { field_0x3 = c << 4 | d; } - void setTevColorOp(u8 param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4) { - field_0x1 = field_0x1 & ~0x04 | param_0 << 2; - if (param_0 <= 1) { - field_0x1 = field_0x1 & ~0x30 | param_2 << 4; - field_0x1 = field_0x1 & ~0x03 | param_1; + void setTevColorOp(u8 op, u8 bias, u8 scale, u8 clamp, u8 reg) { + field_0x1 = field_0x1 & ~0x04 | op << 2; + if (op <= 1) { + field_0x1 = field_0x1 & ~0x30 | scale << 4; + field_0x1 = field_0x1 & ~0x03 | bias; } else { - field_0x1 = field_0x1 & ~0x30 | (param_0 >> 1 & 3) << 4; + field_0x1 = field_0x1 & ~0x30 | (op >> 1 & 3) << 4; field_0x1 = field_0x1 & ~0x03 | 3; } - field_0x1 = field_0x1 & ~0x08 | param_3 << 3; - field_0x1 = field_0x1 & ~0xc0 | param_4 << 6; + field_0x1 = field_0x1 & ~0x08 | clamp << 3; + field_0x1 = field_0x1 & ~0xc0 | reg << 6; } - void setAlphaABCD(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { - setAlphaA(param_0); - setAlphaB(param_1); - setAlphaC(param_2); - setAlphaD(param_3); + void setAlphaABCD(u8 a, u8 b, u8 c, u8 d) { + setAlphaA(a); + setAlphaB(b); + setAlphaC(c); + setAlphaD(d); } - void setAlphaA(u8 param_0) { - field_0x6 = field_0x6 & ~0xe0 | param_0 << 5; + void setAlphaA(u8 a) { + field_0x6 = field_0x6 & ~0xe0 | a << 5; } - void setAlphaB(u8 param_0) { - field_0x6 = field_0x6 & ~0x1c | param_0 << 2; + void setAlphaB(u8 b) { + field_0x6 = field_0x6 & ~0x1c | b << 2; } - void setAlphaC(u8 param_0) { - field_0x6 = field_0x6 & ~0x03 | param_0 >> 1; - field_0x7 = field_0x7 & ~0x80 | param_0 << 7; + void setAlphaC(u8 c) { + field_0x6 = field_0x6 & ~0x03 | c >> 1; + field_0x7 = field_0x7 & ~0x80 | c << 7; } - void setAlphaD(u8 param_0) { - field_0x7 = field_0x7 & ~0x70 | param_0 << 4; + void setAlphaD(u8 d) { + field_0x7 = field_0x7 & ~0x70 | d << 4; } - void setTevAlphaOp(u8 param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4) { - field_0x5 = field_0x5 & ~0x04 | param_0 << 2; - if (param_0 <= 1) { - field_0x5 = field_0x5 & ~0x03 | param_1; - field_0x5 = field_0x5 & ~0x30 | param_2 << 4; + void setTevAlphaOp(u8 op, u8 bias, u8 scale, u8 clamp, u8 reg) { + field_0x5 = field_0x5 & ~0x04 | op << 2; + if (op <= 1) { + field_0x5 = field_0x5 & ~0x03 | bias; + field_0x5 = field_0x5 & ~0x30 | scale << 4; } else { - field_0x5 = field_0x5 & ~0x30 | (param_0 >> 1 & 3) << 4; + field_0x5 = field_0x5 & ~0x30 | (op >> 1 & 3) << 4; field_0x5 = field_0x5 & ~0x03 | 3; } - field_0x5 = field_0x5 & ~0x08 | param_3 << 3; - field_0x5 = field_0x5 & ~0xc0 | param_4 << 6; + field_0x5 = field_0x5 & ~0x08 | clamp << 3; + field_0x5 = field_0x5 & ~0xc0 | reg << 6; } u8 getColorA() { return (field_0x2 & 0xf0) >> 4; } diff --git a/include/MSL_C/math.h b/include/MSL_C/math.h index 5e0a97a2a00..366ee88dec9 100644 --- a/include/MSL_C/math.h +++ b/include/MSL_C/math.h @@ -77,6 +77,9 @@ inline float atan2f(float y, float x) { return (float)atan2(y, x); } +inline float i_sinf(float x) { return sin(x); } +inline float i_cosf(float x) { return cos(x); } + #ifdef __cplusplus }; #endif diff --git a/libs/JSystem/J2DGraph/J2DMatBlock.cpp b/libs/JSystem/J2DGraph/J2DMatBlock.cpp index 0a18e513783..99b0822df47 100644 --- a/libs/JSystem/J2DGraph/J2DMatBlock.cpp +++ b/libs/JSystem/J2DGraph/J2DMatBlock.cpp @@ -2614,10 +2614,10 @@ J2DTevStage::J2DTevStage() { /* 802F19A8-802F1B70 2EC2E8 01C8+00 1/1 1/1 0/0 .text * setTevStageInfo__11J2DTevStageFRC15J2DTevStageInfo */ void J2DTevStage::setTevStageInfo(J2DTevStageInfo const& info) { - setColorABCD(info.field_0x1, info.field_0x2, info.field_0x3, info.field_0x4); - setTevColorOp(info.field_0x5, info.field_0x6, info.field_0x7, info.field_0x8, info.field_0x9); - setAlphaABCD(info.field_0xa, info.field_0xb, info.field_0xc, info.field_0xd); - setTevAlphaOp(info.field_0xe, info.field_0xf, info.field_0x10, info.field_0x11, info.field_0x12); + setColorABCD(info.mColorA, info.mColorB, info.mColorC, info.mColorD); + setTevColorOp(info.mCOp, info.mCBias, info.mCScale, info.mCClamp, info.mCReg); + setAlphaABCD(info.mAlphaA, info.mAlphaB, info.mAlphaC, info.mAlphaD); + setTevAlphaOp(info.mAOp, info.mABias, info.mAScale, info.mAClamp, info.mAReg); } /* 802F1B70-802F1B90 2EC4B0 0020+00 5/5 0/0 0/0 .text __ct__11J2DTevOrderFv */ diff --git a/libs/JSystem/J2DGraph/J2DTevs.cpp b/libs/JSystem/J2DGraph/J2DTevs.cpp index 36b08aaa431..de3157e9dea 100644 --- a/libs/JSystem/J2DGraph/J2DTevs.cpp +++ b/libs/JSystem/J2DGraph/J2DTevs.cpp @@ -4,34 +4,12 @@ // #include "JSystem/J2DGraph/J2DTevs.h" +#include "JSystem/J2DGraph/J2DMatBlock.h" +#include "JSystem/JUtility/TColor.h" +#include "MSL_C/math.h" #include "dol2asm.h" #include "dolphin/gx/GX.h" -// -// Types: -// - -struct J2DTevBlock { - /* 802EA12C */ bool getTevSwapModeTable(u32); - /* 802EA134 */ bool getTevStage(u32); - /* 802EA13C */ bool getTevColor(u32); - /* 802EA144 */ bool getTevOrder(u32); - /* 802EA14C */ bool getTevKAlphaSel(u32); - /* 802EA154 */ bool getTevKColorSel(u32); - /* 802EA15C */ bool getTevKColor(u32); - /* 802EA164 */ u16 getFontNo() const; - /* 802EA170 */ u32 getTexNo(u32) const; - /* 802EA17C */ bool getTevStageNum() const; - /* 802EA184 */ bool getIndTevStage(u32); -}; - -struct J2DIndBlock { - /* 802EA18C */ bool getIndTexCoordScale(u32); - /* 802EA194 */ bool getIndTexMtx(u32); - /* 802EA19C */ bool getIndTexOrder(u32); - /* 802EA1A4 */ bool getIndTexStageNum() const; -}; - // // Forward References: // @@ -63,14 +41,14 @@ extern "C" extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8]; extern "C" extern J2DTexMtxInfo const j2dDefaultTexMtxInfo; extern "C" extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo; extern "C" extern J2DTevStageInfo const j2dDefaultTevStageInfo; -extern "C" extern u32 j2dDefaultColInfo; -extern "C" extern u8 j2dDefaultTevColor[8]; -extern "C" extern u32 j2dDefaultTevKColor; -extern "C" extern u8 j2dDefaultTevSwapMode[4]; -extern "C" extern u32 j2dDefaultBlendInfo; +extern "C" extern GXColor j2dDefaultColInfo; +extern "C" extern GXColorS10 j2dDefaultTevColor; +extern "C" extern GXColor j2dDefaultTevKColor; +extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode; +extern "C" extern J2DBlendInfo j2dDefaultBlendInfo; extern "C" extern u8 data_804561A4[4]; -extern "C" extern u32 j2dDefaultColorChanInfo; -extern "C" extern u16 data_804561AC; +extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo; +extern "C" extern u8 data_804561AC; // // External References: @@ -78,8 +56,6 @@ extern "C" extern u16 data_804561AC; extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -extern "C" void cos(); -extern "C" void sin(); // // Declarations: @@ -119,15 +95,39 @@ SECTION_SDATA2 static f32 lit_1491 = 1.0f; /* 802E9D2C-802E9EBC 2E466C 0190+00 1/1 0/0 0/0 .text * getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f */ +// regalloc +#ifdef NONMATCHING +void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) { + float f31 = (param_0.field_0x8 * M_PI) / 180.0f; + param_2[0][0] = param_0.field_0x0 * i_cosf(f31); + param_2[0][1] = -param_0.field_0x0 * i_sinf(f31); + param_2[0][2] = 0.0f; + float f30 = i_sinf(f31); + float tmp = i_cosf(f31); + param_2[0][3] = -param_0.field_0x0 * tmp * param_1.x + param_1.y * (param_0.field_0x0 * f30) + + param_0.field_0xc + param_1.x; + param_2[1][0] = param_0.field_0x4 * i_sinf(f31); + param_2[1][1] = param_0.field_0x4 * i_cosf(f31); + param_2[1][2] = 0.0f; + f30 = i_cosf(f31); + tmp = i_sinf(f31); + param_2[1][3] = -param_0.field_0x4 * tmp * param_1.x - param_1.y * (param_0.field_0x4 * f30) + + param_0.field_0x10 + param_1.y; + param_2[2][0] = 0.0f; + param_2[2][1] = 0.0f; + param_2[2][2] = 1.0f; + param_2[2][3] = 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, - f32 (*param_2)[4]) { +asm void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) { nofralloc #include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80456178-8045617C 004778 0004+00 1/1 0/0 0/0 .sdata2 @1507 */ @@ -135,14 +135,39 @@ SECTION_SDATA2 static f32 lit_1507 = 0.5f; /* 802E9EBC-802EA044 2E47FC 0188+00 1/1 0/0 0/0 .text * getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f */ +// regswap +#ifdef NONMATCHING +void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) { + float f31 = (param_0.field_0x8 * M_PI) / 180.0f; + param_1[0][0] = param_0.field_0x0 * i_cosf(f31); + param_1[0][1] = param_0.field_0x4 * i_sinf(f31); + param_1[0][2] = 0.0f; + float f30 = i_sinf(f31); + float tmp = i_cosf(f31); + param_1[0][3] = (param_0.field_0xc - 0.5f) * tmp - + (param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f; + param_1[1][0] = -param_0.field_0x0 * i_sinf(f31); + param_1[1][1] = param_0.field_0x4 * i_cosf(f31); + param_1[1][2] = 0.0f; + f30 = i_cosf(f31); + tmp = i_sinf(f31); + param_1[1][3] = -(param_0.field_0xc - 0.5f) * tmp - + (param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f; + param_1[2][0] = 0.0f; + param_1[2][1] = 0.0f; + param_1[2][2] = 1.0f; + param_1[2][3] = 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, f32 (*param_1)[4]) { +asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) { nofralloc #include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f.s" } #pragma pop +#endif /* 802EA044-802EA098 2E4984 0054+00 0/0 5/5 0/0 .text load__14J2DIndTevStageFUc */ void J2DIndTevStage::load(u8 tevStage) { @@ -167,40 +192,40 @@ void J2DIndTexOrder::load(u8 indTexStage) { } /* 802EA12C-802EA134 2E4A6C 0008+00 0/0 1/0 0/0 .text getTevSwapModeTable__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevSwapModeTable(u32 param_0) { - return false; +J2DTevSwapModeTable* J2DTevBlock::getTevSwapModeTable(u32 param_0) { + return NULL; } /* 802EA134-802EA13C 2E4A74 0008+00 0/0 1/0 0/0 .text getTevStage__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevStage(u32 param_0) { - return false; +J2DTevStage* J2DTevBlock::getTevStage(u32 param_0) { + return NULL; } /* 802EA13C-802EA144 2E4A7C 0008+00 0/0 1/0 0/0 .text getTevColor__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevColor(u32 param_0) { - return false; +J2DGXColorS10* J2DTevBlock::getTevColor(u32 param_0) { + return NULL; } /* 802EA144-802EA14C 2E4A84 0008+00 0/0 1/0 0/0 .text getTevOrder__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevOrder(u32 param_0) { - return false; +J2DTevOrder* J2DTevBlock::getTevOrder(u32 param_0) { + return NULL; } /* 802EA14C-802EA154 2E4A8C 0008+00 0/0 1/0 0/0 .text getTevKAlphaSel__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevKAlphaSel(u32 param_0) { - return false; +u8 J2DTevBlock::getTevKAlphaSel(u32 param_0) { + return 0; } /* 802EA154-802EA15C 2E4A94 0008+00 0/0 1/0 0/0 .text getTevKColorSel__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevKColorSel(u32 param_0) { - return false; +u8 J2DTevBlock::getTevKColorSel(u32 param_0) { + return 0; } /* 802EA15C-802EA164 2E4A9C 0008+00 0/0 1/0 0/0 .text getTevKColor__11J2DTevBlockFUl */ -bool J2DTevBlock::getTevKColor(u32 param_0) { - return false; +JUtility::TColor* J2DTevBlock::getTevKColor(u32 param_0) { + return NULL; } /* 802EA164-802EA170 2E4AA4 000C+00 0/0 1/0 0/0 .text getFontNo__11J2DTevBlockCFv */ @@ -214,41 +239,43 @@ u32 J2DTevBlock::getTexNo(u32 param_0) const { } /* 802EA17C-802EA184 2E4ABC 0008+00 0/0 1/0 0/0 .text getTevStageNum__11J2DTevBlockCFv */ -bool J2DTevBlock::getTevStageNum() const { - return true; +u8 J2DTevBlock::getTevStageNum() const { + return 1; } /* 802EA184-802EA18C 2E4AC4 0008+00 0/0 1/0 0/0 .text getIndTevStage__11J2DTevBlockFUl */ -bool J2DTevBlock::getIndTevStage(u32 param_0) { - return false; +J2DIndTevStage* J2DTevBlock::getIndTevStage(u32 param_0) { + return NULL; } /* 802EA18C-802EA194 2E4ACC 0008+00 0/0 2/0 0/0 .text getIndTexCoordScale__11J2DIndBlockFUl */ -bool J2DIndBlock::getIndTexCoordScale(u32 param_0) { - return false; +J2DIndTexCoordScale* J2DIndBlock::getIndTexCoordScale(u32 param_0) { + return NULL; } /* 802EA194-802EA19C 2E4AD4 0008+00 0/0 2/0 0/0 .text getIndTexMtx__11J2DIndBlockFUl */ -bool J2DIndBlock::getIndTexMtx(u32 param_0) { - return false; +J2DIndTexMtx* J2DIndBlock::getIndTexMtx(u32 param_0) { + return NULL; } /* 802EA19C-802EA1A4 2E4ADC 0008+00 0/0 2/0 0/0 .text getIndTexOrder__11J2DIndBlockFUl */ -bool J2DIndBlock::getIndTexOrder(u32 param_0) { - return false; +J2DIndTexOrder* J2DIndBlock::getIndTexOrder(u32 param_0) { + return NULL; } /* 802EA1A4-802EA1AC 2E4AE4 0008+00 0/0 2/0 0/0 .text getIndTexStageNum__11J2DIndBlockCFv */ -bool J2DIndBlock::getIndTexStageNum() const { - return false; +u8 J2DIndBlock::getIndTexStageNum() const { + return 0; } /* ############################################################################################## */ /* 803A1B80-803A1BA0 02E1E0 0020+00 0/0 3/3 0/0 .rodata j2dDefaultTexCoordInfo */ extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = { - {1, 4, 60, 0}, {1, 5, 60, 0}, {1, 6, 60, 0}, {1, 7, 60, 0}, - {1, 8, 60, 0}, {1, 9, 60, 0}, {1, 10, 60, 0}, {1, 11, 60, 0}, + {GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0}, + {GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0}, + {GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0}, + {GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0}, }; /* 803A1BA0-803A1BC4 02E200 0024+00 0/0 3/3 0/0 .rodata j2dDefaultTexMtxInfo */ @@ -259,51 +286,54 @@ extern J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1}; /* 803A1BE0-803A1BF4 02E240 0014+00 0/0 1/1 0/0 .rodata j2dDefaultTevStageInfo */ -extern J2DTevStageInfo const j2dDefaultTevStageInfo = {4, 10, 15, 15, 0, 0, 0, 0, 1, - 0, 5, 7, 7, 0, 0, 0, 0, 1}; +extern J2DTevStageInfo const j2dDefaultTevStageInfo = { + 4, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV, GX_TEV_ADD, + GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV, GX_CA_RASA, GX_CA_ZERO, + GX_CA_ZERO, GX_CA_APREV, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, + GX_TEVPREV}; /* 803A1BF4-803A1C00 02E254 000C+00 0/0 7/7 0/0 .rodata j2dDefaultIndTevStageInfo */ SECTION_RODATA extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + GX_INDTEXSTAGE0, GX_ITB_NONE, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, + GX_ITW_OFF, 0, 0, GX_ITBA_OFF, }; COMPILER_STRIP_GATE(0x803A1BF4, &j2dDefaultIndTevStageInfo); /* 8045617C-80456180 00477C 0004+00 0/0 1/1 0/0 .sdata2 j2dDefaultColInfo */ -SECTION_SDATA2 extern u32 j2dDefaultColInfo = 0xFFFFFFFF; +SECTION_SDATA2 extern GXColor j2dDefaultColInfo = {255, 255, 255, 255}; /* 80456180-80456184 004780 0004+00 0/0 7/7 0/0 .sdata2 j2dDefaultTevOrderInfoNull */ -SECTION_SDATA2 extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull = {0xFF, 0xFF, 0xFF, 0x00}; +SECTION_SDATA2 extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull = { + GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL, 0}; /* 80456184-80456188 004784 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexOrderNull */ -SECTION_SDATA2 extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = { 0xFF, 0xFF, }; +SECTION_SDATA2 extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = { + GX_TEXCOORD_NULL, + GX_TEXMAP_NULL, +}; /* 80456188-80456190 004788 0008+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevColor */ -SECTION_SDATA2 extern u8 j2dDefaultTevColor[8] = { - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, -}; +SECTION_SDATA2 extern GXColorS10 j2dDefaultTevColor = {255, 255, 255, 255}; /* 80456190-80456194 004790 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexCoordScaleInfo */ SECTION_SDATA2 extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo = { - 0x00, - 0x00, + GX_ITS_1, + GX_ITS_1, }; /* 80456194-80456198 004794 0004+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevKColor */ -SECTION_SDATA2 extern u32 j2dDefaultTevKColor = 0xFFFFFFFF; +SECTION_SDATA2 extern GXColor j2dDefaultTevKColor = {255, 255, 255, 255}; /* 80456198-8045619C 004798 0004+00 0/0 2/2 0/0 .sdata2 j2dDefaultTevSwapMode */ -SECTION_SDATA2 extern u8 j2dDefaultTevSwapMode[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA2 extern J2DTevSwapModeInfo j2dDefaultTevSwapMode = {GX_TEV_SWAP0, GX_TEV_SWAP0, 0, 0}; /* 8045619C-804561A0 00479C 0004+00 0/0 6/6 0/0 .sdata2 j2dDefaultTevSwapModeTable */ -SECTION_SDATA2 extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = {0x00, 0x01, 0x02, 0x03}; +SECTION_SDATA2 extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = { + GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA}; /* 804561A0-804561A4 0047A0 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultBlendInfo */ -SECTION_SDATA2 extern u32 j2dDefaultBlendInfo = 0x01040505; +SECTION_SDATA2 extern J2DBlendInfo j2dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, + GX_BL_INV_SRC_ALPHA, GX_LO_NOOP}; /* 804561A4-804561A8 0047A4 0004+00 0/0 1/1 0/0 .sdata2 None */ SECTION_SDATA2 extern u8 data_804561A4[4] = { @@ -314,10 +344,10 @@ SECTION_SDATA2 extern u8 data_804561A4[4] = { }; /* 804561A8-804561AC 0047A8 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultColorChanInfo */ -SECTION_SDATA2 extern u32 j2dDefaultColorChanInfo = 0x00030000; +SECTION_SDATA2 extern J2DColorChanInfo j2dDefaultColorChanInfo = {0, 3, 0, 0}; /* 804561AC-804561AE 0047AC 0002+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u16 data_804561AC = 0x1B00; +SECTION_SDATA2 extern u8 data_804561AC = 0x1B; /* 804561AE-804561B0 0047AE 0002+00 0/0 3/3 0/0 .sdata2 j2dDefaultAlphaCmp */ SECTION_SDATA2 extern u16 j2dDefaultAlphaCmp = 0x00E7;