This commit is contained in:
Jcw87 2023-08-21 06:38:12 -07:00 committed by GitHub
parent 697e3a5260
commit 5601eae629
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 195 additions and 162 deletions

View File

@ -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; }

View File

@ -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

View File

@ -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 */

View File

@ -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;