summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-10-24 14:35:00 -0700
committerGitHub <noreply@github.com>2021-10-24 23:35:00 +0200
commit5020395dfd34d4dc846e3ea228f6271bfca1c72a (patch)
tree9b553bbfc8b0807d7f860964d6044d6ccf6d1342 /include
parentb88cb8cdc0b7a8af4df22e303ff81e0e617dbc85 (diff)
J2D structs + print / fix GX + MSL string headers (#157)
* J2D structs + print / fix GX + MSL string headers * remove msl_c/string.h
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DAnimation.h262
-rw-r--r--include/JSystem/J2DGraph/J2DAnmLoader.h62
-rw-r--r--include/JSystem/J2DGraph/J2DMatBlock.h514
-rw-r--r--include/JSystem/J2DGraph/J2DMaterial.h33
-rw-r--r--include/JSystem/J2DGraph/J2DMaterialFactory.h66
-rw-r--r--include/JSystem/J2DGraph/J2DPictureEx.h96
-rw-r--r--include/JSystem/J2DGraph/J2DPrint.h62
-rw-r--r--include/JSystem/J2DGraph/J2DTevs.h163
-rw-r--r--include/JSystem/J2DGraph/J2DTextBoxEx.h50
-rw-r--r--include/JSystem/J2DGraph/J2DWindowEx.h62
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DMatBlock.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DSys.h4
-rw-r--r--include/JSystem/JUtility/JUTPalette.h27
-rw-r--r--include/JSystem/JUtility/TColor.h2
-rw-r--r--include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.h4
-rw-r--r--include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h11
-rw-r--r--include/SSystem/SComponent/c_cc_d.h2
-rw-r--r--include/d/d_stage.h1
-rw-r--r--include/d/kankyo/d_kankyo.h6
-rw-r--r--include/d/save/d_save.h3
-rw-r--r--include/dolphin/gx/GX.h766
-rw-r--r--include/dolphin/gx/GXTexture.h14
-rw-r--r--include/msl_c/string.h27
25 files changed, 1861 insertions, 382 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h
index 5d43cdd324..41e7f7f92c 100644
--- a/include/JSystem/J2DGraph/J2DAnimation.h
+++ b/include/JSystem/J2DGraph/J2DAnimation.h
@@ -1,98 +1,250 @@
#ifndef J2DANIMATION_H
#define J2DANIMATION_H
-#include "dolphin/gx/GXTexture.h"
+#include "JSystem/JUtility/JUTNameTab.h"
+#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
+class J2DScreen;
+
+class J2DAnmBase {
+public:
+ /* 80053C94 */ virtual ~J2DAnmBase();
+ /* 800569B0 */ virtual void searchUpdateMaterialID(J2DScreen*);
+
+ s16 getFrameMax() const { return mFrameMax; }
+ void setFrame(f32 frame) { mFrame = frame; }
+
+private:
+ /* 0x0 */ // vtable
+ /* 0x4 */ u8 field_0x4[2];
+ /* 0x6 */ s16 mFrameMax;
+ /* 0x8 */ f32 mFrame;
+ /* 0xC */ s32 mKind;
+}; // Size: 0x10
+
+class J2DAnmVtxColor : public J2DAnmBase {
+public:
+ /* 8030A358 */ virtual ~J2DAnmVtxColor();
+ /* 8030363C */ virtual void getColor(u8, u16, _GXColor*) const;
+
+private:
+ /* 0x10 */ u16 mAnmTableNum[2];
+ /* 0x14 */ void* mVtxColorIndexData[2];
+ /* 0x1C */ void* mVtxColorIndexPointer[2];
+}; // Size: 0x24
+
struct J3DTransformInfo;
struct J3DTextureSRTInfo;
-class J2DScreen;
-struct J2DAnmVtxColorKey {
- /* 8030B704 */ void getColor(u8, u16, _GXColor*) const;
- /* 8030CC20 */ ~J2DAnmVtxColorKey();
-};
+class J2DAnmVtxColorKey : public J2DAnmVtxColor {
+ /* 8030CC20 */ virtual ~J2DAnmVtxColorKey();
+ /* 8030B704 */ virtual void getColor(u8, u16, _GXColor*) const;
-struct J2DAnmVtxColorFull {
- /* 8030B4C4 */ void getColor(u8, u16, _GXColor*) const;
- /* 8030CC8C */ ~J2DAnmVtxColorFull();
-};
+private:
+ /* 0x24 */ void* field_0x24[2];
+ /* 0x2C */ void* field_0x2c;
+ /* 0x30 */ void* field_0x30;
+ /* 0x34 */ void* field_0x34;
+ /* 0x38 */ void* field_0x38;
+}; // Size: 0x3C
+
+class J2DAnmVtxColorFull : public J2DAnmVtxColor {
+public:
+ /* 8030CC8C */ virtual ~J2DAnmVtxColorFull();
+ /* 8030B4C4 */ virtual void getColor(u8, u16, _GXColor*) const;
-struct J2DAnmVisibilityFull {
+private:
+ /* 0x24 */ void* field_0x24[2];
+ /* 0x2C */ void* field_0x2c;
+ /* 0x30 */ void* field_0x30;
+ /* 0x34 */ void* field_0x34;
+ /* 0x38 */ void* field_0x38;
+}; // Size: 0x3C
+
+class J2DAnmVisibilityFull : public J2DAnmBase {
+public:
+ /* 8030A3B4 */ virtual ~J2DAnmVisibilityFull();
/* 8030C048 */ void getVisibility(u16, u8*) const;
-};
-struct J2DAnmTransformKey {
- /* 801959C0 */ ~J2DAnmTransformKey();
- /* 8030AAFC */ void calcTransform(f32, u16, J3DTransformInfo*) const;
- /* 8030CD7C */ void getTransform(u16, J3DTransformInfo*) const;
+private:
+ /* 0x10 */ u16 field_0x10;
+ /* 0x12 */ u16 field_0x12;
+ /* 0x14 */ void* field_0x14;
+ /* 0x18 */ void* field_0x18;
+}; // Size: 0x1C
+
+class J2DAnmTransform : public J2DAnmBase {
+public:
+ /* 80184370 */ virtual ~J2DAnmTransform();
+ /* 80191130 */ virtual void getTransform(u16, J3DTransformInfo*) const;
+
+private:
+ /* 0x10 */ f32* field_0x10;
+ /* 0x14 */ s16* field_0x14;
+ /* 0x18 */ f32* field_0x18;
+}; // Size: 0x1C
+
+class J2DAnmTransformKey : public J2DAnmTransform {
+public:
+ /* 801959C0 */ virtual ~J2DAnmTransformKey();
+ /* 8030CD7C */ virtual void getTransform(u16, J3DTransformInfo*) const;
+ /* 8030AAFC */ virtual void calcTransform(f32, u16, J3DTransformInfo*) const;
+
+private:
+ /* 0x1C */ u8 field_0x1c[8];
+ /* 0x24 */ void* field_0x24;
+ /* 0x28 */ void* field_0x28;
};
-struct J2DAnmTransformFull {
- /* 8030A590 */ void getTransform(u16, J3DTransformInfo*) const;
- /* 8030CDAC */ ~J2DAnmTransformFull();
+class J2DAnmTransformFull : public J2DAnmTransform {
+public:
+ /* 8030CDAC */ virtual ~J2DAnmTransformFull();
+ /* 8030A590 */ virtual void getTransform(u16, J3DTransformInfo*) const;
+
+private:
+ /* 0x1C */ u8 field_0x1c[6];
+ /* 0x22 */ u16 field_0x22;
+ /* 0x24 */ void* field_0x24;
};
-struct J2DAnmTextureSRTKey {
- /* 80184274 */ ~J2DAnmTextureSRTKey();
+class J2DAnmTextureSRTKey : public J2DAnmBase {
+public:
/* 8030B9F0 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const;
- /* 8030BC60 */ void searchUpdateMaterialID(J2DScreen*);
+
+ /* 80184274 */ virtual ~J2DAnmTextureSRTKey();
+ /* 8030BC60 */ virtual void searchUpdateMaterialID(J2DScreen*);
+
+private:
+ /* 0x10 */ int field_0x10;
+ /* 0x14 */ int field_0x14;
+ /* 0x18 */ u16 mUpdateMaterialNum;
+ /* 0x1A */ u16 field_0x1a;
+ /* 0x1C */ u16 field_0x1c;
+ /* 0x20 */ int field_0x20;
+ /* 0x24 */ int field_0x24;
+ /* 0x28 */ int field_0x28;
+ /* 0x2C */ u8* mUpdateTexMtxID;
+ /* 0x30 */ u16* mUpdateMaterialID;
+ /* 0x34 */ JUTNameTab field_0x34;
+ /* 0x44 */ u8 field_0x44[4];
+ /* 0x48 */ u16 field_0x48;
+ /* 0x4A */ u16 field_0x4a;
+ /* 0x4C */ u16 field_0x4c;
+ /* 0x4E */ u16 field_0x4e;
+ /* 0x50 */ int field_0x50;
+ /* 0x54 */ int field_0x54;
+ /* 0x58 */ int field_0x58;
+ /* 0x5C */ int field_0x5c;
+ /* 0x60 */ u8 field_0x60[8];
+ /* 0x68 */ JUTNameTab field_0x68;
+ /* 0x78 */ u8 field_0x78[4];
+ /* 0x7C */ int field_0x7c;
};
-struct J2DAnmTexPattern {
+class J2DAnmTexPattern : public J2DAnmBase {
+public:
struct J2DAnmTexPatternTIMGPointer {
/* 8030CB2C */ J2DAnmTexPatternTIMGPointer();
/* 8030CB3C */ ~J2DAnmTexPatternTIMGPointer();
- };
- /* 8030BD10 */ void searchUpdateMaterialID(J2DScreen*);
+ /* 0x0 */ ResTIMG* mRes;
+ /* 0x4 */ JUTPalette* mPalette;
+ }; // Size: 0x8
+
/* 8030BEE8 */ void getTexNo(u16, u16*) const;
/* 8030BF9C */ void getResTIMG(u16) const;
/* 8030BFF0 */ void getPalette(u16) const;
- /* 8030CB90 */ ~J2DAnmTexPattern();
+
+ /* 8030CB90 */ virtual ~J2DAnmTexPattern();
+ /* 8030BD10 */ virtual void searchUpdateMaterialID(J2DScreen*);
+
+private:
+ /* 0x10 */ int field_0x10;
+ /* 0x14 */ void* mAnmTable;
+ /* 0x18 */ u8 field_0x18[2];
+ /* 0x1A */ u16 mUpdateMaterialNum;
+ /* 0x1C */ u16* mUpdaterMaterialID;
+ /* 0x20 */ JUTNameTab field_0x20;
+ /* 0x30 */ J2DAnmTexPatternTIMGPointer* mTIMGPtrArray;
};
-struct J2DAnmTevRegKey {
- /* 801841EC */ ~J2DAnmTevRegKey();
+class J2DAnmTevRegKey : public J2DAnmBase {
+public:
/* 8030C0F0 */ void getTevColorReg(u16, _GXColorS10*) const;
/* 8030C3B4 */ void getTevKonstReg(u16, _GXColor*) const;
- /* 8030C678 */ void searchUpdateMaterialID(J2DScreen*);
-};
-
-struct J2DAnmColorKey {
- /* 80239BE0 */ ~J2DAnmColorKey();
- /* 8030B200 */ void getColor(u16, _GXColor*) const;
-};
-struct J2DAnmColorFull {
- /* 8030AFC8 */ void getColor(u16, _GXColor*) const;
- /* 8030CCF8 */ ~J2DAnmColorFull();
-};
+ /* 801841EC */ virtual ~J2DAnmTevRegKey();
+ /* 8030C678 */ virtual void searchUpdateMaterialID(J2DScreen*);
-struct J2DAnmColor {
- /* 801842FC */ ~J2DAnmColor();
- /* 802EB390 */ void getColor(u16, _GXColor*) const;
- /* 8030AF24 */ void searchUpdateMaterialID(J2DScreen*);
+private:
+ /* 0x10 */ u16 mCRegUpdateMaterialNum;
+ /* 0x12 */ u16 mKRegUpdateMaterialNum;
+ /* 0x14 */ u16 field_0x14;
+ /* 0x16 */ u16 field_0x16;
+ /* 0x18 */ u16 field_0x18;
+ /* 0x1A */ u16 field_0x1a;
+ /* 0x1C */ u16 field_0x1c;
+ /* 0x1E */ u16 field_0x1e;
+ /* 0x20 */ u16 field_0x20;
+ /* 0x22 */ u16 field_0x22;
+ /* 0x24 */ u16* mCRegUpdateMaterialID;
+ /* 0x28 */ JUTNameTab field_0x28;
+ /* 0x38 */ u16* mKRegUpdateMaterialID;
+ /* 0x3C */ JUTNameTab field_0x3c;
+ /* 0x4C */ void* mAnmCRegKeyTable;
+ /* 0x50 */ void* mAnmKRegKeyTable;
+ /* 0x54 */ int field_0x54;
+ /* 0x58 */ int field_0x58;
+ /* 0x5C */ int field_0x5c;
+ /* 0x60 */ int field_0x60;
+ /* 0x64 */ int field_0x64;
+ /* 0x68 */ int field_0x68;
+ /* 0x6C */ int field_0x6c;
+ /* 0x70 */ int field_0x70;
};
-class J2DAnmBase {
+class J2DAnmColor : public J2DAnmBase {
public:
- /* 80053C94 */ virtual ~J2DAnmBase();
- /* 800569B0 */ virtual void searchUpdateMaterialID(J2DScreen*);
+ /* 801842FC */ virtual ~J2DAnmColor();
+ /* 8030AF24 */ virtual void searchUpdateMaterialID(J2DScreen*);
+ /* 802EB390 */ virtual void getColor(u16, _GXColor*) const;
- s16 getFrameMax() const { return mFrameMax; }
- void setFrame(f32 frame) { mFrame = frame; }
+private:
+ /* 0x10 */ u16 field_0x10;
+ /* 0x10 */ u16 field_0x12;
+ /* 0x14 */ u16 field_0x14;
+ /* 0x16 */ u16 field_0x16;
+ /* 0x18 */ u16 mUpdateMaterialNum;
+ /* 0x1C */ u16* mUpdateMaterialID;
+ /* 0x20 */ JUTNameTab field_0x20;
+}; // Size: 0x30
+
+class J2DAnmColorKey : public J2DAnmColor {
+public:
+ /* 80239BE0 */ virtual ~J2DAnmColorKey();
+ /* 8030B200 */ virtual void getColor(u16, _GXColor*) const;
private:
- /* 0x0 */ // vtable
- /* 0x4 */ u8 field_0x4[2];
- /* 0x6 */ s16 mFrameMax;
- /* 0x8 */ f32 mFrame;
- /* 0xC */ int mKind;
+ /* 0x30 */ int field_0x30;
+ /* 0x34 */ int field_0x34;
+ /* 0x38 */ int field_0x38;
+ /* 0x3C */ int field_0x3c;
+ /* 0x40 */ int field_0x40;
};
-struct J2DAnmVtxColor {};
+class J2DAnmColorFull : public J2DAnmColor {
+public:
+ /* 8030CCF8 */ virtual ~J2DAnmColorFull();
+ /* 8030AFC8 */ virtual void getColor(u16, _GXColor*) const;
-struct J2DAnmTransform {};
+private:
+ /* 0x30 */ int field_0x30;
+ /* 0x34 */ int field_0x34;
+ /* 0x38 */ int field_0x38;
+ /* 0x3C */ int field_0x3c;
+ /* 0x40 */ int field_0x40;
+};
#endif /* J2DANIMATION_H */
diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h
index 50facee3c4..0c2f69d007 100644
--- a/include/JSystem/J2DGraph/J2DAnmLoader.h
+++ b/include/JSystem/J2DGraph/J2DAnmLoader.h
@@ -1,6 +1,68 @@
#ifndef J2DANMLOADER_H
#define J2DANMLOADER_H
+#include "JSystem/J2DGraph/J2DAnimation.h"
+#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "dolphin/types.h"
+struct J2DAnmLoaderDataBase {
+ /* 80308A6C */ static void load(void const*);
+};
+
+class J2DAnmLoader {
+public:
+ virtual void load(void const*) = 0;
+ virtual void setResource(J2DAnmBase*, void const*) = 0;
+ /* 8030A410 */ virtual ~J2DAnmLoader();
+};
+
+struct J3DAnmTransformKeyData;
+struct J3DAnmTextureSRTKeyData;
+struct J3DAnmColorKeyData;
+struct J3DAnmVtxColorKeyData;
+struct J3DAnmTevRegKeyData;
+struct J3DAnmTransformFullData;
+struct J3DAnmColorFullData;
+struct J3DAnmTexPatternFullData;
+struct J3DAnmVisibilityFullData;
+struct J3DAnmVtxColorFullData;
+
+class J2DAnmKeyLoader_v15 : public J2DAnmLoader {
+public:
+ /* 80309290 */ J2DAnmKeyLoader_v15();
+ /* 80309570 */ void readAnmTransform(J3DAnmTransformKeyData const*);
+ /* 80309598 */ void setAnmTransform(J2DAnmTransformKey*, J3DAnmTransformKeyData const*);
+ /* 80309634 */ void readAnmTextureSRT(J3DAnmTextureSRTKeyData const*);
+ /* 8030965C */ void setAnmTextureSRT(J2DAnmTextureSRTKey*, J3DAnmTextureSRTKeyData const*);
+ /* 80309848 */ void readAnmColor(J3DAnmColorKeyData const*);
+ /* 80309870 */ void setAnmColor(J2DAnmColorKey*, J3DAnmColorKeyData const*);
+ /* 8030995C */ void readAnmVtxColor(J3DAnmVtxColorKeyData const*);
+ /* 80309984 */ void setAnmVtxColor(J2DAnmVtxColorKey*, J3DAnmVtxColorKeyData const*);
+ /* 80309FDC */ void readAnmTevReg(J3DAnmTevRegKeyData const*);
+ /* 8030A004 */ void setAnmTevReg(J2DAnmTevRegKey*, J3DAnmTevRegKeyData const*);
+
+ /* 80309308 */ virtual void load(void const*);
+ /* 80309414 */ virtual void setResource(J2DAnmBase*, void const*);
+ /* 803092AC */ virtual ~J2DAnmKeyLoader_v15();
+};
+
+class J2DAnmFullLoader_v15 : public J2DAnmLoader {
+public:
+ /* 80309CE8 */ J2DAnmFullLoader_v15();
+ /* 80309D60 */ void readAnmTransform(J3DAnmTransformFullData const*);
+ /* 80309D88 */ void setAnmTransform(J2DAnmTransformFull*, J3DAnmTransformFullData const*);
+ /* 80309E1C */ void readAnmColor(J3DAnmColorFullData const*);
+ /* 80309E44 */ void setAnmColor(J2DAnmColorFull*, J3DAnmColorFullData const*);
+ /* 80309F10 */ void readAnmTexPattern(J3DAnmTexPatternFullData const*);
+ /* 80309F38 */ void setAnmTexPattern(J2DAnmTexPattern*, J3DAnmTexPatternFullData const*);
+ /* 8030A190 */ void readAnmVisibility(J3DAnmVisibilityFullData const*);
+ /* 8030A1B8 */ void setAnmVisibility(J2DAnmVisibilityFull*, J3DAnmVisibilityFullData const*);
+ /* 8030A234 */ void readAnmVtxColor(J3DAnmVtxColorFullData const*);
+ /* 8030A25C */ void setAnmVtxColor(J2DAnmVtxColorFull*, J3DAnmVtxColorFullData const*);
+
+ /* 80309A80 */ virtual void load(void const*);
+ /* 80309B8C */ virtual void setResource(J2DAnmBase*, void const*);
+ /* 80309D04 */ virtual ~J2DAnmFullLoader_v15();
+};
+
#endif /* J2DANMLOADER_H */
diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h
index 3286f66423..0333028fb5 100644
--- a/include/JSystem/J2DGraph/J2DMatBlock.h
+++ b/include/JSystem/J2DGraph/J2DMatBlock.h
@@ -1,6 +1,520 @@
#ifndef J2DMATBLOCK_H
#define J2DMATBLOCK_H
+#include "JSystem/J2DGraph/J2DTevs.h"
+#include "JSystem/JUtility/JUTResFont.h"
+#include "JSystem/JUtility/JUTTexture.h"
+#include "JSystem/JUtility/TColor.h"
#include "dolphin/types.h"
+struct J2DGXColorS10 : public GXColorS10 {
+ /* 802F1B90 */ J2DGXColorS10();
+};
+
+struct J2DTevSwapModeInfo;
+
+class J2DTevBlock {
+public:
+ /* 802F2A40 */ virtual void initialize();
+ /* 802EB1D0 */ virtual void setGX();
+ /* 802F2A44 */ virtual void loadTexture(_GXTexMapID, u32);
+ virtual void getType() = 0;
+ virtual s32 getMaxStage() = 0;
+ /* 802EB1DC */ virtual void setTexNo(u32, u16);
+ /* 802EA170 */ virtual void getTexNo(u32) const;
+ /* 802F2A48 */ virtual void setFontNo(u16);
+ /* 802EA164 */ virtual void getFontNo() const;
+ /* 802F2A4C */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802EA144 */ virtual bool getTevOrder(u32);
+ /* 802EB1D8 */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802EA13C */ virtual bool getTevColor(u32);
+ /* 802EB1D4 */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802EA15C */ virtual bool getTevKColor(u32);
+ /* 802F2A50 */ virtual void setTevKColorSel(u32, u8);
+ /* 802EA154 */ virtual bool getTevKColorSel(u32);
+ /* 802F2A54 */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802EA14C */ virtual bool getTevKAlphaSel(u32);
+ /* 802F2A58 */ virtual void setTevStageNum(u8);
+ /* 802EA17C */ virtual bool getTevStageNum() const;
+ /* 802F2A5C */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802EA134 */ virtual bool getTevStage(u32);
+ /* 802F2A60 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F2A64 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802EA12C */ virtual bool getTevSwapModeTable(u32);
+ /* 802F2A68 */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802EA184 */ virtual bool getIndTevStage(u32);
+ /* 802F2A7C */ virtual bool insertTexture(u32, ResTIMG const*);
+ /* 802F2A74 */ virtual bool insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802F2A6C */ virtual bool insertTexture(u32, JUTTexture*);
+ /* 802F2A8C */ virtual bool setTexture(u32, ResTIMG const*);
+ /* 802F2A84 */ virtual bool setTexture(u32, JUTTexture*);
+ /* 802F2A94 */ virtual bool removeTexture(u32);
+ /* 802F2AA4 */ virtual bool setFont(ResFONT*);
+ /* 802F2A9C */ virtual bool setFont(JUTFont*);
+ /* 802F2AAC */ virtual bool setPalette(u32, ResTLUT const*);
+ /* 802F2AB4 */ virtual bool prepareTexture(u8);
+ /* 802EB87C */ virtual bool getTexture(u32);
+ /* 802EB884 */ virtual bool getPalette(u32);
+ /* 802F2ABC */ virtual bool getFont();
+ /* 802F2AC4 */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F2AC8 */ virtual void setUndeleteFlag(u8);
+ /* 802F2ACC */ virtual void setFontUndeleteFlag();
+ /* 802EB184 */ virtual ~J2DTevBlock();
+};
+
+class J2DTevBlock1 : public J2DTevBlock {
+public:
+ /* 802EB88C */ J2DTevBlock1();
+
+ /* 802EBA50 */ virtual void initialize();
+ /* 802EC328 */ virtual void setGX();
+ /* 802EC570 */ virtual void loadTexture(_GXTexMapID, u32);
+ /* 802F27A0 */ virtual void getType();
+ /* 802F27AC */ virtual s32 getMaxStage();
+ /* 802F27B4 */ virtual void setTexNo(u32, u16);
+ /* 802F27C4 */ virtual void getTexNo(u32) const;
+ /* 802F27D4 */ virtual void setFontNo(u16);
+ /* 802F27DC */ virtual void getFontNo() const;
+ /* 802F27E4 */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802F2808 */ virtual void getTevOrder(u32);
+ /* 802F281C */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802F2848 */ virtual void getTevColor(u32);
+ /* 802F285C */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802F2888 */ virtual void getTevKColor(u32);
+ /* 802F289C */ virtual void setTevKColorSel(u32, u8);
+ /* 802F28A8 */ virtual void getTevKColorSel(u32);
+ /* 802F28B4 */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802F28C0 */ virtual void getTevKAlphaSel(u32);
+ /* 802F28CC */ virtual void setTevStageNum(u8);
+ /* 802F28D0 */ virtual bool getTevStageNum() const;
+ /* 802F28D8 */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802F2914 */ virtual void getTevStage(u32);
+ /* 802F2928 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F2960 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802F2970 */ virtual void getTevSwapModeTable(u32);
+ /* 802F2980 */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802F2994 */ virtual void getIndTevStage(u32);
+ /* 802F29A8 */ virtual void insertTexture(u32, ResTIMG const*);
+ /* 802EBCC0 */ virtual void insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802EBDE4 */ virtual void insertTexture(u32, JUTTexture*);
+ /* 802EBE8C */ virtual void setTexture(u32, ResTIMG const*);
+ /* 802EC01C */ virtual void setTexture(u32, JUTTexture*);
+ /* 802EC0A8 */ virtual void removeTexture(u32);
+ /* 802EC124 */ virtual void setFont(ResFONT*);
+ /* 802EC1D8 */ virtual void setFont(JUTFont*);
+ /* 802EC258 */ virtual void setPalette(u32, ResTLUT const*);
+ /* 802EBC0C */ virtual void prepareTexture(u8);
+ /* 802F29D8 */ virtual void getTexture(u32);
+ /* 802F29F8 */ virtual void getPalette(u32);
+ /* 802F2A18 */ virtual void getFont();
+ /* 802EC318 */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F2A20 */ virtual void setUndeleteFlag(u8);
+ /* 802F2A30 */ virtual void setFontUndeleteFlag();
+ /* 802EB998 */ virtual ~J2DTevBlock1();
+
+private:
+ /* 0x004 */ u16 mTexNo[1];
+ /* 0x006 */ u16 mFontNo;
+ /* 0x008 */ J2DTevOrder mTevOrder[1];
+ /* 0x00C */ J2DGXColorS10 mTevColor[4];
+ /* 0x02C */ J2DTevStage mTevStage[1];
+ /* 0x034 */ JUtility::TColor mTevKColor[4];
+ /* 0x044 */ u8 mTevKColorSel[1];
+ /* 0x045 */ u8 mTevKAlphaSel[1];
+ /* 0x046 */ J2DTevSwapModeTable mTevSwapModeTable[4];
+ /* 0x04C */ J2DIndTevStage mIndTevStage[1];
+ /* 0x050 */ JUTTexture* mTexture[1];
+ /* 0x054 */ JUTPalette* mPalette[1];
+ /* 0x058 */ JUTResFont* mFont;
+ /* 0x05C */ u8 mUndeleteFlag;
+}; // Size: 0x60
+
+class J2DTevBlock2 : public J2DTevBlock {
+public:
+ /* 802EC5B8 */ J2DTevBlock2();
+
+ /* 802EC7A0 */ virtual void initialize();
+ /* 802ED584 */ virtual void setGX();
+ /* 802ED874 */ virtual void loadTexture(_GXTexMapID, u32);
+ /* 802F24FC */ virtual void getType();
+ /* 802F2508 */ virtual s32 getMaxStage();
+ /* 802F2510 */ virtual void setTexNo(u32, u16);
+ /* 802F2520 */ virtual void getTexNo(u32) const;
+ /* 802F2530 */ virtual void setFontNo(u16);
+ /* 802F2538 */ virtual void getFontNo() const;
+ /* 802F2540 */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802F2564 */ virtual void getTevOrder(u32);
+ /* 802F2578 */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802F25A4 */ virtual void getTevColor(u32);
+ /* 802F25B8 */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802F25E4 */ virtual void getTevKColor(u32);
+ /* 802F25F8 */ virtual void setTevKColorSel(u32, u8);
+ /* 802F2604 */ virtual void getTevKColorSel(u32);
+ /* 802F2610 */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802F261C */ virtual void getTevKAlphaSel(u32);
+ /* 802F2628 */ virtual void setTevStageNum(u8);
+ /* 802F2630 */ virtual void getTevStageNum() const;
+ /* 802F2638 */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802F2674 */ virtual void getTevStage(u32);
+ /* 802F2688 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F26C0 */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802F26D0 */ virtual void getTevSwapModeTable(u32);
+ /* 802F26E0 */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802F26F4 */ virtual void getIndTevStage(u32);
+ /* 802F2708 */ virtual void insertTexture(u32, ResTIMG const*);
+ /* 802ECAE8 */ virtual void insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802ECDE8 */ virtual void insertTexture(u32, JUTTexture*);
+ /* 802ECF48 */ virtual void setTexture(u32, ResTIMG const*);
+ /* 802ED16C */ virtual void setTexture(u32, JUTTexture*);
+ /* 802ED21C */ virtual void removeTexture(u32);
+ /* 802ED2F0 */ virtual void setFont(ResFONT*);
+ /* 802ED3A4 */ virtual void setFont(JUTFont*);
+ /* 802ED424 */ virtual void setPalette(u32, ResTLUT const*);
+ /* 802ECA18 */ virtual void prepareTexture(u8);
+ /* 802F2738 */ virtual void getTexture(u32);
+ /* 802F2758 */ virtual void getPalette(u32);
+ /* 802F2778 */ virtual void getFont();
+ /* 802ED4FC */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F2780 */ virtual void setUndeleteFlag(u8);
+ /* 802F2790 */ virtual void setFontUndeleteFlag();
+ /* 802EC6C8 */ virtual ~J2DTevBlock2();
+
+private:
+ /* 0x004 */ u16 mTexNo[2];
+ /* 0x008 */ u16 mFontNo;
+ /* 0x00A */ J2DTevOrder mTevOrder[2];
+ /* 0x012 */ J2DGXColorS10 mTevColor[4];
+ /* 0x032 */ u8 mTevStageNum;
+ /* 0x033 */ J2DTevStage mTevStage[2];
+ /* 0x044 */ JUtility::TColor mTevKColor[4];
+ /* 0x054 */ u8 mTevKColorSel[2];
+ /* 0x056 */ u8 mTevKAlphaSel[2];
+ /* 0x058 */ J2DTevSwapModeTable mTevSwapModeTable[4];
+ /* 0x05C */ J2DIndTevStage mIndTevStage[2];
+ /* 0x064 */ JUTTexture* mTexture[2];
+ /* 0x06C */ JUTPalette* mPalette[2];
+ /* 0x064 */ JUTFont* mFont;
+ /* 0x078 */ u8 mUndeleteFlag;
+}; // Size: 0x7C
+
+class J2DTevBlock4 : public J2DTevBlock {
+public:
+ /* 802ED8BC */ J2DTevBlock4();
+
+ /* 802EDAC4 */ virtual void initialize();
+ /* 802EEA2C */ virtual void setGX();
+ /* 802EED1C */ virtual void loadTexture(_GXTexMapID, u32);
+ /* 802F2258 */ virtual void getType();
+ /* 802F2264 */ virtual s32 getMaxStage();
+ /* 802F226C */ virtual void setTexNo(u32, u16);
+ /* 802F227C */ virtual void getTexNo(u32) const;
+ /* 802F228C */ virtual void setFontNo(u16);
+ /* 802F2294 */ virtual void getFontNo() const;
+ /* 802F229C */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802F22C0 */ virtual void getTevOrder(u32);
+ /* 802F22D4 */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802F2300 */ virtual void getTevColor(u32);
+ /* 802F2314 */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802F2340 */ virtual void getTevKColor(u32);
+ /* 802F2354 */ virtual void setTevKColorSel(u32, u8);
+ /* 802F2360 */ virtual void getTevKColorSel(u32);
+ /* 802F236C */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802F2378 */ virtual void getTevKAlphaSel(u32);
+ /* 802F2384 */ virtual void setTevStageNum(u8);
+ /* 802F238C */ virtual void getTevStageNum() const;
+ /* 802F2394 */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802F23D0 */ virtual void getTevStage(u32);
+ /* 802F23E4 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F241C */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802F242C */ virtual void getTevSwapModeTable(u32);
+ /* 802F243C */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802F2450 */ virtual void getIndTevStage(u32);
+ /* 802F2464 */ virtual void insertTexture(u32, ResTIMG const*);
+ /* 802EDE04 */ virtual void insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802EE1D4 */ virtual void insertTexture(u32, JUTTexture*);
+ /* 802EE364 */ virtual void setTexture(u32, ResTIMG const*);
+ /* 802EE5F0 */ virtual void setTexture(u32, JUTTexture*);
+ /* 802EE6A0 */ virtual void removeTexture(u32);
+ /* 802EE798 */ virtual void setFont(ResFONT*);
+ /* 802EE84C */ virtual void setFont(JUTFont*);
+ /* 802EE8CC */ virtual void setPalette(u32, ResTLUT const*);
+ /* 802EDD34 */ virtual void prepareTexture(u8);
+ /* 802F2494 */ virtual void getTexture(u32);
+ /* 802F24B4 */ virtual void getPalette(u32);
+ /* 802F24D4 */ virtual void getFont();
+ /* 802EE9A4 */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F24DC */ virtual void setUndeleteFlag(u8);
+ /* 802F24EC */ virtual void setFontUndeleteFlag();
+ /* 802ED9E4 */ virtual ~J2DTevBlock4();
+
+private:
+ /* 0x004 */ u16 mTexNo[4];
+ /* 0x00C */ u16 mFontNo;
+ /* 0x00E */ J2DTevOrder mTevOrder[4];
+ /* 0x01E */ J2DGXColorS10 mTevColor[4];
+ /* 0x03E */ u8 mTevStageNum;
+ /* 0x03F */ J2DTevStage mTevStage[4];
+ /* 0x060 */ JUtility::TColor mTevKColor[4];
+ /* 0x070 */ u8 mTevKColorSel[4];
+ /* 0x074 */ u8 mTevKAlphaSel[4];
+ /* 0x078 */ J2DTevSwapModeTable mTevSwapModeTable[4];
+ /* 0x07C */ J2DIndTevStage mIndTevStage[4];
+ /* 0x08C */ JUTTexture* mTexture[4];
+ /* 0x09C */ JUTPalette* mPalette[4];
+ /* 0x0AC */ JUTFont* mFont;
+ /* 0x0B0 */ u8 mUndeleteFlag;
+}; // Size: 0xB4
+
+class J2DTevBlock8 : public J2DTevBlock {
+public:
+ /* 802EED64 */ J2DTevBlock8();
+
+ /* 802EEF6C */ virtual void initialize();
+ /* 802EFEAC */ virtual void setGX();
+ /* 802F019C */ virtual void loadTexture(_GXTexMapID, u32);
+ /* 802F1FB8 */ virtual void getType();
+ /* 802F1FC4 */ virtual s32 getMaxStage();
+ /* 802F1FCC */ virtual void setTexNo(u32, u16);
+ /* 802F1FDC */ virtual void getTexNo(u32) const;
+ /* 802F1FEC */ virtual void setFontNo(u16);
+ /* 802F1FF4 */ virtual void getFontNo() const;
+ /* 802F1FFC */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802F2020 */ virtual void getTevOrder(u32);
+ /* 802F2034 */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802F2060 */ virtual void getTevColor(u32);
+ /* 802F2074 */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802F20A0 */ virtual void getTevKColor(u32);
+ /* 802F20B4 */ virtual void setTevKColorSel(u32, u8);
+ /* 802F20C0 */ virtual void getTevKColorSel(u32);
+ /* 802F20CC */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802F20D8 */ virtual void getTevKAlphaSel(u32);
+ /* 802F20E4 */ virtual void setTevStageNum(u8);
+ /* 802F20EC */ virtual void getTevStageNum() const;
+ /* 802F20F4 */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802F2130 */ virtual void getTevStage(u32);
+ /* 802F2144 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F217C */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802F218C */ virtual void getTevSwapModeTable(u32);
+ /* 802F219C */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802F21B0 */ virtual void getIndTevStage(u32);
+ /* 802F21C4 */ virtual void insertTexture(u32, ResTIMG const*);
+ /* 802EF2B0 */ virtual void insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802EF67C */ virtual void insertTexture(u32, JUTTexture*);
+ /* 802EF80C */ virtual void setTexture(u32, ResTIMG const*);
+ /* 802EFA98 */ virtual void setTexture(u32, JUTTexture*);
+ /* 802EFB48 */ virtual void removeTexture(u32);
+ /* 802EFC40 */ virtual void setFont(ResFONT*);
+ /* 802EFCEC */ virtual void setFont(JUTFont*);
+ /* 802EFD68 */ virtual void setPalette(u32, ResTLUT const*);
+ /* 802EF1E0 */ virtual void prepareTexture(u8);
+ /* 802F21F4 */ virtual void getTexture(u32);
+ /* 802F2214 */ virtual void getPalette(u32);
+ /* 802F2234 */ virtual void getFont();
+ /* 802EFE40 */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F223C */ virtual void setUndeleteFlag(u8);
+ /* 802F224C */ virtual void setFontUndeleteFlag();
+ /* 802EEE8C */ virtual ~J2DTevBlock8();
+
+private:
+ /* 0x004 */ u16 mTexNo[8];
+ /* 0x014 */ u16 mFontNo;
+ /* 0x016 */ J2DTevOrder mTevOrder[8];
+ /* 0x036 */ J2DGXColorS10 mTevColor[4];
+ /* 0x056 */ u8 mTevStageNum;
+ /* 0x057 */ J2DTevStage mTevStage[8];
+ /* 0x098 */ JUtility::TColor mTevKColor[4];
+ /* 0x0A8 */ u8 mTevKColorSel[8];
+ /* 0x0B0 */ u8 mTevKAlphaSel[8];
+ /* 0x0B8 */ J2DTevSwapModeTable mTevSwapModeTable[4];
+ /* 0x0BC */ J2DIndTevStage mIndTevStage[8];
+ /* 0x0DC */ JUTTexture* mTexture[8];
+ /* 0x0FC */ JUTPalette* mPalette[8];
+ /* 0x11C */ JUTFont* mFont;
+ /* 0x120 */ u8 mUndeleteFlag;
+ /* 0x121 */ bool mFontUndeleteFlag;
+};
+
+class J2DTevBlock16 : public J2DTevBlock {
+public:
+ /* 802F01E4 */ J2DTevBlock16();
+
+ /* 802F03EC */ virtual void initialize();
+ /* 802F132C */ virtual void setGX();
+ /* 802F161C */ virtual void loadTexture(_GXTexMapID, u32);
+ /* 802F1D18 */ virtual void getType();
+ /* 802F1D24 */ virtual s32 getMaxStage();
+ /* 802F1D2C */ virtual void setTexNo(u32, u16);
+ /* 802F1D3C */ virtual void getTexNo(u32) const;
+ /* 802F1D4C */ virtual void setFontNo(u16);
+ /* 802F1D54 */ virtual void getFontNo() const;
+ /* 802F1D5C */ virtual void setTevOrder(u32, J2DTevOrder);
+ /* 802F1D80 */ virtual void getTevOrder(u32);
+ /* 802F1D94 */ virtual void setTevColor(u32, J2DGXColorS10);
+ /* 802F1DC0 */ virtual void getTevColor(u32);
+ /* 802F1DD4 */ virtual void setTevKColor(u32, JUtility::TColor);
+ /* 802F1E00 */ virtual void getTevKColor(u32);
+ /* 802F1E14 */ virtual void setTevKColorSel(u32, u8);
+ /* 802F1E20 */ virtual void getTevKColorSel(u32);
+ /* 802F1E2C */ virtual void setTevKAlphaSel(u32, u8);
+ /* 802F1E38 */ virtual void getTevKAlphaSel(u32);
+ /* 802F1E44 */ virtual void setTevStageNum(u8);
+ /* 802F1E4C */ virtual void getTevStageNum() const;
+ /* 802F1E54 */ virtual void setTevStage(u32, J2DTevStage);
+ /* 802F1E90 */ virtual void getTevStage(u32);
+ /* 802F1EA4 */ virtual void setTevSwapModeInfo(u32, J2DTevSwapModeInfo);
+ /* 802F1EDC */ virtual void setTevSwapModeTable(u32, J2DTevSwapModeTable);
+ /* 802F1EEC */ virtual void getTevSwapModeTable(u32);
+ /* 802F1EFC */ virtual void setIndTevStage(u32, J2DIndTevStage);
+ /* 802F1F10 */ virtual void getIndTevStage(u32);
+ /* 802F1F24 */ virtual void insertTexture(u32, ResTIMG const*);
+ /* 802F0730 */ virtual void insertTexture(u32, ResTIMG const*, JUTPalette*);
+ /* 802F0AFC */ virtual void insertTexture(u32, JUTTexture*);
+ /* 802F0C8C */ virtual void setTexture(u32, ResTIMG const*);
+ /* 802F0F18 */ virtual void setTexture(u32, JUTTexture*);
+ /* 802F0FC8 */ virtual void removeTexture(u32);
+ /* 802F10C0 */ virtual void setFont(ResFONT*);
+ /* 802F116C */ virtual void setFont(JUTFont*);
+ /* 802F11E8 */ virtual void setPalette(u32, ResTLUT const*);
+ /* 802F0660 */ virtual void prepareTexture(u8);
+ /* 802F1F54 */ virtual void getTexture(u32);
+ /* 802F1F74 */ virtual void getPalette(u32);
+ /* 802F1F94 */ virtual void getFont();
+ /* 802F12C0 */ virtual void shiftDeleteFlag(u8, bool);
+ /* 802F1F9C */ virtual void setUndeleteFlag(u8);
+ /* 802F1FAC */ virtual void setFontUndeleteFlag();
+ /* 802F030C */ virtual ~J2DTevBlock16();
+
+private:
+ /* 0x004 */ u16 mTexNo[8];
+ /* 0x014 */ u16 mFontNo;
+ /* 0x016 */ J2DTevOrder mTevOrder[16];
+ /* 0x056 */ J2DGXColorS10 mTevColor[4];
+ /* 0x076 */ u8 mTevStageNum;
+ /* 0x077 */ J2DTevStage mTevStage[16];
+ /* 0x0F8 */ JUtility::TColor mTevKColor[4];
+ /* 0x108 */ u8 mTevKColorSel[16];
+ /* 0x118 */ u8 mTevKAlphaSel[16];
+ /* 0x128 */ J2DTevSwapModeTable mTevSwapModeTable[4];
+ /* 0x12C */ J2DIndTevStage mIndTevStage[16];
+ /* 0x16C */ JUTTexture* mTexture[16];
+ /* 0x18C */ JUTPalette* mPalette[16];
+ /* 0x1AC */ JUTFont* mFont;
+ /* 0x1B0 */ u8 mUndeleteFlag;
+ /* 0x1B1 */ bool mFontUndeleteFlag;
+}; // Size: 0x1B4
+
+struct J2DAlphaComp {
+ /* 0x0 */ u8 field_0x0;
+ /* 0x1 */ u8 field_0x1;
+ /* 0x2 */ u8 mRef0;
+ /* 0x3 */ u8 mRef1;
+};
+
+struct J2DBlendInfo {
+ /* 0x0 */ u8 mType;
+ /* 0x1 */ u8 mSrcFactor;
+ /* 0x2 */ u8 mDstFactor;
+ /* 0x3 */ u8 mOp;
+};
+
+struct J2DBlend {
+ /* 0x0 */ J2DBlendInfo mBlendInfo;
+};
+
+class J2DPEBlock {
+public:
+ /* 802F17FC */ void initialize();
+ /* 802F1840 */ void setGX();
+
+private:
+ /* 0x0 */ J2DAlphaComp mAlphaComp;
+ /* 0x4 */ J2DBlend mBlend;
+ /* 0x8 */ u8 mDither;
+};
+
+class J2DIndBlock {
+public:
+ /* 802EB24C */ virtual void initialize();
+ /* 802EB1CC */ virtual void setGX();
+ virtual void getType() = 0;
+ /* 802EB250 */ virtual void setIndTexStageNum(u8);
+ /* 802EA1A4 */ virtual bool getIndTexStageNum() const;
+ /* 802EB254 */ virtual void setIndTexOrder(u32, J2DIndTexOrder);
+ /* 802EA19C */ virtual bool getIndTexOrder(u32);
+ /* 802EB258 */ virtual void setIndTexMtx(u32, J2DIndTexMtx);
+ /* 802EA194 */ virtual bool getIndTexMtx(u32);
+ /* 802EB25C */ virtual void setIndTexCoordScale(u32, J2DIndTexCoordScale);
+ /* 802EA18C */ virtual bool getIndTexCoordScale(u32);
+ /* 802EB13C */ virtual ~J2DIndBlock();
+};
+
+class J2DIndBlockFull : public J2DIndBlock {
+public:
+ /* 802F1664 */ virtual void initialize();
+ /* 802F1730 */ virtual void setGX();
+ /* 802F1B94 */ virtual void getType();
+ /* 802F1BA0 */ virtual void setIndTexStageNum(u8);
+ /* 802F1BA8 */ virtual void getIndTexStageNum() const;
+ /* 802F1BB0 */ virtual void setIndTexOrder(u32, J2DIndTexOrder);
+ /* 802F1BCC */ virtual void getIndTexOrder(u32);
+ /* 802F1BE0 */ virtual void setIndTexMtx(u32, J2DIndTexMtx);
+ /* 802F1C38 */ virtual void getIndTexMtx(u32);
+ /* 802F1C4C */ virtual void setIndTexCoordScale(u32, J2DIndTexCoordScale);
+ /* 802F1C68 */ virtual void getIndTexCoordScale(u32);
+ /* 802F1C7C */ virtual ~J2DIndBlockFull();
+
+private:
+ /* 0x04 */ u8 mIndTexStageNum;
+ /* 0x05 */ J2DIndTexOrder mIndTexOrder[4];
+ /* 0x10 */ J2DIndTexMtx mIndTexMtx[3];
+ /* 0x64 */ J2DIndTexCoordScale mTexCoordScale[4];
+};
+
+class J2DIndBlockNull : public J2DIndBlock {
+ /* 802EB1E0 */ virtual void setGX();
+ /* 802EB1E4 */ virtual void getType();
+ /* 802EB1F0 */ virtual ~J2DIndBlockNull();
+};
+
+class J2DTexGenBlock {
+private:
+ /* 0x00 */ u32 mTexGenNum;
+ /* 0x04 */ J2DTexCoord mTexGenCoord[8];
+ /* 0x24 */ J2DTexMtx* mTexMtx[8];
+
+public:
+ /* 802EB510 */ void initialize();
+ /* 802EB570 */ void setGX();
+ /* 802EB6A4 */ void setTexMtx(u32, J2DTexMtx&);
+ /* 802EB7E0 */ void getTexMtx(u32, J2DTexMtx&);
+
+ /* 802EB620 */ virtual ~J2DTexGenBlock();
+}; // Size: 0x48
+
+struct J2DColorChanInfo {
+ /* 0x0 */ u16 field_0x0;
+};
+
+class J2DColorChan {
+public:
+ /* 802EB280 */ J2DColorChan();
+
+private:
+ /* 0x0 */ J2DColorChanInfo mColorChanInfo;
+};
+
+class J2DColorBlock {
+private:
+ /* 0x00 */ JUtility::TColor mMatColor[2];
+ /* 0x08 */ u8 mColorChanNum;
+ /* 0x0A */ J2DColorChan mColorChan[4];
+ /* 0x12 */ u8 mCullMode;
+
+public:
+ /* 802EB394 */ void initialize();
+ /* 802EB424 */ void setGX();
+
+ /* 802EB0F4 */ virtual ~J2DColorBlock();
+};
+
#endif /* J2DMATBLOCK_H */
diff --git a/include/JSystem/J2DGraph/J2DMaterial.h b/include/JSystem/J2DGraph/J2DMaterial.h
index 065484c208..baaee0fd61 100644
--- a/include/JSystem/J2DGraph/J2DMaterial.h
+++ b/include/JSystem/J2DGraph/J2DMaterial.h
@@ -2,15 +2,27 @@
#define J2DMATERIAL_H
#include "JSystem/J2DGraph/J2DAnimation.h"
+#include "JSystem/J2DGraph/J2DMatBlock.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
-struct J2DMaterial {
+class J2DMaterial {
+public:
struct J2DMaterialAnmPointer {
/* 802EA79C */ J2DMaterialAnmPointer();
- };
+
+ /* 0x00 */ int field_0x0;
+ /* 0x04 */ int field_0x4;
+ /* 0x08 */ int field_0x8;
+ /* 0x0C */ int field_0xc;
+ /* 0x10 */ u16 field_0x10;
+ /* 0x12 */ u16 field_0x12[8];
+ /* 0x22 */ u16 field_0x22[8];
+ /* 0x32 */ u16 field_0x32[4];
+ /* 0x3A */ u16 field_0x3a[4];
+ }; // Size: 0x44
/* 802EA1AC */ J2DMaterial();
- /* 802EA2CC */ ~J2DMaterial();
/* 802EA38C */ void setGX();
/* 802EA410 */ void createTevBlock(int, bool);
/* 802EA5C4 */ void createIndBlock(int, bool);
@@ -20,6 +32,21 @@ struct J2DMaterial {
/* 802EAB0C */ void setAnimation(J2DAnmTevRegKey*);
/* 802EA89C */ void setAnimation(J2DAnmColor*);
/* 802EAC78 */ void animation();
+
+ /* 802EA2CC */ virtual ~J2DMaterial();
+
+private:
+ /* 0x04 */ int field_0x4;
+ /* 0x08 */ int field_0x8;
+ /* 0x0C */ u16 mIndex;
+ /* 0x0E */ bool mVisible;
+ /* 0x0F */ u8 mMaterialAlphaCalc;
+ /* 0x10 */ J2DColorBlock mColorBlock;
+ /* 0x28 */ J2DTexGenBlock mTexGenBlock;
+ /* 0x70 */ J2DTevBlock* mTevBlock;
+ /* 0x74 */ J2DIndBlock* mIndBlock;
+ /* 0x78 */ J2DPEBlock mPEBlock;
+ /* 0x84 */ J2DMaterialAnmPointer* mAnmPointer;
};
#endif /* J2DMATERIAL_H */
diff --git a/include/JSystem/J2DGraph/J2DMaterialFactory.h b/include/JSystem/J2DGraph/J2DMaterialFactory.h
index 81d080a0f9..e66d8f9bdd 100644
--- a/include/JSystem/J2DGraph/J2DMaterialFactory.h
+++ b/include/JSystem/J2DGraph/J2DMaterialFactory.h
@@ -1,6 +1,72 @@
#ifndef J2DMATERIALFACTORY_H
#define J2DMATERIALFACTORY_H
+#include "JSystem/J2DGraph/J2DManage.h"
+#include "JSystem/J2DGraph/J2DMaterial.h"
+#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"
+struct J2DMaterialBlock {};
+
+struct J2DMaterialInitData;
+struct J2DIndInitData;
+struct J2DTevSwapModeTableInfo;
+struct J2DAlphaCompInfo;
+
+class J2DMaterialFactory {
+public:
+ /* 802F2AD0 */ J2DMaterialFactory(J2DMaterialBlock const&);
+ /* 802F2C94 */ void countStages(int) const;
+ /* 802F2D1C */ void create(J2DMaterial*, int, u32, J2DResReference*, J2DResReference*,
+ JKRArchive*) const;
+ /* 802F362C */ void newMatColor(int, int) const;
+ /* 802F36CC */ void newColorChanNum(int) const;
+ /* 802F3704 */ void newColorChan(int, int) const;
+ /* 802F3758 */ void newTexGenNum(int) const;
+ /* 802F3790 */ void newTexCoord(int, int) const;
+ /* 802F3804 */ void newTexMtx(int, int) const;
+ /* 802F38E0 */ void newCullMode(int) const;
+ /* 802F3920 */ void newTexNo(int, int) const;
+ /* 802F3968 */ void newFontNo(int) const;
+ /* 802F39A8 */ void newTevOrder(int, int) const;
+ /* 802F3A1C */ void newTevColor(int, int) const;
+ /* 802F3AB4 */ void newTevKColor(int, int) const;
+ /* 802F3B54 */ void newTevStageNum(int) const;
+ /* 802F3B8C */ void newTevStage(int, int) const;
+ /* 802F3BEC */ void newTevSwapModeTable(int, int) const;
+ /* 802F3C88 */ void newIndTexStageNum(int) const;
+ /* 802F3CB8 */ void newIndTexOrder(int, int) const;
+ /* 802F3D20 */ void newIndTexMtx(int, int) const;
+ /* 802F3E24 */ void newIndTevStage(int, int) const;
+ /* 802F3F78 */ void newIndTexCoordScale(int, int) const;
+ /* 802F3FE0 */ void newAlphaComp(int) const;
+ /* 802F405C */ void newBlend(int) const;
+ /* 802F40D8 */ void newDither(int) const;
+
+private:
+ /* 0x00 */ int field_0x0;
+ /* 0x04 */ J2DMaterialInitData* field_0x4;
+ /* 0x08 */ u16* field_0x8;
+ /* 0x0C */ J2DIndInitData* field_0xc;
+ /* 0x10 */ GXColor* field_0x10;
+ /* 0x14 */ u8* field_0x14;
+ /* 0x18 */ J2DColorChanInfo* field_0x18;
+ /* 0x1C */ u8* field_0x1c;
+ /* 0x20 */ J2DTexCoordInfo* field_0x20;
+ /* 0x24 */ J2DTexMtxInfo* field_0x24;
+ /* 0x28 */ u16* field_0x28;
+ /* 0x2C */ u16* field_0x2c;
+ /* 0x30 */ _GXCullMode* field_0x30;
+ /* 0x34 */ J2DTevOrderInfo* field_0x34;
+ /* 0x38 */ GXColorS10* field_0x38;
+ /* 0x3C */ GXColor* field_0x3c;
+ /* 0x40 */ u8* field_0x40;
+ /* 0x44 */ J2DTevStageInfo* field_0x44;
+ /* 0x48 */ J2DTevSwapModeInfo* field_0x48;
+ /* 0x4C */ J2DTevSwapModeTableInfo* field_0x4c;
+ /* 0x50 */ J2DAlphaCompInfo* field_0x50;
+ /* 0x54 */ J2DBlendInfo* field_0x54;
+ /* 0x58 */ u8* field_0x58;
+};
+
#endif /* J2DMATERIALFACTORY_H */
diff --git a/include/JSystem/J2DGraph/J2DPictureEx.h b/include/JSystem/J2DGraph/J2DPictureEx.h
index 00284b8045..3b83093015 100644
--- a/include/JSystem/J2DGraph/J2DPictureEx.h
+++ b/include/JSystem/J2DGraph/J2DPictureEx.h
@@ -1,6 +1,102 @@
#ifndef J2DPICTUREEX_H
#define J2DPICTUREEX_H
+#include "JSystem/J2DGraph/J2DMaterial.h"
+#include "JSystem/J2DGraph/J2DPicture.h"
#include "dolphin/types.h"
+class J2DPictureEx : public J2DPicture {
+public:
+ enum stage_enum {};
+
+ /* 803036EC */ J2DPictureEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*);
+ /* 803040E4 */ void insertCommon(u8, f32);
+ /* 8030437C */ void isInsert(u8) const;
+ /* 80304728 */ void isRemove(u8) const;
+ /* 803052AC */ void setTevOrder(u8, u8, bool);
+ /* 803053E0 */ void setTevStage(u8, u8, bool);
+ /* 80305688 */ void setStage(J2DTevStage*, J2DPictureEx::stage_enum);
+ /* 80305928 */ void setTevKColor(u8);
+ /* 80305C70 */ void setTevKColorSel(u8);
+ /* 80305D18 */ void setTevKAlphaSel(u8);
+ /* 80305DC0 */ void shiftSetBlendRatio(u8, f32, bool, bool);
+ /* 80306664 */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const;
+ /* 80306824 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const;
+
+ /* 8030393C */ virtual ~J2DPictureEx();
+ /* 80307168 */ virtual void setCullBack(bool);
+ /* 803069D8 */ virtual void setCullBack(_GXCullMode);
+ /* 803069B8 */ virtual void setAlpha(u8);
+ /* 80303AB4 */ virtual void drawSelf(f32, f32, f32 (*)[3][4]);
+ /* 80306A24 */ virtual void isUsed(ResTIMG const*);
+ /* 803071A4 */ virtual void isUsed(ResFONT const*);
+ /* 80306A0C */ virtual void rewriteAlpha();
+ /* 803071C4 */ virtual void setAnimation(J2DAnmBase*);
+ /* 80256064 */ virtual void setAnimation(J2DAnmTransform*);
+ /* 80306AC4 */ virtual void setAnimation(J2DAnmColor*);
+ /* 80306B1C */ virtual void setAnimation(J2DAnmTexPattern*);
+ /* 80306AF0 */ virtual void setAnimation(J2DAnmTextureSRTKey*);
+ /* 80306B48 */ virtual void setAnimation(J2DAnmTevRegKey*);
+ /* 80306B74 */ virtual void setAnimation(J2DAnmVisibilityFull*);
+ /* 80306B7C */ virtual void setAnimation(J2DAnmVtxColor*);
+ /* 80306C70 */ virtual void animationPane(J2DAnmTransform const*);
+ /* 80303640 */ virtual void initiate(ResTIMG const*, ResTLUT const*);
+ /* 803039CC */ virtual void prepareTexture(u8);
+ /* 80306ED4 */ virtual void append(ResTIMG const*, f32);
+ /* 80303E5C */ virtual void append(ResTIMG const*, JUTPalette*, f32);
+ /* 80306F04 */ virtual void append(char const*, f32);
+ /* 80303EA4 */ virtual void append(char const*, JUTPalette*, f32);
+ /* 80303EEC */ virtual void append(JUTTexture*, f32);
+ /* 80306FF4 */ virtual void prepend(ResTIMG const*, f32);
+ /* 80306FC4 */ virtual void prepend(ResTIMG const*, JUTPalette*, f32);
+ /* 80306F94 */ virtual void prepend(char const*, f32);
+ /* 80306F64 */ virtual void prepend(char const*, JUTPalette*, f32);
+ /* 80306F34 */ virtual void prepend(JUTTexture*, f32);
+ /* 80307058 */ virtual void insert(ResTIMG const*, u8, f32);
+ /* 80303F34 */ virtual void insert(ResTIMG const*, JUTPalette*, u8, f32);
+ /* 80307024 */ virtual void insert(char const*, u8, f32);
+ /* 80303FD8 */ virtual void insert(char const*, JUTPalette*, u8, f32);
+ /* 80304048 */ virtual void insert(JUTTexture*, u8, f32);
+ /* 8030446C */ virtual void remove(u8);
+ /* 80304608 */ virtual void remove();
+ /* 8030466C */ virtual void remove(JUTTexture*);
+ /* 8030708C */ virtual void draw(f32, f32, bool, bool, bool);
+ /* 8030477C */ virtual void draw(f32, f32, u8, bool, bool, bool);
+ /* 80304890 */ virtual void draw(f32, f32, f32, f32, bool, bool, bool);
+ /* 80304D88 */ virtual void drawOut(f32, f32, f32, f32, f32, f32);
+ /* 803070D0 */ virtual void drawOut(f32, f32, f32, f32, f32, f32, f32, f32);
+ /* 80304EF0 */ virtual void drawOut(JGeometry::TBox2<f32> const&, JGeometry::TBox2<f32> const&);
+ /* 80305264 */ virtual void load(_GXTexMapID, u8);
+ /* 80307134 */ virtual void load(u8);
+ /* 80305ED4 */ virtual void setBlendColorRatio(f32, f32);
+ /* 80305F34 */ virtual void setBlendAlphaRatio(f32, f32);
+ /* 80305F94 */ virtual void changeTexture(ResTIMG const*, u8);
+ /* 803060DC */ virtual void changeTexture(char const*, u8);
+ /* 80306134 */ virtual void changeTexture(ResTIMG const*, u8, JUTPalette*);
+ /* 80306298 */ virtual void changeTexture(char const*, u8, JUTPalette*);
+ /* 803062F8 */ virtual void getTexture(u8) const;
+ /* 80306350 */ virtual void getTextureCount() const;
+ /* 80306370 */ virtual void setBlack(JUtility::TColor);
+ /* 803063F8 */ virtual void setWhite(JUtility::TColor);
+ /* 80306480 */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
+ /* 803068F8 */ virtual void getBlack() const;
+ /* 80306958 */ virtual void getWhite() const;
+ /* 80256034 */ virtual void getMaterial() const;
+ /* 80303B80 */ virtual void drawFullSet(f32, f32, f32, f32, f32 (*)[3][4]);
+ /* 80303BDC */ virtual void drawTexCoord(f32, f32, f32, f32, s16, s16, s16, s16, s16, s16, s16,
+ s16, f32 (*)[3][4]);
+ /* 80306DC8 */ virtual void getUsableTlut(u8);
+
+private:
+ /* 0x150 */ J2DMaterial* mMaterial;
+ /* 0x154 */ u16 field_0x154;
+ /* 0x156 */ u16 field_0x156;
+ /* 0x158 */ u16 field_0x158[4];
+ /* 0x160 */ f32 field_0x160[6]; // related to blend color ratio
+ /* 0x178 */ f32 field_0x178[6]; // related to blend alpha ratio
+ /* 0x190 */ u8 field_0x190;
+ /* 0x194 */ int field_0x194;
+ /* 0x198 */ int field_0x198;
+};
+
#endif /* J2DPICTUREEX_H */
diff --git a/include/JSystem/J2DGraph/J2DPrint.h b/include/JSystem/J2DGraph/J2DPrint.h
index b4b219dadf..7d92ef4cae 100644
--- a/include/JSystem/J2DGraph/J2DPrint.h
+++ b/include/JSystem/J2DGraph/J2DPrint.h
@@ -1,6 +1,68 @@
#ifndef J2DPRINT_H
#define J2DPRINT_H
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/JUtility/TColor.h"
+#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h"
#include "dolphin/types.h"
+class J2DPrint {
+public:
+ struct TSize {
+ /* 0x0 */ f32 field_0x0;
+ /* 0x4 */ f32 field_0x4;
+ };
+
+ /* 802F4394 */ J2DPrint(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor,
+ JUtility::TColor, JUtility::TColor);
+ /* 802F4658 */ static u8* setBuffer(size_t);
+ /* 802F46C4 */ void setFontSize();
+ /* 802F475C */ void locate(f32, f32);
+ /* 802F4778 */ void print(f32, f32, u8, char const*, ...);
+ /* 802F4828 */ void printReturn(char const*, f32, f32, J2DTextBoxHBinding, J2DTextBoxVBinding,
+ f32, f32, u8);
+ /* 802F4B4C */ void parse(u8 const*, int, int, u16*, J2DPrint::TSize&, u8, bool);
+ /* 802F52E8 */ void doCtrlCode(int);
+ /* 802F5410 */ void doEscapeCode(u8 const**, u8);
+ /* 802F594C */ void initchar();
+ /* 802F59C0 */ void getNumberS32(u8 const**, s32, s32, int);
+ /* 802F5AC4 */ void getNumberF32(u8 const**, f32, f32, int);
+
+ /* 802F4420 */ virtual ~J2DPrint();
+
+ static const u8* mStrBuff;
+ static size_t mStrBuffSize;
+
+private:
+ /* 802F4468 */ void private_initiate(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor,
+ JUtility::TColor, JUtility::TColor, bool);
+
+ /* 0x04 */ JUTFont* mFont;
+ /* 0x08 */ JUtility::TColor field_0x8;
+ /* 0x0C */ JUtility::TColor field_0xc;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1c;
+ /* 0x20 */ s16 field_0x20;
+ /* 0x22 */ u8 field_0x22;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2c;
+ /* 0x30 */ f32 mCursorV;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ JUtility::TColor field_0x38;
+ /* 0x3C */ JUtility::TColor field_0x3c;
+ /* 0x40 */ JUtility::TColor mCharColor;
+ /* 0x44 */ JUtility::TColor mGradColor;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4c;
+ /* 0x50 */ f32 mFontSizeX;
+ /* 0x54 */ f32 mFontSizeY;
+ /* 0x58 */ s16 field_0x58;
+ /* 0x5A */ u8 field_0x5a;
+}; // Size: 0x5C
+
+f32 J2DPrint_print_alpha_va(J2DPrint*, u8, const char*, va_list);
+
#endif /* J2DPRINT_H */
diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h
index aa1f85cb8f..1019ffcb7e 100644
--- a/include/JSystem/J2DGraph/J2DTevs.h
+++ b/include/JSystem/J2DGraph/J2DTevs.h
@@ -1,6 +1,169 @@
#ifndef J2DTEVS_H
#define J2DTEVS_H
+#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
+struct J2DTextureSRTInfo {
+ /* 0x00 */ f32 field_0x0;
+ /* 0x04 */ f32 field_0x4;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 field_0xc;
+ /* 0x10 */ f32 field_0x10;
+}; // Size: 0x14
+
+struct J2DTexMtxInfo {
+ /* 0x00 */ u8 field_0x0;
+ /* 0x01 */ u8 field_0x1;
+ /* 0x02 */ u8 field_0x2; // padding ?
+ /* 0x03 */ u8 field_0x3; // padding ?
+ /* 0x04 */ Vec field_0x4;
+ /* 0x10 */ J2DTextureSRTInfo mTexSRTInfo;
+}; // Size: 0x24
+
+class J2DTexMtx {
+public:
+ /* 802E9C90 */ void load(u32);
+ /* 802E9CC4 */ void calc();
+ /* 802E9D2C */ void getTextureMtx(J2DTextureSRTInfo const&, Vec, f32 (*)[4]);
+ /* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, f32 (*)[4]);
+
+private:
+ /* 0x00 */ J2DTexMtxInfo mTexMtxInfo;
+ /* 0x24 */ Mtx mTexMtx;
+};
+
+struct J2DIndTexOrderInfo {
+ /* 0x0 */ u8 field_0x0;
+ /* 0x1 */ u8 field_0x1;
+};
+
+class J2DIndTexOrder {
+public:
+ /* 802EB378 */ J2DIndTexOrder();
+ /* 802EA0FC */ void load(u8);
+
+private:
+ /* 0x0 */ J2DIndTexOrderInfo mIndTexOrderInfo;
+};
+
+struct J2DIndTexMtxInfo {
+ /* 0x00 */ Mtx23 mMtx;
+ /* 0x18 */ u8 field_0x18;
+};
+
+class J2DIndTexMtx {
+public:
+ /* 802EB2E4 */ ~J2DIndTexMtx();
+ /* 802EB320 */ J2DIndTexMtx();
+ /* 802EA098 */ void load(u8);
+ /* 802E9C90 */ void load(u32);
+ /* 802E9CC4 */ void calc();
+
+private:
+ /* 0x0 */ J2DIndTexMtxInfo mIndTexMtxInfo;
+}; // Size: 0x1C
+
+struct J2DIndTexCoordScaleInfo {
+ /* 0x0 */ u8 field_0x0;
+ /* 0x0 */ u8 field_0x1;
+};
+
+class J2DIndTexCoordScale {
+public:
+ /* 802EB290 */ ~J2DIndTexCoordScale();
+ /* 802EB2CC */ J2DIndTexCoordScale();
+ /* 802EA0CC */ void load(u8);
+
+private:
+ /* 0x0 */ J2DIndTexCoordScaleInfo mIndTexCoordScaleInfo;
+}; // Size: 0x2
+
+class J2DIndTevStage {
+public:
+ /* 802EA044 */ void load(u8);
+ /* 802F18A0 */ J2DIndTevStage();
+
+private:
+ /* 0x0 */ u32 mFlags;
+};
+
+struct J2DTexCoordInfo {
+ /* 0x0 */ u8 mTexGenType;
+ /* 0x1 */ u8 mTexGenSrc;
+ /* 0x2 */ u8 mTexGenMtx;
+ u8 padding; // ?
+};
+
+class J2DTexCoord {
+public:
+ /* 802EB260 */ J2DTexCoord();
+
+private:
+ /* 0x0 */ J2DTexCoordInfo mTexCoordInfo;
+};
+
+struct J2DTevOrderInfo {
+ /* 0x0 */ u8 mTexCoord;
+ /* 0x1 */ u8 mTexMap;
+ /* 0x2 */ u8 mColor;
+};
+
+class J2DTevOrder {
+public:
+ /* 802F1B70 */ J2DTevOrder();
+
+private:
+ /* 0x0 */ J2DTevOrderInfo mTevOrderInfo;
+};
+
+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;
+};
+
+class J2DTevStage {
+public:
+ /* 802F4110 */ J2DTevStage(J2DTevStageInfo const&);
+ /* 802F1940 */ J2DTevStage();
+ /* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&);
+
+private:
+ /* 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;
+};
+
+struct J2DTevSwapModeInfo {};
+
+class J2DTevSwapModeTable {
+public:
+ /* 802F1934 */ J2DTevSwapModeTable();
+
+private:
+ /* 0x0 */ u8 field_0x0;
+};
+
#endif /* J2DTEVS_H */
diff --git a/include/JSystem/J2DGraph/J2DTextBoxEx.h b/include/JSystem/J2DGraph/J2DTextBoxEx.h
index c958db6518..38e8ff0746 100644
--- a/include/JSystem/J2DGraph/J2DTextBoxEx.h
+++ b/include/JSystem/J2DGraph/J2DTextBoxEx.h
@@ -1,6 +1,56 @@
#ifndef J2DTEXTBOXEX_H
#define J2DTEXTBOXEX_H
+#include "JSystem/J2DGraph/J2DMaterial.h"
+#include "JSystem/J2DGraph/J2DPrint.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
#include "dolphin/types.h"
+class J2DTextBoxEx : public J2DTextBox {
+public:
+ enum stage_enum {};
+
+ /* 803071E4 */ J2DTextBoxEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*);
+ /* 80307E0C */ void setTevOrder(bool);
+ /* 80307EF0 */ void setTevStage(bool);
+ /* 80307F94 */ void setStage(J2DTevStage*, J2DTextBoxEx::stage_enum);
+ /* 803084CC */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const;
+ /* 80308668 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const;
+
+ /* 8030751C */ virtual ~J2DTextBoxEx();
+ /* 803089EC */ virtual void setCullBack(bool);
+ /* 803087DC */ virtual void setCullBack(_GXCullMode);
+ /* 803087BC */ virtual void setAlpha(u8);
+ /* 803075AC */ virtual void drawSelf(f32, f32, f32 (*)[3][4]);
+ /* 80308A28 */ virtual void isUsed(ResTIMG const*);
+ /* 80308828 */ virtual void isUsed(ResFONT const*);
+ /* 80308810 */ virtual void rewriteAlpha();
+ /* 80308A4C */ virtual void setAnimation(J2DAnmBase*);
+ /* 80256044 */ virtual void setAnimation(J2DAnmTransform*);
+ /* 803088B4 */ virtual void setAnimation(J2DAnmColor*);
+ /* 8030890C */ virtual void setAnimation(J2DAnmTexPattern*);
+ /* 803088E0 */ virtual void setAnimation(J2DAnmTextureSRTKey*);
+ /* 80308938 */ virtual void setAnimation(J2DAnmTevRegKey*);
+ /* 80308964 */ virtual void setAnimation(J2DAnmVisibilityFull*);
+ /* 80308A48 */ virtual void setAnimation(J2DAnmVtxColor*);
+ /* 8030896C */ virtual void animationPane(J2DAnmTransform const*);
+ /* 803078AC */ virtual void draw(f32, f32);
+ /* 80307AF0 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
+ /* 80307D5C */ virtual void setFont(JUTFont*);
+ /* 80307DC0 */ virtual void getFont() const;
+ /* 8030823C */ virtual void setBlack(JUtility::TColor);
+ /* 803082C4 */ virtual void setWhite(JUtility::TColor);
+ /* 8030834C */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
+ /* 803086FC */ virtual void getBlack() const;
+ /* 8030875C */ virtual void getWhite() const;
+ /* 80256024 */ virtual void getMaterial() const;
+
+private:
+ /* 0x134 */ u8 field_0x134[4];
+ /* 0x138 */ J2DMaterial* mMaterial;
+ /* 0x13C */ u16 field_0x13c;
+ /* 0x13E */ u16 field_0x13e;
+ /* 0x140 */ u8 field_0x140;
+}; // Size: 0x144
+
#endif /* J2DTEXTBOXEX_H */
diff --git a/include/JSystem/J2DGraph/J2DWindowEx.h b/include/JSystem/J2DGraph/J2DWindowEx.h
index 262c2486a9..e5f7e29f8a 100644
--- a/include/JSystem/J2DGraph/J2DWindowEx.h
+++ b/include/JSystem/J2DGraph/J2DWindowEx.h
@@ -1,6 +1,68 @@
#ifndef J2DWINDOWEX_H
#define J2DWINDOWEX_H
+#include "JSystem/J2DGraph/J2DMaterial.h"
+#include "JSystem/J2DGraph/J2DWindow.h"
#include "dolphin/types.h"
+class J2DWindowEx : public J2DWindow {
+public:
+ enum stage_enum {};
+
+ /* 80300C94 */ J2DWindowEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*);
+ /* 80300F80 */ void setMinSize();
+ /* 803012CC */ void draw_private(JGeometry::TBox2<f32> const&, JGeometry::TBox2<f32> const&);
+ /* 80301D74 */ void drawFrameTexture(f32, f32, f32, f32, u16, u16, u16, u16, J2DMaterial*,
+ bool);
+ /* 80302284 */ void setTevOrder(bool);
+ /* 80302388 */ void setTevStage(bool);
+ /* 803024B4 */ void setStage(J2DTevStage*, J2DWindowEx::stage_enum);
+ /* 80302A4C */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const;
+ /* 80302BE8 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const;
+ /* 8030321C */ void isNeedSetAnm(u8);
+
+ /* 80301144 */ virtual ~J2DWindowEx();
+ /* 803035C0 */ virtual void setCullBack(bool);
+ /* 80302D98 */ virtual void setCullBack(_GXCullMode);
+ /* 80302D48 */ virtual void setAlpha(u8);
+ /* 8030122C */ virtual void drawSelf(f32, f32, f32 (*)[3][4]);
+ /* 80302EDC */ virtual void isUsed(ResTIMG const*);
+ /* 803035FC */ virtual void isUsed(ResFONT const*);
+ /* 80302DF4 */ virtual void rewriteAlpha();
+ /* 8030361C */ virtual void setAnimation(J2DAnmBase*);
+ /* 80256084 */ virtual void setAnimation(J2DAnmTransform*);
+ /* 80302FFC */ virtual void setAnimation(J2DAnmColor*);
+ /* 8030310C */ virtual void setAnimation(J2DAnmTexPattern*);
+ /* 80303084 */ virtual void setAnimation(J2DAnmTextureSRTKey*);
+ /* 80303194 */ virtual void setAnimation(J2DAnmTevRegKey*);
+ /* 80303274 */ virtual void setAnimation(J2DAnmVisibilityFull*);
+ /* 8030327C */ virtual void setAnimation(J2DAnmVtxColor*);
+ /* 80303370 */ virtual void animationPane(J2DAnmTransform const*);
+ /* 80301FC8 */ virtual void draw(JGeometry::TBox2<f32> const&);
+ /* 80302164 */ virtual void draw(JGeometry::TBox2<f32> const&, JGeometry::TBox2<f32> const&);
+ /* 80303568 */ virtual void draw(f32, f32, f32, f32);
+ /* 80302764 */ virtual void setBlack(JUtility::TColor);
+ /* 803027EC */ virtual void setWhite(JUtility::TColor);
+ /* 80302874 */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
+ /* 80302C88 */ virtual void getBlack() const;
+ /* 80302CE8 */ virtual void getWhite() const;
+ /* 80302E0C */ virtual void getFrameTexture(u8, u8) const;
+ /* 80302E74 */ virtual void getContentsTexture(u8) const;
+ /* 8030353C */ virtual void getMaterial(J2DWindow::TMaterial&) const;
+ /* 80303510 */ virtual void getFrameMaterial(u8) const;
+ /* 80303534 */ virtual void getContentsMaterial() const;
+ /* 80301994 */ virtual void drawContents(JGeometry::TBox2<f32> const&);
+
+private:
+ /* 0x148 */ J2DMaterial* mFrameMaterial[4];
+ /* 0x158 */ u16 field_0x158[4];
+ /* 0x160 */ J2DMaterial* mContentsMaterial;
+ /* 0x164 */ u16 field_0x164;
+ /* 0x166 */ u16 field_0x166;
+ /* 0x168 */ u16 field_0x168[4];
+ /* 0x170 */ u8 field_0x170;
+ /* 0x174 */ J2DAnmVisibilityFull* mAnmVisibilityFull;
+ /* 0x178 */ J2DAnmVtxColor* mAnmVtxColor;
+};
+
#endif /* J2DWINDOWEX_H */
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index bff2b307ae..e0b78ce035 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -3,7 +3,7 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h"
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
class J3DAnmBase {
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h
index c62fa07850..589571f3fb 100644
--- a/include/JSystem/J3DGraphBase/J3DMatBlock.h
+++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h
@@ -4,7 +4,7 @@
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/J3DGraphBase/J3DTevs.h"
#include "JSystem/J3DGraphBase/J3DTexture.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index a9ba9f82f4..ce4ab4b4e5 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -2,7 +2,7 @@
#define J3DSTRUCT_H
#include "SSystem/SComponent/c_xyz.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
class J3DLightInfo {
diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h
index b5b91f4136..75a181eab4 100644
--- a/include/JSystem/J3DGraphBase/J3DSys.h
+++ b/include/JSystem/J3DGraphBase/J3DSys.h
@@ -1,7 +1,7 @@
#ifndef J3DSYS_H
#define J3DSYS_H
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
@@ -11,8 +11,6 @@ enum J3DError {
kJ3DError_Alloc = 4,
};
-struct _GXTexCacheSize {};
-
class J3DMtxCalc;
class J3DModel;
class J3DMatPacket;
diff --git a/include/JSystem/JUtility/JUTPalette.h b/include/JSystem/JUtility/JUTPalette.h
index 5de6c98ae6..dd9ab27cf5 100644
--- a/include/JSystem/JUtility/JUTPalette.h
+++ b/include/JSystem/JUtility/JUTPalette.h
@@ -6,33 +6,6 @@
enum JUTTransparency { UNK0, UNK1 };
-enum _GXTlut {
- /* 0x00 */ GX_TLUT0,
- /* 0x01 */ GX_TLUT1,
- /* 0x02 */ GX_TLUT2,
- /* 0x03 */ GX_TLUT3,
- /* 0x04 */ GX_TLUT4,
- /* 0x05 */ GX_TLUT5,
- /* 0x06 */ GX_TLUT6,
- /* 0x07 */ GX_TLUT7,
- /* 0x08 */ GX_TLUT8,
- /* 0x09 */ GX_TLUT9,
- /* 0x0A */ GX_TLUT10,
- /* 0x0B */ GX_TLUT11,
- /* 0x0C */ GX_TLUT12,
- /* 0x0D */ GX_TLUT13,
- /* 0x0E */ GX_TLUT14,
- /* 0x0F */ GX_TLUT15,
- /* 0x10 */ GX_BIGTLUT0,
- /* 0x11 */ GX_BIGTLUT1,
- /* 0x12 */ GX_BIGTLUT2,
- /* 0x13 */ GX_BIGTLUT3,
-};
-
-enum _GXTlutFmt {
- /* 0x00 */ UNK,
-};
-
struct ResTLUT {
u8 format;
u8 transparency;
diff --git a/include/JSystem/JUtility/TColor.h b/include/JSystem/JUtility/TColor.h
index 473f28778e..0cd2354d92 100644
--- a/include/JSystem/JUtility/TColor.h
+++ b/include/JSystem/JUtility/TColor.h
@@ -1,7 +1,7 @@
#ifndef TCOLOR_H
#define TCOLOR_H
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
namespace JUtility {
diff --git a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.h b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.h
index fa5cd0377c..f59c75d820 100644
--- a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.h
+++ b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.h
@@ -3,4 +3,8 @@
#include "dolphin/types.h"
+extern "C" {
+int tolower(int);
+};
+
#endif /* MSL_COMMON_SRC_CTYPE_H */
diff --git a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h
index 9a30c9db61..38c7f3e7ea 100644
--- a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h
+++ b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h
@@ -5,6 +5,17 @@
extern "C" {
void* memcpy(void*, const void*, s32);
+void* memset(void*, int, u32);
+char* strrchr(const char*, int);
+char* strchr(const char*, int);
+int strncmp(const char*, const char*, u32);
+int strcmp(const char*, const char*);
+char* strcat(char*, const char*);
+char* strncpy(char*, const char*, u32);
+char* strcpy(char*, const char*);
+u32 strlen(const char*);
+
+int stricmp(const char*, const char*);
};
#endif /* MSL_COMMON_SRC_STRING_H */
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index 0065c46df8..dff6740eed 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -7,7 +7,7 @@
#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
#include "SSystem/SComponent/c_m3d_g_tri.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "f_op/f_op_actor.h"
#include "global.h"
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 9253e3b623..dffffcdc5b 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -8,7 +8,6 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_mng.h"
-#include "msl_c/string.h"
struct stage_vrboxcol_info_class {};
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index 85857442e7..4a35b1fc32 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -7,7 +7,7 @@
#include "JSystem/JParticle/JPAParticle.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
@@ -328,10 +328,6 @@ private:
/* 0x18 */ EVIL_EFF field_0x18[2000];
};
-struct GXFogAdjTable {
- u16 field_0x0[10];
-};
-
class fopAc_ac_c;
class dScnKy_env_light_c {
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index cf0cdeef5d..96baf9dc29 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -1,9 +1,10 @@
#ifndef D_SAVE_D_SAVE_H
#define D_SAVE_D_SAVE_H
+#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/printf.h"
+#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
-#include "msl_c/string.h"
#define DEFAULT_SELECT_ITEM_INDEX 0
#define MAX_SELECT_ITEM 4
diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h
index 9fd2cd3121..0ca3cc2d5f 100644
--- a/include/dolphin/gx/GX.h
+++ b/include/dolphin/gx/GX.h
@@ -2,49 +2,123 @@
#define GX_H_
#include "dolphin/gx/GXDisplayList.h"
-#include "dolphin/gx/GXTexture.h"
+#include "dolphin/mtx/mtx.h"
+#include "dolphin/mtx/mtx44.h"
#include "dolphin/types.h"
-// TODO: maybe split?
+typedef struct _GXColor {
+ /* 0x0 */ u8 r;
+ /* 0x1 */ u8 g;
+ /* 0x2 */ u8 b;
+ /* 0x3 */ u8 a;
+} GXColor;
+
+typedef struct _GXColorS10 {
+ /* 0x0 */ s16 r;
+ /* 0x2 */ s16 g;
+ /* 0x4 */ s16 b;
+ /* 0x6 */ s16 a;
+} GXColorS10;
+
+typedef struct _GXRenderModeObj {
+ s32 vi_tv_mode;
+ u16 fb_width;
+ u16 efb_height;
+ u16 xfb_height;
+ u16 vi_x_origin;
+ u16 vi_y_origin;
+ u16 vi_width;
+ u16 vi_height;
+ s32 xfb_mode;
+ u8 field_rendering;
+ u8 antialiasing;
+ u8 sample_pattern[12][2];
+ u8 vfilter[7];
+} GXRenderModeObj;
+
+typedef struct _GXTexObj {
+ /* 0x00 */ u32 texture_filter;
+ /* 0x04 */ u32 texture_lod;
+ /* 0x08 */ u32 texture_size;
+ /* 0x0C */ u32 texture_address;
+ /* 0x10 */ u32 user_data;
+ /* 0x14 */ u32 texture_format;
+ /* 0x18 */ u32 tlut_name;
+ /* 0x1C */ u16 texture_time_count;
+ /* 0x1E */ u8 texture_tile_type;
+ /* 0x1F */ u8 texture_flags;
+} GXTexObj;
+
+typedef struct _GXTlutObj {
+ /* 0x0 */ u32 format;
+ /* 0x4 */ u32 address;
+ /* 0x8 */ u32 numEntries;
+} GXTlutObj;
+
+typedef struct _GXLightObj {
+ /* 0x0 */ u32 data[16];
+} GXLightObj;
+
+typedef struct _GXFogAdjTable {
+ /* 0x0 */ u16 r[10];
+} GXFogAdjTable;
+
+typedef enum _GXPrimitive {
+ /* 0x80 */ GX_QUADS = 0x80,
+ /* 0x90 */ GX_TRIANGLES = 0x90,
+ /* 0x98 */ GX_TRIANGLESTRIP = 0x98,
+ /* 0xA0 */ GX_TRIANGLEFAN = 0xA0,
+ /* 0xA8 */ GX_LINES = 0xA8,
+ /* 0xB0 */ GX_LINESTRIP = 0xB0,
+ /* 0xB8 */ GX_POINTS = 0xB8,
+} GXPrimitive;
typedef enum _GXCullMode {
- GX_CULL_NONE = 0,
- GX_CULL_FRONT = 1,
- GX_CULL_BACK = 2,
- GX_CULL_ALL = 3
+ /* 0x0 */ GX_CULL_NONE,
+ /* 0x1 */ GX_CULL_FRONT,
+ /* 0x2 */ GX_CULL_BACK,
+ /* 0x3 */ GX_CULL_ALL
} GXCullMode;
+typedef enum _GXBool {
+ /* 0x0 */ GX_FALSE,
+ /* 0x1 */ GX_TRUE,
+ /* 0x0 */ GX_DISABLE = 0,
+ /* 0x1 */ GX_ENABLE
+} GXBool;
+
typedef enum _GXTexMapID {
- GX_TEXMAP1 = 1,
- GX_TEXMAP2 = 2,
- GX_TEXMAP0 = 0,
- GX_TEXMAP5 = 5,
- GX_TEXMAP6 = 6,
- GX_TEXMAP3 = 3,
- GX_TEXMAP4 = 4,
- GX_TEXMAP_NULL = 255,
- GX_TEX_DISABLE = 256,
- GX_TEXMAP7 = 7,
- GX_MAX_TEXMAP = 8
+ /* 0x000 */ GX_TEXMAP0,
+ /* 0x001 */ GX_TEXMAP1,
+ /* 0x002 */ GX_TEXMAP2,
+ /* 0x003 */ GX_TEXMAP3,
+ /* 0x004 */ GX_TEXMAP4,
+ /* 0x005 */ GX_TEXMAP5,
+ /* 0x006 */ GX_TEXMAP6,
+ /* 0x007 */ GX_TEXMAP7,
+ /* 0x008 */ GX_MAX_TEXMAP,
+ /* 0x0FF */ GX_TEXMAP_NULL = 255,
+ /* 0x100 */ GX_TEXMAP_DISABLE,
} GXTexMapID;
typedef enum _GXTevStageID {
- /* 0x0 */ GX_TEVSTAGE0,
- /* 0x1 */ GX_TEVSTAGE1,
- /* 0x2 */ GX_TEVSTAGE2,
- /* 0x3 */ GX_TEVSTAGE3,
- /* 0x4 */ GX_TEVSTAGE4,
- /* 0x5 */ GX_TEVSTAGE5,
- /* 0x6 */ GX_TEVSTAGE6,
- /* 0x7 */ GX_TEVSTAGE7,
- /* 0x8 */ GX_TEVSTAGE8,
- /* 0x9 */ GX_TEVSTAGE9,
- /* 0xA */ GX_TEVSTAGE10,
- /* 0xB */ GX_TEVSTAGE11,
- /* 0xC */ GX_TEVSTAGE12,
- /* 0xD */ GX_TEVSTAGE13,
- /* 0xE */ GX_TEVSTAGE14,
- /* 0xF */ GX_TEVSTAGE15,
+ /* 0x00 */ GX_TEVSTAGE0,
+ /* 0x01 */ GX_TEVSTAGE1,
+ /* 0x02 */ GX_TEVSTAGE2,
+ /* 0x03 */ GX_TEVSTAGE3,
+ /* 0x04 */ GX_TEVSTAGE4,
+ /* 0x05 */ GX_TEVSTAGE5,
+ /* 0x06 */ GX_TEVSTAGE6,
+ /* 0x07 */ GX_TEVSTAGE7,
+ /* 0x08 */ GX_TEVSTAGE8,
+ /* 0x09 */ GX_TEVSTAGE9,
+ /* 0x0A */ GX_TEVSTAGE10,
+ /* 0x0B */ GX_TEVSTAGE11,
+ /* 0x0C */ GX_TEVSTAGE12,
+ /* 0x0D */ GX_TEVSTAGE13,
+ /* 0x0E */ GX_TEVSTAGE14,
+ /* 0x0F */ GX_TEVSTAGE15,
+ /* 0x10 */ GX_MAX_TEVSTAGE,
} GXTevStageID;
typedef enum _GXTexCoordID {
@@ -56,6 +130,7 @@ typedef enum _GXTexCoordID {
/* 0x05 */ GX_TEXCOORD5,
/* 0x06 */ GX_TEXCOORD6,
/* 0x07 */ GX_TEXCOORD7,
+ /* 0x08 */ GX_MAXCOORD,
/* 0xFF */ GX_TEXCOORD_NULL = 255,
} GXTexCoordID;
@@ -78,14 +153,16 @@ typedef enum _GXColorSrc {
} GXColorSrc;
typedef enum _GXLightID {
- /* 0x00 */ GX_LIGHT0,
- /* 0x02 */ GX_LIGHT1 = 0x2,
- /* 0x04 */ GX_LIGHT2 = 0x4,
- /* 0x08 */ GX_LIGHT3 = 0x8,
- /* 0x10 */ GX_LIGHT4 = 0x10,
- /* 0x20 */ GX_LIGHT5 = 0x20,
- /* 0x40 */ GX_LIGHT6 = 0x40,
- /* 0x80 */ GX_LIGHT7 = 0x80,
+ /* 0x000 */ GX_LIGHT_NULL,
+ /* 0x001 */ GX_LIGHT0,
+ /* 0x002 */ GX_LIGHT1,
+ /* 0x004 */ GX_LIGHT2 = 0x4,
+ /* 0x008 */ GX_LIGHT3 = 0x8,
+ /* 0x010 */ GX_LIGHT4 = 0x10,
+ /* 0x020 */ GX_LIGHT5 = 0x20,
+ /* 0x040 */ GX_LIGHT6 = 0x40,
+ /* 0x080 */ GX_LIGHT7 = 0x80,
+ /* 0x100 */ GX_MAX_LIGHT = 0x100,
} GXLightID;
typedef enum _GXDiffuseFn {
@@ -100,6 +177,23 @@ typedef enum _GXAttnFn {
/* 0x2 */ GX_AF_NONE,
} GXAttnFn;
+typedef enum _GXDistAttnFn {
+ /* 0x0 */ GX_DA_OFF,
+ /* 0x1 */ GX_DA_GENTLE,
+ /* 0x2 */ GX_DA_MEDIUM,
+ /* 0x3 */ GX_DA_STEEP
+} GXDistAttnFn;
+
+typedef enum _GXSpotFn {
+ /* 0x0 */ GX_SP_OFF,
+ /* 0x1 */ GX_SP_FLAT,
+ /* 0x2 */ GX_SP_COS,
+ /* 0x3 */ GX_SP_COS2,
+ /* 0x4 */ GX_SP_SHARP,
+ /* 0x5 */ GX_SP_RING1,
+ /* 0x6 */ GX_SP_RING2
+} GXSpotFn;
+
typedef enum _GXTevMode {
/* 0x0 */ GX_MODULATE,
/* 0x1 */ GX_DECAL,
@@ -113,13 +207,16 @@ typedef enum _GXBlendMode {
/* 0x1 */ GX_BM_BLEND,
/* 0x2 */ GX_BM_LOGIC,
/* 0x3 */ GX_BM_SUBTRACT,
+ /* 0x4 */ GX_MAX_BLENDMODE,
} GXBlendMode;
typedef enum _GXBlendFactor {
/* 0x0 */ GX_BL_ZERO,
/* 0x1 */ GX_BL_ONE,
/* 0x2 */ GX_BL_SRC_COLOR,
+ /* 0x2 */ GX_BL_DST_COLOR = 2,
/* 0x3 */ GX_BL_INV_SRC_COLOR,
+ /* 0x3 */ GX_BL_INV_DST_COLOR = 3,
/* 0x4 */ GX_BL_SRC_ALPHA,
/* 0x5 */ GX_BL_INV_SRC_ALPHA,
/* 0x6 */ GX_BL_DST_ALPHA,
@@ -154,6 +251,7 @@ typedef enum _GXVtxFmt {
/* 0x5 */ GX_VTXFMT5,
/* 0x6 */ GX_VTXFMT6,
/* 0x7 */ GX_VTXFMT7,
+ /* 0x8 */ GX_MAX_VTXFMT,
} GXVtxFmt;
typedef enum _GXAttr {
@@ -188,28 +286,28 @@ typedef enum _GXAttr {
} GXAttr;
typedef enum _GXCompCnt {
- /* 0x0 */ GX_TEX_S,
- /* 0x0 */ GX_NRM_XYZ = 0,
- /* 0x0 */ GX_CLR_RGB = 0,
/* 0x0 */ GX_POS_XY = 0,
- /* 0x1 */ GX_TEX_ST = 1,
+ /* 0x1 */ GX_POS_XYZ = 1,
+ /* 0x0 */ GX_NRM_XYZ = 0,
/* 0x1 */ GX_NRM_NBT = 1,
+ /* 0x2 */ GX_NRM_NBT3 = 2,
+ /* 0x0 */ GX_CLR_RGB = 0,
/* 0x1 */ GX_CLR_RGBA = 1,
- /* 0x1 */ GX_POS_XYZ = 1,
- /* 0x2 */ GX_NRM_NBT3,
+ /* 0x0 */ GX_TEX_S = 0,
+ /* 0x1 */ GX_TEX_ST = 1,
} GXCompCnt;
typedef enum _GXCompType {
/* 0x0 */ GX_U8,
- /* 0x0 */ GX_RGB565 = 0,
/* 0x1 */ GX_S8,
- /* 0x1 */ GX_RGB8 = 1,
- /* 0x2 */ GX_RGBX8,
- /* 0x2 */ GX_U16 = 2,
+ /* 0x2 */ GX_U16,
/* 0x3 */ GX_S16,
- /* 0x3 */ GX_RGBA4 = 3,
+ /* 0x4 */ GX_F32,
+ /* 0x0 */ GX_RGB565 = 0,
+ /* 0x1 */ GX_RGB8,
+ /* 0x2 */ GX_RGBX8,
+ /* 0x3 */ GX_RGBA4,
/* 0x4 */ GX_RGBA6,
- /* 0x4 */ GX_F32 = 4,
/* 0x5 */ GX_RGBA8,
} GXCompType;
@@ -239,6 +337,7 @@ typedef enum _GXTevBias {
/* 0x0 */ GX_TB_ZERO,
/* 0x1 */ GX_TB_ADDHALF,
/* 0x2 */ GX_TB_SUBHALF,
+ /* 0x3 */ GX_MAX_TEVBIAS,
} GXTevBias;
typedef enum _GXTevColorArg {
@@ -272,6 +371,7 @@ typedef enum _GXTevScale {
/* 0x1 */ GX_CS_SCALE_2,
/* 0x2 */ GX_CS_SCALE_4,
/* 0x3 */ GX_CS_DIVIDE_2,
+ /* 0x4 */ GX_MAX_TEVSCALE
} GXTevScale;
typedef enum _GXTevRegID {
@@ -279,6 +379,7 @@ typedef enum _GXTevRegID {
/* 0x1 */ GX_TEVREG0,
/* 0x2 */ GX_TEVREG1,
/* 0x3 */ GX_TEVREG2,
+ /* 0x4 */ GX_MAX_TEVREG
} GXTevRegID;
typedef enum _GXTevAlphaArg {
@@ -287,178 +388,354 @@ typedef enum _GXTevAlphaArg {
/* 0x2 */ GX_CA_A1,
/* 0x3 */ GX_CA_A2,
/* 0x4 */ GX_CA_TEXA,
- /* 0x5 */ GX_CA_TEXB,
- /* 0x6 */ GX_CA_ZERO,
+ /* 0x5 */ GX_CA_RASA,
+ /* 0x6 */ GX_CA_KONST,
+ /* 0x7 */ GX_CA_ZERO,
} GXTevAlphaArg;
-typedef struct _GXRenderModeObj {
- s32 vi_tv_mode;
- u16 fb_width;
- u16 efb_height;
- u16 xfb_height;
- u16 vi_x_origin;
- u16 vi_y_origin;
- u16 vi_width;
- u16 vi_height;
- s32 xfb_mode;
- u8 field_rendering;
- u8 antialiasing;
- u8 sample_pattern[12][2];
- u8 vfilter[7];
-} GXRenderModeObj;
-
-struct _GXTexObj {
- u32 texture_filter;
- u32 texture_lod;
- u32 texture_size;
- u32 texture_address;
- u32 user_data;
- u32 texture_format;
- u32 tlut_name;
- u16 texture_time_count;
- u8 texture_tile_type;
- u8 texture_flags;
-};
+typedef enum _GXTexFmt {
+ /* 0x0 */ GX_TF_I4,
+ /* 0x1 */ GX_TF_I8,
+ /* 0x2 */ GX_TF_IA4,
+ /* 0x3 */ GX_TF_IA8,
+ /* 0x4 */ GX_TF_RGB565,
+ /* 0x5 */ GX_TF_TGB5A3,
+ /* 0x6 */ GX_TF_RGBA8,
+ /* 0x7 */ GX_TF_CI4,
+ /* 0x8 */ GX_TF_CI8,
+ /* 0x9 */ GX_TF_CI14,
+ /* 0xE */ GX_TF_CMPR = 14,
+
+ /* 0x10 */ _GX_TF_ZTF = 0x10,
+ /* 0x20 */ _GX_TF_CTF = 0x20
+} GXTexFmt;
-struct _GXTlutObj {
- u32 format;
- u32 address;
- u32 numEntries;
-};
+typedef enum _GXTlutFmt {
+ /* 0x0 */ GX_TL_IA8,
+ /* 0x1 */ GX_TL_RGB565,
+ /* 0x2 */ GX_TL_RGB5A3,
+} GXTlutFmt;
-typedef enum GXTexFmt8 { /* 8-bit version of GXTexFmt for use in structures */
- GX_CTF_A8 = 39,
- GX_CTF_B8 = 42,
- GX_CTF_G8 = 41,
- GX_CTF_GB8 = 44,
- GX_CTF_R4 = 32,
- GX_CTF_R8 = 40,
- GX_CTF_RA4 = 34,
- GX_CTF_RA8 = 35,
- GX_CTF_RG8 = 43,
- GX_CTF_YUVA8 = 38,
- GX_CTF_Z16L = 60,
- GX_CTF_Z4 = 48,
- GX_CTF_Z8L = 58,
- GX_CTF_Z8M = 57,
- GX_TF_CMPR = 14,
- GX_TF_I4 = 0,
- GX_TF_I8 = 1,
- GX_TF_IA4 = 2,
- GX_TF_IA8 = 3,
- GX_TF_RGB565 = 4,
- GX_TF_RGB5A3 = 5,
- GX_TF_RGBA8 = 6,
- GX_TF_Z16 = 19,
- GX_TF_Z24X8 = 22,
- GX_TF_Z8 = 17
+typedef enum _GXTlut {
+ /* 0x00 */ GX_TLUT0,
+ /* 0x01 */ GX_TLUT1,
+ /* 0x02 */ GX_TLUT2,
+ /* 0x03 */ GX_TLUT3,
+ /* 0x04 */ GX_TLUT4,
+ /* 0x05 */ GX_TLUT5,
+ /* 0x06 */ GX_TLUT6,
+ /* 0x07 */ GX_TLUT7,
+ /* 0x08 */ GX_TLUT8,
+ /* 0x09 */ GX_TLUT9,
+ /* 0x0A */ GX_TLUT10,
+ /* 0x0B */ GX_TLUT11,
+ /* 0x0C */ GX_TLUT12,
+ /* 0x0D */ GX_TLUT13,
+ /* 0x0E */ GX_TLUT14,
+ /* 0x0F */ GX_TLUT15,
+ /* 0x10 */ GX_BIGTLUT0,
+ /* 0x11 */ GX_BIGTLUT1,
+ /* 0x12 */ GX_BIGTLUT2,
+ /* 0x13 */ GX_BIGTLUT3,
+} GXTlut;
+
+/* 8-bit version of GXTexFmt for use in structures */
+typedef enum _GXTexFmt8 {
+ /* 0x20 */ GX_CTF_R4 = (0x0 | _GX_TF_CTF),
+ /* 0x22 */ GX_CTF_RA4 = (0x2 | _GX_TF_CTF),
+ /* 0x23 */ GX_CTF_RA8 = (0x3 | _GX_TF_CTF),
+ /* 0x26 */ GX_CTF_YUVA8 = (0x6 | _GX_TF_CTF),
+ /* 0x27 */ GX_CTF_A8 = (0x7 | _GX_TF_CTF),
+ /* 0x28 */ GX_CTF_R8 = (0x8 | _GX_TF_CTF),
+ /* 0x29 */ GX_CTF_G8 = (0x9 | _GX_TF_CTF),
+ /* 0x2A */ GX_CTF_B8 = (0xA | _GX_TF_CTF),
+ /* 0x2B */ GX_CTF_RG8 = (0xB | _GX_TF_CTF),
+ /* 0x2C */ GX_CTF_GB8 = (0xC | _GX_TF_CTF),
} GXTexFmt8;
-typedef enum GXTexFmt {
- _GX_TF_I4,
- _GX_TF_I8,
- _GX_TF_IA4,
- _GX_TF_IA8,
- _GX_TF_RGB565,
- _GX_TF_TGB5A3,
- _GX_TF_RGBA8,
- _GX_TF_CMPR = 14,
- _GX_TF_Z8 = 17,
- _GX_TF_Z16 = 19,
- _GX_TF_Z24X8 = 22,
- _GX_CTF_R4 = 32,
- _GX_CTF_RA4 = 34,
- _GX_CTF_RA8,
- _GX_CTF_YUVA8 = 38,
- _GX_CTF_A8,
- _GX_CTF_R8,
- _GX_CTF_G8,
- _GX_CTF_B8,
- _GX_CTF_RG8,
- _GX_CTF_GB8,
- _GX_CTF_Z4 = 48,
- _GX_CTF_Z8M = 57,
- _GX_CTF_Z8L,
- _GX_CTF_Z16L = 60
-} GXTexFmt;
-
-typedef enum GXTexWrapMode8 { /* Same as GXTexWrapMode, but as 1 byte for use inside structures */
- GX_CLAMP = 0,
- GX_MIRROR = 2,
- GX_REPEAT = 1
-} GXTexWrapMode8;
-
-typedef enum GXTexWrapMode {
- _GX_CLAMP,
- _GX_REPEAT,
- _GX_MIRROR,
+typedef enum _GXZTexFmt {
+ /* 0x11 */ GX_TF_Z8 = (0x1 | _GX_TF_ZTF),
+ /* 0x13 */ GX_TF_Z16 = (0x3 | _GX_TF_ZTF),
+ /* 0x16 */ GX_TF_Z24X8 = (0x6 | _GX_TF_ZTF),
+ /* 0x30 */ GX_CTF_Z4 = (0x0 | _GX_TF_ZTF | _GX_TF_CTF),
+ /* 0x39 */ GX_CTF_Z8M = (0x9 | _GX_TF_ZTF | _GX_TF_CTF),
+ /* 0x3A */ GX_CTF_Z8L = (0xA | _GX_TF_ZTF | _GX_TF_CTF),
+ /* 0x3C */ GX_CTF_Z16L = (0xC | _GX_TF_ZTF | _GX_TF_CTF),
+} GXZTexFmt;
+
+typedef enum _GXTexWrapMode {
+ /* 0x0 */ GX_CLAMP,
+ /* 0x1 */ GX_REPEAT,
+ /* 0x2 */ GX_MIRROR,
+ /* 0x3 */ GX_MAX_TEXWRAP_MODE,
} GXTexWrapMode;
-typedef enum GXTexFilter8 { /* Same as GXTexFilter, but as 1 byte for use within structures that
- store the value as a byte */
- GX_LINEAR = 1,
- GX_LIN_MIP_LIN = 5,
- GX_LIN_MIP_NEAR = 3,
- GX_NEAR = 0,
- GX_NEAR_MIP_LIN = 4,
- GX_NEAR_MIP_NEAR = 2
-} GXTexFilter8;
-
-typedef enum GXTexFilter {
- _GX_NEAR,
- _GX_LINEAR,
- _GX_NEAR_MIP_NEAR,
- _GX_LIN_MIP_NEAR,
- _GX_NEAR_MIP_LIN,
- _GX_LIN_MIP_LIN,
+typedef enum _GXTexFilter {
+ /* 0x0 */ GX_NEAR,
+ /* 0x1 */ GX_LINEAR,
+ /* 0x2 */ GX_NEAR_MIP_NEAR,
+ /* 0x3 */ GX_LIN_MIP_NEAR,
+ /* 0x4 */ GX_NEAR_MIP_LIN,
+ /* 0x5 */ GX_LIN_MIP_LIN,
} GXTexFilter;
-typedef enum GXAnisotropy {
- GX_ANISO_1,
- GX_ANISO_2,
- GX_ANISO_4,
+typedef enum _GXAnisotropy {
+ /* 0x0 */ GX_ANISO_1,
+ /* 0x1 */ GX_ANISO_2,
+ /* 0x2 */ GX_ANISO_4,
+ /* 0x3 */ GX_MAX_ANISOTROPY,
} GXAnisotropy;
-typedef enum GXTlutFmt {
- GX_TL_IA8,
- GX_TL_RGB565,
- GX_TL_RGB5A3,
-} GXTlutFmt;
-
enum GXCITexFmt {
/* 0x8 */ GX_TF_C4 = 8,
/* 0x8 */ GX_TF_C8,
/* 0xA */ GX_TF_C14X2
};
+typedef enum _GXTexMtxType {
+ /* 0x0 */ GX_MTX3x4,
+ /* 0x1 */ GX_MTX2x4
+} GXTexMtxType;
+
+typedef enum _GXCompare {
+ /* 0x0 */ GX_NEVER,
+ /* 0x1 */ GX_LESS,
+ /* 0x2 */ GX_EQUAL,
+ /* 0x3 */ GX_LEQUAL,
+ /* 0x4 */ GX_GREATER,
+ /* 0x5 */ GX_NEQUAL,
+ /* 0x6 */ GX_GEQUAL,
+ /* 0x7 */ GX_ALWAYS,
+} GXCompare;
+
+typedef enum _GXAlphaOp {
+ /* 0x0 */ GX_AOP_AND,
+ /* 0x1 */ GX_AOP_OR,
+ /* 0x2 */ GX_AOP_XOR,
+ /* 0x3 */ GX_AOP_XNOR,
+ /* 0x4 */ GX_MAX_ALPHAOP
+} GXAlphaOp;
+
+typedef enum _GXFogType {
+ /* 0x0 */ GX_FOG_NONE,
+ /* 0x2 */ GX_FOG_LIN = 2,
+ /* 0x2 */ GX_FOG_PERSP_LIN = 2,
+ /* 0x4 */ GX_FOG_EXP = 4,
+ /* 0x4 */ GX_FOG_PERSP_EXP = 4,
+ /* 0x5 */ GX_FOG_EXP2,
+ /* 0x5 */ GX_FOG_PERSP_EXP2 = 5,
+ /* 0x6 */ GX_FOG_REVEXP,
+ /* 0x6 */ GX_FOG_PERSP_REVEXP = 6,
+ /* 0x7 */ GX_FOG_REVEXP2,
+ /* 0x7 */ GX_FOG_PERSP_REVEXP2 = 7,
+ /* 0xA */ GX_FOG_ORTHO_LIN = 10,
+ /* 0xC */ GX_FOG_ORTHO_EXP = 12,
+ /* 0xD */ GX_FOG_ORTHO_EXP2,
+ /* 0xE */ GX_FOG_ORTHO_REVEXP,
+ /* 0xF */ GX_FOG_ORTHO_REVEXP2,
+} GXFogType;
+
+typedef enum _GXProjectionType {
+ /* 0x0 */ GX_PERSPECTIVE,
+ /* 0x1 */ GX_ORTHOGRAPHIC
+} GXProjectionType;
+
+typedef enum _GXTevKAlphaSel {
+ /* 0x00 */ GX_TEV_KASEL_1,
+ /* 0x01 */ GX_TEV_KASEL_7_8,
+ /* 0x02 */ GX_TEV_KASEL_3_4,
+ /* 0x03 */ GX_TEV_KASEL_5_8,
+ /* 0x04 */ GX_TEV_KASEL_1_2,
+ /* 0x05 */ GX_TEV_KASEL_3_8,
+ /* 0x06 */ GX_TEV_KASEL_1_4,
+ /* 0x07 */ GX_TEV_KASEL_1_8,
+
+ /* 0x10 */ GX_TEV_KASEL_K0_R = 0x10,
+ /* 0x11 */ GX_TEV_KASEL_K1_R,
+ /* 0x12 */ GX_TEV_KASEL_K2_R,
+ /* 0x13 */ GX_TEV_KASEL_K3_R,
+ /* 0x14 */ GX_TEV_KASEL_K0_G,
+ /* 0x15 */ GX_TEV_KASEL_K1_G,
+ /* 0x16 */ GX_TEV_KASEL_K2_G,
+ /* 0x17 */ GX_TEV_KASEL_K3_G,
+ /* 0x18 */ GX_TEV_KASEL_K0_B,
+ /* 0x19 */ GX_TEV_KASEL_K1_B,
+ /* 0x1A */ GX_TEV_KASEL_K2_B,
+ /* 0x1B */ GX_TEV_KASEL_K3_B,
+ /* 0x1C */ GX_TEV_KASEL_K0_A,
+ /* 0x1D */ GX_TEV_KASEL_K1_A,
+ /* 0x1E */ GX_TEV_KASEL_K2_A,
+ /* 0x1F */ GX_TEV_KASEL_K3_A,
+} GXTevKAlphaSel;
+
+typedef enum _GXTevKColorSel {
+ /* 0x00 */ GX_TEV_KCSEL_1,
+ /* 0x01 */ GX_TEV_KCSEL_7_8,
+ /* 0x02 */ GX_TEV_KCSEL_3_4,
+ /* 0x03 */ GX_TEV_KCSEL_5_8,
+ /* 0x04 */ GX_TEV_KCSEL_1_2,
+ /* 0x05 */ GX_TEV_KCSEL_3_8,
+ /* 0x06 */ GX_TEV_KCSEL_1_4,
+ /* 0x07 */ GX_TEV_KCSEL_1_8,
+ /* 0x0C */ GX_TEV_KCSEL_K0 = 0xC,
+ /* 0x0D */ GX_TEV_KCSEL_K1,
+ /* 0x0E */ GX_TEV_KCSEL_K2,
+ /* 0x0F */ GX_TEV_KCSEL_K3,
+ /* 0x10 */ GX_TEV_KCSEL_K0_R,
+ /* 0x11 */ GX_TEV_KCSEL_K1_R,
+ /* 0x12 */ GX_TEV_KCSEL_K2_R,
+ /* 0x13 */ GX_TEV_KCSEL_K3_R,
+ /* 0x14 */ GX_TEV_KCSEL_K0_G,
+ /* 0x15 */ GX_TEV_KCSEL_K1_G,
+ /* 0x16 */ GX_TEV_KCSEL_K2_G,
+ /* 0x17 */ GX_TEV_KCSEL_K3_G,
+ /* 0x18 */ GX_TEV_KCSEL_K0_B,
+ /* 0x19 */ GX_TEV_KCSEL_K1_B,
+ /* 0x1A */ GX_TEV_KCSEL_K2_B,
+ /* 0x1B */ GX_TEV_KCSEL_K3_B,
+ /* 0x1C */ GX_TEV_KCSEL_K0_A,
+ /* 0x1D */ GX_TEV_KCSEL_K1_A,
+ /* 0x1E */ GX_TEV_KCSEL_K2_A,
+ /* 0x1F */ GX_TEV_KCSEL_K3_A,
+} GXTevKColorSel;
+
+typedef enum _GXTevSwapSel {
+ /* 0x0 */ GX_TEV_SWAP0,
+ /* 0x1 */ GX_TEV_SWAP1,
+ /* 0x2 */ GX_TEV_SWAP2,
+ /* 0x3 */ GX_TEV_SWAP3,
+ /* 0x4 */ GX_MAX_TEVSWAP,
+} GXTevSwapSel;
+
+typedef enum _GXTexGenType {
+ /* 0x0 */ GX_TG_MTX3x4,
+ /* 0x1 */ GX_TG_MTX2x4,
+ /* 0x2 */ GX_TG_BUMP0,
+ /* 0x3 */ GX_TG_BUMP1,
+ /* 0x4 */ GX_TG_BUMP2,
+ /* 0x5 */ GX_TG_BUMP3,
+ /* 0x6 */ GX_TG_BUMP4,
+ /* 0x7 */ GX_TG_BUMP5,
+ /* 0x8 */ GX_TG_BUMP6,
+ /* 0x9 */ GX_TG_BUMP7,
+ /* 0xA */ GX_TG_SRTG,
+} GXTexGenType;
+
+typedef enum _GXTexGenSrc {
+ /* 0x00 */ GX_TG_POS,
+ /* 0x01 */ GX_TG_NRM,
+ /* 0x02 */ GX_TG_BINRM,
+ /* 0x03 */ GX_TG_TANGENT,
+ /* 0x04 */ GX_TG_TEX0,
+ /* 0x05 */ GX_TG_TEX1,
+ /* 0x06 */ GX_TG_TEX2,
+ /* 0x07 */ GX_TG_TEX3,
+ /* 0x08 */ GX_TG_TEX4,
+ /* 0x09 */ GX_TG_TEX5,
+ /* 0x0A */ GX_TG_TEX6,
+ /* 0x0B */ GX_TG_TEX7,
+ /* 0x0C */ GX_TG_TEXCOORD0,
+ /* 0x0D */ GX_TG_TEXCOORD1,
+ /* 0x0E */ GX_TG_TEXCOORD2,
+ /* 0x0F */ GX_TG_TEXCOORD3,
+ /* 0x10 */ GX_TG_TEXCOORD4,
+ /* 0x11 */ GX_TG_TEXCOORD5,
+ /* 0x12 */ GX_TG_TEXCOORD6,
+} GXTexGenSrc;
+
+typedef enum _GXZTexOp {
+ /* 0x0 */ GX_ZT_DISABLE,
+ /* 0x1 */ GX_ZT_ADD,
+ /* 0x2 */ GX_ZT_REPLACE,
+ /* 0x3 */ GX_MAX_ZTEXOP,
+} GXZTexOp;
+
+typedef enum _GXIndTexStageID {
+ /* 0x0 */ GX_INDTEXSTAGE0,
+ /* 0x1 */ GX_INDTEXSTAGE1,
+ /* 0x2 */ GX_INDTEXSTAGE2,
+ /* 0x3 */ GX_INDTEXSTAGE3,
+ /* 0x4 */ GX_MAX_INDTEXSTAGE,
+} GXIndTexStageID;
+
+typedef enum _GXIndTexScale {
+ /* 0x0 */ GX_ITS_1,
+ /* 0x1 */ GX_ITS_2,
+ /* 0x2 */ GX_ITS_4,
+ /* 0x3 */ GX_ITS_8,
+ /* 0x4 */ GX_ITS_16,
+ /* 0x5 */ GX_ITS_32,
+ /* 0x6 */ GX_ITS_64,
+ /* 0x7 */ GX_ITS_128,
+ /* 0x8 */ GX_ITS_256,
+ /* 0x9 */ GX_MAX_ITSCALE,
+} GXIndTexScale;
+
+typedef enum _GXIndTexMtxID {
+ /* 0x0 */ GX_ITM_OFF,
+ /* 0x1 */ GX_ITM_0,
+ /* 0x2 */ GX_ITM_1,
+ /* 0x3 */ GX_ITM_2,
+ /* 0x5 */ GX_ITM_S0 = 5,
+ /* 0x6 */ GX_ITM_S1,
+ /* 0x7 */ GX_ITM_S2,
+ /* 0x9 */ GX_ITM_T0 = 9,
+ /* 0xA */ GX_ITM_T1,
+ /* 0xB */ GX_ITM_T2,
+} GXIndTexMtxID;
+
+typedef enum _GXTexOffset {
+ /* 0x0 */ GX_TO_ZERO,
+ /* 0x1 */ GX_TO_SIXTEENTH,
+ /* 0x2 */ GX_TO_EIGHTH,
+ /* 0x3 */ GX_TO_FOURTH,
+ /* 0x4 */ GX_TO_HALF,
+ /* 0x5 */ GX_TO_ONE,
+ /* 0x6 */ GX_MAX_TEXOFFSET,
+} GXTexOffset;
+
+typedef enum _GXTevKColorID {
+ /* 0x0 */ GX_KCOLOR0,
+ /* 0x1 */ GX_KCOLOR1,
+ /* 0x2 */ GX_KCOLOR2,
+ /* 0x3 */ GX_KCOLOR3,
+} GXTevKColorID;
+
+typedef enum _GXTexCacheSize {
+ /* 0x0 */ GX_TEXCACHE_32K,
+ /* 0x1 */ GX_TEXCACHE_128K,
+ /* 0x2 */ GX_TEXCACHE_512K,
+ /* 0x3 */ GX_TEXCACHE_NONE,
+} GXTexCacheSize;
+
extern "C" {
f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height);
u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale);
-void GXBegin(u8, u8, u16);
-void GXLoadTexObj(_GXTexObj*, _GXTexMapID);
-void GXInitTexObjLOD(_GXTexObj*, GXTexFilter, GXTexFilter, f32, f32, f32, s32, s32, GXAnisotropy);
-void GXInitTexObj(_GXTexObj*, void*, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, s32);
-void GXInitTlutObj(_GXTlutObj*, void*, GXTlutFmt, u16);
-void GXLoadTlut(_GXTlutObj*, u32);
-void GXInitTexObjCI(_GXTexObj*, void*, u16, u16, GXCITexFmt, GXTexWrapMode, GXTexWrapMode, s32,
+void GXBegin(GXPrimitive, GXVtxFmt, u16);
+void GXLoadTexObj(GXTexObj*, GXTexMapID);
+void GXInitTexObjLOD(GXTexObj*, GXTexFilter, GXTexFilter, f32, f32, f32, GXBool, GXBool,
+ GXAnisotropy);
+void GXInitTexObj(GXTexObj*, void*, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, GXBool);
+void GXInitTlutObj(GXTlutObj*, void*, GXTlutFmt, u16);
+void GXLoadTlut(GXTlutObj*, u32);
+void GXInitTexObjCI(GXTexObj*, void*, u16, u16, GXCITexFmt, GXTexWrapMode, GXTexWrapMode, GXBool,
u32);
-
-void GXSetNumChans(u32);
-void GXSetNumTevStages(u32);
-void GXSetNumTexGens(u32);
-void GXSetTevOrder(u32, u32, u32, u32);
-void GXSetChanCtrl(u32, u32, u32, u32, u32, u32, s32);
-void GXSetTevOp(s32, s32);
-void GXSetTevColor(s32, _GXColor);
-void GXSetTevColorIn(s32, u32, u32, u32, u32);
-void GXSetTevAlphaIn(s32, u32, u32, u32, u32);
-void GXSetTevColorOp(s32, u32, u32, u32, u32, u32);
-void GXSetTevAlphaOp(s32, u32, u32, u32, u32, u32);
-void GXSetBlendMode(u32, u32, u32, u32);
-void GXSetVtxAttrFmt(u32, u32, u32, u32, u32);
+void GXSetNumChans(u8);
+void GXSetNumTevStages(u8);
+void GXSetNumTexGens(u8);
+void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID);
+void GXSetChanCtrl(GXChannelID, GXBool, GXColorSrc, GXColorSrc, GXLightID, GXDiffuseFn, GXAttnFn);
+void GXSetTevOp(GXTevStageID, GXTevMode);
+void GXSetTevColor(GXTevRegID, GXColor);
+void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg);
+void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg);
+void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID);
+void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID);
+void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp);
+void GXSetVtxAttrFmt(GXVtxFmt, GXAttr, GXCompCnt, GXCompType, u32);
void GXClearVtxDesc();
-void GXSetVtxDesc(u32, u32);
+void GXSetVtxDesc(GXAttr, GXAttrType);
typedef void (*GXDrawDoneCallback)(void);
void GXSetDrawDoneCallback(GXDrawDoneCallback);
void GXDrawDone(void);
@@ -469,48 +746,55 @@ struct OSThread;
OSThread* GXSetCurrentGXThread(void);
OSThread* GXGetCurrentGXThread(void);
-// Below needs proper symbols
-void GXClearVtxDesc(void);
-void GXCopyTex(void);
-void GXGetProjectionv(void);
-u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, s32 is_mip_map, u8 max_lod);
-void GXGetViewportv(void);
-void GXInitLightColor(void);
-void GXInitLightDir(void);
-void GXInitLightDistAttn(void);
-void GXInitLightPos(void);
-void GXInitLightSpot(void);
+void GXCopyTex(void*, GXBool);
+void GXGetProjectionv(f32*);
+u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool is_mip_map, u8 max_lod);
+void GXGetViewportv(f32*);
+void GXInitLightColor(GXLightObj*, GXColor);
+void GXInitLightDir(GXLightObj*, f32, f32, f32);
+void GXInitLightDistAttn(GXLightObj*, f32, f32, GXDistAttnFn);
+void GXInitLightPos(GXLightObj*, f32, f32, f32);
+void GXInitLightSpot(GXLightObj*, f32, GXSpotFn);
void GXInvalidateTexAll(void);
-void GXLoadLightObjImm(void);
-void GXLoadPosMtxImm(void);
-void GXLoadTexMtxImm(void);
+void GXLoadLightObjImm(GXLightObj*, GXLightID);
+void GXLoadPosMtxImm(Mtx, u32);
+void GXLoadTexMtxImm(Mtx, u32, GXTexMtxType);
void GXPixModeSync(void);
-void GXProject(void);
-void GXSetAlphaCompare(void);
-void GXSetAlphaUpdate(void);
-void GXSetChanMatColor(void);
-void GXSetClipMode(void);
-void GXSetCoPlanar(void);
-void GXSetCopyFilter(void);
-void GXSetCullMode(void);
-void GXSetCurrentMtx(void);
-void GXSetDither(void);
-void GXSetFog(void);
-void GXSetFogRangeAdj(void);
-void GXSetNumIndStages(void);
-void GXSetProjection(void);
-void GXSetScissor(void);
-void GXSetTevColorS10(void);
-void GXSetTevKAlphaSel(void);
-void GXSetTevSwapMode(void);
-void GXSetTevSwapModeTable(void);
-void GXSetTexCoordGen2(void);
-void GXSetTexCopyDst(void);
-void GXSetTexCopySrc(void);
-void GXSetViewport(void);
-void GXSetZCompLoc(void);
-void GXSetZMode(void);
-void GXSetZTexture(void);
+void GXProject(f32, f32, f32, Mtx, f32*, f32*, f32*, f32*, f32*);
+void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8);
+void GXSetAlphaUpdate(GXBool);
+void GXSetChanMatColor(GXChannelID, GXColor);
+void GXSetClipMode(GXBool);
+void GXSetCoPlanar(GXBool);
+void GXSetCopyFilter(GXBool, u8[12][2], GXBool, u8[7]);
+void GXSetCullMode(GXCullMode);
+void GXSetCurrentMtx(u32);
+void GXSetDither(GXBool);
+void GXSetFog(GXFogType, f32, f32, f32, f32, GXColor);
+void GXSetFogRangeAdj(GXBool, u16, GXFogAdjTable*);
+void GXSetNumIndStages(u8);
+void GXSetProjection(Mtx44, GXProjectionType);
+void GXSetScissor(u32, u32, u32, u32);
+void GXSetTevColorS10(GXTevRegID, GXColorS10);
+void GXSetTevKAlphaSel(GXTevStageID, GXTevKAlphaSel);
+void GXSetTevSwapMode(GXTevStageID, GXTevSwapSel);
+void GXSetTevSwapModeTable(GXTevSwapSel, GXTevColor, GXTevColor, GXTevColor, GXTevColor);
+void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u32, GXBool, u32);
+void GXSetTexCopyDst(u16, u16, GXTexFmt, GXBool);
+void GXSetTexCopySrc(u16, u16, u16, u16);
+void GXSetViewport(f32, f32, f32, f32, f32, f32);
+void GXSetZCompLoc(GXBool);
+void GXSetZMode(GXBool, GXCompare, GXBool);
+void GXSetZTexture(GXZTexOp, GXZTexFmt, u32);
+void GXClearVtxDesc(void);
+void GXSetLineWidth(u8, GXTexOffset);
+void GXSetTevDirect(GXTevStageID);
+void GXSetTevKColor(GXTevKColorID, GXColor);
+void GXSetTevKColorSel(GXTevStageID, GXTevKColorSel);
+void GXGetScissor(u32*, u32*, u32*, u32*);
+void GXSetIndTexMtx(GXIndTexMtxID, Mtx23, s8);
+void GXSetIndTexCoordScale(GXIndTexStageID, GXIndTexScale, GXIndTexScale);
+void GXSetIndTexOrder(GXIndTexStageID, GXTexCoordID, GXTexMapID);
};
#endif \ No newline at end of file
diff --git a/include/dolphin/gx/GXTexture.h b/include/dolphin/gx/GXTexture.h
index 1823855bf1..2f2bbfb6e0 100644
--- a/include/dolphin/gx/GXTexture.h
+++ b/include/dolphin/gx/GXTexture.h
@@ -3,18 +3,4 @@
#include "dolphin/types.h"
-typedef struct _GXColor {
- u8 r;
- u8 g;
- u8 b;
- u8 a;
-} GXColor;
-
-typedef struct _GXColorS10 {
- s16 r;
- s16 g;
- s16 b;
- s16 a;
-} GXColorS10;
-
#endif /* GXTEXTURE_H */
diff --git a/include/msl_c/string.h b/include/msl_c/string.h
deleted file mode 100644
index 902f205f09..0000000000
--- a/include/msl_c/string.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef MSL_STRING_H_
-#define MSL_STRING_H_
-
-#include "Runtime.PPCEABI.H/__va_arg.h"
-#include "dolphin/types.h"
-
-// TODO: move to MSL_C.PPCEABI.bare.H/
-extern "C" {
-void memcpy(void*, const void*, s32);
-void* memset(void* dest, int ch, u32 count);
-char* strrchr(const char* s, int c);
-char* strchr(const char* s, int c);
-int strncmp(const char* s1, const char* s2, u32 n);
-int strcmp(const char* s1, const char* s2);
-int stricmp(const char*, const char*);
-char* strcat(char* dest, const char* source);
-char* strncpy(char* dest, const char* source, u32 n);
-char* strcpy(char* dest, const char* source);
-u32 strlen(const char* s);
-int tolower(int);
-int sprintf(char*, const char*, ...);
-int printf(const char*, ...);
-int snprintf(char*, u32, const char*, ...);
-size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, va_list args);
-}
-
-#endif \ No newline at end of file