diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h index 5d43cdd324d..41e7f7f92c2 100644 --- a/include/JSystem/J2DGraph/J2DAnimation.h +++ b/include/JSystem/J2DGraph/J2DAnimation.h @@ -1,80 +1,13 @@ #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" -struct J3DTransformInfo; -struct J3DTextureSRTInfo; class J2DScreen; -struct J2DAnmVtxColorKey { - /* 8030B704 */ void getColor(u8, u16, _GXColor*) const; - /* 8030CC20 */ ~J2DAnmVtxColorKey(); -}; - -struct J2DAnmVtxColorFull { - /* 8030B4C4 */ void getColor(u8, u16, _GXColor*) const; - /* 8030CC8C */ ~J2DAnmVtxColorFull(); -}; - -struct J2DAnmVisibilityFull { - /* 8030C048 */ void getVisibility(u16, u8*) const; -}; - -struct J2DAnmTransformKey { - /* 801959C0 */ ~J2DAnmTransformKey(); - /* 8030AAFC */ void calcTransform(f32, u16, J3DTransformInfo*) const; - /* 8030CD7C */ void getTransform(u16, J3DTransformInfo*) const; -}; - -struct J2DAnmTransformFull { - /* 8030A590 */ void getTransform(u16, J3DTransformInfo*) const; - /* 8030CDAC */ ~J2DAnmTransformFull(); -}; - -struct J2DAnmTextureSRTKey { - /* 80184274 */ ~J2DAnmTextureSRTKey(); - /* 8030B9F0 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const; - /* 8030BC60 */ void searchUpdateMaterialID(J2DScreen*); -}; - -struct J2DAnmTexPattern { - struct J2DAnmTexPatternTIMGPointer { - /* 8030CB2C */ J2DAnmTexPatternTIMGPointer(); - /* 8030CB3C */ ~J2DAnmTexPatternTIMGPointer(); - }; - - /* 8030BD10 */ void searchUpdateMaterialID(J2DScreen*); - /* 8030BEE8 */ void getTexNo(u16, u16*) const; - /* 8030BF9C */ void getResTIMG(u16) const; - /* 8030BFF0 */ void getPalette(u16) const; - /* 8030CB90 */ ~J2DAnmTexPattern(); -}; - -struct J2DAnmTevRegKey { - /* 801841EC */ ~J2DAnmTevRegKey(); - /* 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(); -}; - -struct J2DAnmColor { - /* 801842FC */ ~J2DAnmColor(); - /* 802EB390 */ void getColor(u16, _GXColor*) const; - /* 8030AF24 */ void searchUpdateMaterialID(J2DScreen*); -}; - class J2DAnmBase { public: /* 80053C94 */ virtual ~J2DAnmBase(); @@ -88,11 +21,230 @@ private: /* 0x4 */ u8 field_0x4[2]; /* 0x6 */ s16 mFrameMax; /* 0x8 */ f32 mFrame; - /* 0xC */ int mKind; + /* 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 J2DAnmVtxColorKey : public J2DAnmVtxColor { + /* 8030CC20 */ virtual ~J2DAnmVtxColorKey(); + /* 8030B704 */ virtual void getColor(u8, u16, _GXColor*) const; + +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; + +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; + +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 J2DAnmVtxColor {}; +class J2DAnmTransformFull : public J2DAnmTransform { +public: + /* 8030CDAC */ virtual ~J2DAnmTransformFull(); + /* 8030A590 */ virtual void getTransform(u16, J3DTransformInfo*) const; -struct J2DAnmTransform {}; +private: + /* 0x1C */ u8 field_0x1c[6]; + /* 0x22 */ u16 field_0x22; + /* 0x24 */ void* field_0x24; +}; + +class J2DAnmTextureSRTKey : public J2DAnmBase { +public: + /* 8030B9F0 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const; + + /* 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; +}; + +class J2DAnmTexPattern : public J2DAnmBase { +public: + struct J2DAnmTexPatternTIMGPointer { + /* 8030CB2C */ J2DAnmTexPatternTIMGPointer(); + /* 8030CB3C */ ~J2DAnmTexPatternTIMGPointer(); + + /* 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 */ 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; +}; + +class J2DAnmTevRegKey : public J2DAnmBase { +public: + /* 8030C0F0 */ void getTevColorReg(u16, _GXColorS10*) const; + /* 8030C3B4 */ void getTevKonstReg(u16, _GXColor*) const; + + /* 801841EC */ virtual ~J2DAnmTevRegKey(); + /* 8030C678 */ virtual 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 J2DAnmColor : public J2DAnmBase { +public: + /* 801842FC */ virtual ~J2DAnmColor(); + /* 8030AF24 */ virtual void searchUpdateMaterialID(J2DScreen*); + /* 802EB390 */ virtual void getColor(u16, _GXColor*) const; + +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: + /* 0x30 */ int field_0x30; + /* 0x34 */ int field_0x34; + /* 0x38 */ int field_0x38; + /* 0x3C */ int field_0x3c; + /* 0x40 */ int field_0x40; +}; + +class J2DAnmColorFull : public J2DAnmColor { +public: + /* 8030CCF8 */ virtual ~J2DAnmColorFull(); + /* 8030AFC8 */ virtual void getColor(u16, _GXColor*) const; + +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 50facee3c46..0c2f69d0079 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 3286f66423b..0333028fb56 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 065484c2089..baaee0fd61b 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 81d080a0f91..e66d8f9bddb 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 00284b80457..3b830930154 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 const&, JGeometry::TBox2 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 b4b219dadf3..7d92ef4caea 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 aa1f85cb8fa..1019ffcb7e7 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 c958db65182..38e8ff0746b 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 262c2486a9d..e5f7e29f8ad 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 const&, JGeometry::TBox2 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 const&); + /* 80302164 */ virtual void draw(JGeometry::TBox2 const&, JGeometry::TBox2 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 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 bff2b307aee..e0b78ce0356 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 c62fa07850e..589571f3fb7 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 a9ba9f82f49..ce4ab4b4e53 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 b5b91f41360..75a181eab4d 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 5de6c98ae66..dd9ab27cf51 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 473f28778eb..0cd2354d928 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 fa5cd0377cb..f59c75d8201 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 9a30c9db616..38c7f3e7ea4 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 0065c46df8d..dff6740eedd 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 9253e3b623c..dffffcdc5bf 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 85857442e73..4a35b1fc32f 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 cf0cdeef5d0..96baf9dc299 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 9fd2cd31212..0ca3cc2d5fc 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_NRM_NBT = 1, - /* 0x1 */ GX_CLR_RGBA = 1, /* 0x1 */ GX_POS_XYZ = 1, - /* 0x2 */ GX_NRM_NBT3, + /* 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, + /* 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; +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, -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; -}; - -struct _GXTlutObj { - u32 format; - u32 address; - u32 numEntries; -}; - -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 -} 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 + /* 0x10 */ _GX_TF_ZTF = 0x10, + /* 0x20 */ _GX_TF_CTF = 0x20 } 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 _GXTlutFmt { + /* 0x0 */ GX_TL_IA8, + /* 0x1 */ GX_TL_RGB565, + /* 0x2 */ GX_TL_RGB5A3, +} GXTlutFmt; -typedef enum GXTexWrapMode { - _GX_CLAMP, - _GX_REPEAT, - _GX_MIRROR, +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 _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 1823855bf1d..2f2bbfb6e04 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 902f205f09f..00000000000 --- 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 diff --git a/libs/JSystem/J2DGraph/J2DAnimation.cpp b/libs/JSystem/J2DGraph/J2DAnimation.cpp index d1d2613923e..ac8f49ae3e3 100644 --- a/libs/JSystem/J2DGraph/J2DAnimation.cpp +++ b/libs/JSystem/J2DGraph/J2DAnimation.cpp @@ -11,27 +11,12 @@ // Types: // -struct _GXTlutFmt {}; - -struct _GXTlut {}; - -struct JUTTransparency {}; - struct JKRArchive {}; struct JUTResReference { /* 802DE120 */ void getResource(void const*, u32, JKRArchive*); }; -struct JUTPalette { - /* 802DE91C */ void storeTLUT(_GXTlut, _GXTlutFmt, JUTTransparency, u16, void*); -}; - -struct JUTNameTab { - /* 802DEA58 */ void getIndex(char const*) const; - /* 802DEAF8 */ void getName(u16) const; -}; - struct J3DTransformInfo {}; struct J3DTextureSRTInfo {}; @@ -406,7 +391,8 @@ SECTION_DATA extern void* __vt__16J2DAnmTexPattern[4] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTexPattern::~J2DAnmTexPattern() { +extern "C" asm void __dt__16J2DAnmTexPatternFv() { + // asm J2DAnmTexPattern::~J2DAnmTexPattern() { nofralloc #include "asm/JSystem/J2DGraph/J2DAnimation/__dt__16J2DAnmTexPatternFv.s" } @@ -434,7 +420,8 @@ SECTION_DATA extern void* __vt__17J2DAnmVtxColorKey[5] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmVtxColorKey::~J2DAnmVtxColorKey() { +extern "C" asm void __dt__17J2DAnmVtxColorKeyFv() { + // asm J2DAnmVtxColorKey::~J2DAnmVtxColorKey() { nofralloc #include "asm/JSystem/J2DGraph/J2DAnimation/__dt__17J2DAnmVtxColorKeyFv.s" } @@ -454,7 +441,8 @@ SECTION_DATA extern void* __vt__18J2DAnmVtxColorFull[5] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmVtxColorFull::~J2DAnmVtxColorFull() { +extern "C" asm void __dt__18J2DAnmVtxColorFullFv() { + // asm J2DAnmVtxColorFull::~J2DAnmVtxColorFull() { nofralloc #include "asm/JSystem/J2DGraph/J2DAnimation/__dt__18J2DAnmVtxColorFullFv.s" } @@ -492,7 +480,8 @@ SECTION_DATA extern void* __vt__11J2DAnmColor[5] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmColorFull::~J2DAnmColorFull() { +extern "C" asm void __dt__15J2DAnmColorFullFv() { + // asm J2DAnmColorFull::~J2DAnmColorFull() { nofralloc #include "asm/JSystem/J2DGraph/J2DAnimation/__dt__15J2DAnmColorFullFv.s" } @@ -533,7 +522,8 @@ SECTION_DATA extern void* __vt__19J2DAnmTransformFull[5] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTransformFull::~J2DAnmTransformFull() { +extern "C" asm void __dt__19J2DAnmTransformFullFv() { + // asm J2DAnmTransformFull::~J2DAnmTransformFull() { nofralloc #include "asm/JSystem/J2DGraph/J2DAnimation/__dt__19J2DAnmTransformFullFv.s" } diff --git a/libs/JSystem/J2DGraph/J2DAnmLoader.cpp b/libs/JSystem/J2DGraph/J2DAnmLoader.cpp index c62697b5707..fb82f433efd 100644 --- a/libs/JSystem/J2DGraph/J2DAnmLoader.cpp +++ b/libs/JSystem/J2DGraph/J2DAnmLoader.cpp @@ -4,6 +4,7 @@ // #include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/J2DGraph/J2DAnimation.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,15 +12,6 @@ // Types: // -struct _GXColor {}; - -struct ResNTAB {}; - -struct JUTNameTab { - /* 802DE9A0 */ JUTNameTab(); - /* 802DEA1C */ void setResource(ResNTAB const*); -}; - struct J3DAnmVtxColorKeyData {}; struct J3DAnmVtxColorFullData {}; @@ -42,79 +34,6 @@ struct J3DAnmColorFullData {}; struct J2DScreen {}; -struct J2DAnmVtxColorKey {}; - -struct J2DAnmVtxColorFull {}; - -struct J2DAnmVtxColor { - /* 8030363C */ void getColor(u8, u16, _GXColor*) const; - /* 8030A358 */ ~J2DAnmVtxColor(); -}; - -struct J2DAnmVisibilityFull { - /* 8030A3B4 */ ~J2DAnmVisibilityFull(); -}; - -struct J2DAnmTransformKey {}; - -struct J2DAnmTransformFull {}; - -struct J2DAnmTextureSRTKey {}; - -struct J2DAnmTexPattern {}; - -struct J2DAnmTevRegKey {}; - -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - -struct J2DAnmLoader { - /* 8030A410 */ ~J2DAnmLoader(); -}; - -struct J2DAnmBase { - /* 800569B0 */ void searchUpdateMaterialID(J2DScreen*); -}; - -struct J2DAnmColorKey {}; - -struct J2DAnmKeyLoader_v15 { - /* 80309290 */ J2DAnmKeyLoader_v15(); - /* 803092AC */ ~J2DAnmKeyLoader_v15(); - /* 80309308 */ void load(void const*); - /* 80309414 */ void setResource(J2DAnmBase*, void const*); - /* 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*); -}; - -struct J2DAnmColorFull {}; - -struct J2DAnmFullLoader_v15 { - /* 80309A80 */ void load(void const*); - /* 80309B8C */ void setResource(J2DAnmBase*, void const*); - /* 80309CE8 */ J2DAnmFullLoader_v15(); - /* 80309D04 */ ~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*); -}; - // // Forward References: // @@ -288,7 +207,8 @@ asm J2DAnmKeyLoader_v15::~J2DAnmKeyLoader_v15() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DAnmKeyLoader_v15::load(void const* param_0) { +extern "C" asm void load__19J2DAnmKeyLoader_v15FPCv() { + // asm void J2DAnmKeyLoader_v15::load(void const* param_0) { nofralloc #include "asm/JSystem/J2DGraph/J2DAnmLoader/load__19J2DAnmKeyLoader_v15FPCv.s" } @@ -401,7 +321,8 @@ asm void J2DAnmKeyLoader_v15::setAnmVtxColor(J2DAnmVtxColorKey* param_0, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DAnmFullLoader_v15::load(void const* param_0) { +extern "C" asm void load__20J2DAnmFullLoader_v15FPCv() { + // asm void J2DAnmFullLoader_v15::load(void const* param_0) { nofralloc #include "asm/JSystem/J2DGraph/J2DAnmLoader/load__20J2DAnmFullLoader_v15FPCv.s" } diff --git a/libs/JSystem/J2DGraph/J2DGrafContext.cpp b/libs/JSystem/J2DGraph/J2DGrafContext.cpp index 17337771f0f..a0fbd8c047f 100644 --- a/libs/JSystem/J2DGraph/J2DGrafContext.cpp +++ b/libs/JSystem/J2DGraph/J2DGrafContext.cpp @@ -34,30 +34,6 @@ extern "C" void setLookat__14J2DGrafContextFv(); // extern "C" void __dl__FPv(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXBegin(); -extern "C" void GXSetLineWidth(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevOp(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXLoadTexMtxImm(); -extern "C" void GXSetViewport(f32, f32, f32, f32, f32, f32); -extern "C" void GXSetScissor(); extern "C" void __cvt_fp2unsigned(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); diff --git a/libs/JSystem/J2DGraph/J2DMatBlock.cpp b/libs/JSystem/J2DGraph/J2DMatBlock.cpp index 2b2cc00b48c..8626f2f6566 100644 --- a/libs/JSystem/J2DGraph/J2DMatBlock.cpp +++ b/libs/JSystem/J2DGraph/J2DMatBlock.cpp @@ -7,415 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXTlut {}; - -struct _GXTexMapID {}; - -struct ResTLUT {}; - -struct ResTIMG {}; - -struct ResFONT {}; - -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - -struct JUTPalette { - /* 802DE890 */ void storeTLUT(_GXTlut, ResTLUT*); -}; - -struct JUTTexture { - /* 802DE234 */ ~JUTTexture(); - /* 802DE2A8 */ void storeTIMG(ResTIMG const*, u8); - /* 802DE44C */ void storeTIMG(ResTIMG const*, JUTPalette*); - /* 802DE5B0 */ void attachPalette(JUTPalette*); - /* 802DE840 */ void load(_GXTexMapID); -}; - -struct JKRHeap {}; - -struct JUTResFont { - /* 802DEF94 */ JUTResFont(ResFONT const*, JKRHeap*); -}; - -struct JUTFont {}; - -struct J2DTexMtx { - /* 802E9C90 */ void load(u32); - /* 802E9CC4 */ void calc(); -}; - -struct J2DTexGenBlock { - /* 802EB510 */ void initialize(); - /* 802EB570 */ void setGX(); - /* 802EB620 */ ~J2DTexGenBlock(); - /* 802EB6A4 */ void setTexMtx(u32, J2DTexMtx&); - /* 802EB7E0 */ void getTexMtx(u32, J2DTexMtx&); -}; - -struct J2DTevSwapModeTable { - /* 802F1934 */ J2DTevSwapModeTable(); -}; - -struct J2DTevSwapModeInfo {}; - -struct J2DTevStageInfo {}; - -struct J2DTevStage { - /* 802F1940 */ J2DTevStage(); - /* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&); -}; - -struct J2DTevOrder { - /* 802F1B70 */ J2DTevOrder(); -}; - -struct J2DIndTevStage { - /* 802EA044 */ void load(u8); - /* 802F18A0 */ J2DIndTevStage(); -}; - -struct J2DGXColorS10 { - /* 802F1B90 */ J2DGXColorS10(); -}; - -struct J2DTevBlock8 { - /* 802EED64 */ J2DTevBlock8(); - /* 802EEE8C */ ~J2DTevBlock8(); - /* 802EEF6C */ void initialize(); - /* 802EF1E0 */ void prepareTexture(u8); - /* 802EF2B0 */ void insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802F21C4 */ void insertTexture(u32, ResTIMG const*); - /* 802EF67C */ void insertTexture(u32, JUTTexture*); - /* 802EF80C */ void setTexture(u32, ResTIMG const*); - /* 802EFA98 */ void setTexture(u32, JUTTexture*); - /* 802EFB48 */ void removeTexture(u32); - /* 802EFC40 */ void setFont(ResFONT*); - /* 802EFCEC */ void setFont(JUTFont*); - /* 802EFD68 */ void setPalette(u32, ResTLUT const*); - /* 802EFE40 */ void shiftDeleteFlag(u8, bool); - /* 802EFEAC */ void setGX(); - /* 802F019C */ void loadTexture(_GXTexMapID, u32); - /* 802F1FB8 */ void getType(); - /* 802F1FC4 */ s32 getMaxStage(); - /* 802F1FCC */ void setTexNo(u32, u16); - /* 802F1FDC */ void getTexNo(u32) const; - /* 802F1FEC */ void setFontNo(u16); - /* 802F1FF4 */ void getFontNo() const; - /* 802F1FFC */ void setTevOrder(u32, J2DTevOrder); - /* 802F2020 */ void getTevOrder(u32); - /* 802F2034 */ void setTevColor(u32, J2DGXColorS10); - /* 802F2060 */ void getTevColor(u32); - /* 802F2074 */ void setTevKColor(u32, JUtility::TColor); - /* 802F20A0 */ void getTevKColor(u32); - /* 802F20B4 */ void setTevKColorSel(u32, u8); - /* 802F20C0 */ void getTevKColorSel(u32); - /* 802F20CC */ void setTevKAlphaSel(u32, u8); - /* 802F20D8 */ void getTevKAlphaSel(u32); - /* 802F20E4 */ void setTevStageNum(u8); - /* 802F20EC */ void getTevStageNum() const; - /* 802F20F4 */ void setTevStage(u32, J2DTevStage); - /* 802F2130 */ void getTevStage(u32); - /* 802F2144 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F217C */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F218C */ void getTevSwapModeTable(u32); - /* 802F219C */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F21B0 */ void getIndTevStage(u32); - /* 802F21F4 */ void getTexture(u32); - /* 802F2214 */ void getPalette(u32); - /* 802F2234 */ void getFont(); - /* 802F223C */ void setUndeleteFlag(u8); - /* 802F224C */ void setFontUndeleteFlag(); -}; - -struct J2DTevBlock4 { - /* 802ED8BC */ J2DTevBlock4(); - /* 802ED9E4 */ ~J2DTevBlock4(); - /* 802EDAC4 */ void initialize(); - /* 802EDD34 */ void prepareTexture(u8); - /* 802EDE04 */ void insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802EE1D4 */ void insertTexture(u32, JUTTexture*); - /* 802F2464 */ void insertTexture(u32, ResTIMG const*); - /* 802EE364 */ void setTexture(u32, ResTIMG const*); - /* 802EE5F0 */ void setTexture(u32, JUTTexture*); - /* 802EE6A0 */ void removeTexture(u32); - /* 802EE798 */ void setFont(ResFONT*); - /* 802EE84C */ void setFont(JUTFont*); - /* 802EE8CC */ void setPalette(u32, ResTLUT const*); - /* 802EE9A4 */ void shiftDeleteFlag(u8, bool); - /* 802EEA2C */ void setGX(); - /* 802EED1C */ void loadTexture(_GXTexMapID, u32); - /* 802F2258 */ void getType(); - /* 802F2264 */ s32 getMaxStage(); - /* 802F226C */ void setTexNo(u32, u16); - /* 802F227C */ void getTexNo(u32) const; - /* 802F228C */ void setFontNo(u16); - /* 802F2294 */ void getFontNo() const; - /* 802F229C */ void setTevOrder(u32, J2DTevOrder); - /* 802F22C0 */ void getTevOrder(u32); - /* 802F22D4 */ void setTevColor(u32, J2DGXColorS10); - /* 802F2300 */ void getTevColor(u32); - /* 802F2314 */ void setTevKColor(u32, JUtility::TColor); - /* 802F2340 */ void getTevKColor(u32); - /* 802F2354 */ void setTevKColorSel(u32, u8); - /* 802F2360 */ void getTevKColorSel(u32); - /* 802F236C */ void setTevKAlphaSel(u32, u8); - /* 802F2378 */ void getTevKAlphaSel(u32); - /* 802F2384 */ void setTevStageNum(u8); - /* 802F238C */ void getTevStageNum() const; - /* 802F2394 */ void setTevStage(u32, J2DTevStage); - /* 802F23D0 */ void getTevStage(u32); - /* 802F23E4 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F241C */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F242C */ void getTevSwapModeTable(u32); - /* 802F243C */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F2450 */ void getIndTevStage(u32); - /* 802F2494 */ void getTexture(u32); - /* 802F24B4 */ void getPalette(u32); - /* 802F24D4 */ void getFont(); - /* 802F24DC */ void setUndeleteFlag(u8); - /* 802F24EC */ void setFontUndeleteFlag(); -}; - -struct J2DTevBlock2 { - /* 802EC5B8 */ J2DTevBlock2(); - /* 802EC6C8 */ ~J2DTevBlock2(); - /* 802EC7A0 */ void initialize(); - /* 802ECA18 */ void prepareTexture(u8); - /* 802F2708 */ void insertTexture(u32, ResTIMG const*); - /* 802ECAE8 */ void insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802ECDE8 */ void insertTexture(u32, JUTTexture*); - /* 802ECF48 */ void setTexture(u32, ResTIMG const*); - /* 802ED16C */ void setTexture(u32, JUTTexture*); - /* 802ED21C */ void removeTexture(u32); - /* 802ED3A4 */ void setFont(JUTFont*); - /* 802ED2F0 */ void setFont(ResFONT*); - /* 802ED424 */ void setPalette(u32, ResTLUT const*); - /* 802ED4FC */ void shiftDeleteFlag(u8, bool); - /* 802ED584 */ void setGX(); - /* 802ED874 */ void loadTexture(_GXTexMapID, u32); - /* 802F24FC */ void getType(); - /* 802F2508 */ s32 getMaxStage(); - /* 802F2510 */ void setTexNo(u32, u16); - /* 802F2520 */ void getTexNo(u32) const; - /* 802F2530 */ void setFontNo(u16); - /* 802F2538 */ void getFontNo() const; - /* 802F2540 */ void setTevOrder(u32, J2DTevOrder); - /* 802F2564 */ void getTevOrder(u32); - /* 802F2578 */ void setTevColor(u32, J2DGXColorS10); - /* 802F25A4 */ void getTevColor(u32); - /* 802F25B8 */ void setTevKColor(u32, JUtility::TColor); - /* 802F25E4 */ void getTevKColor(u32); - /* 802F25F8 */ void setTevKColorSel(u32, u8); - /* 802F2604 */ void getTevKColorSel(u32); - /* 802F2610 */ void setTevKAlphaSel(u32, u8); - /* 802F261C */ void getTevKAlphaSel(u32); - /* 802F2628 */ void setTevStageNum(u8); - /* 802F2630 */ void getTevStageNum() const; - /* 802F2638 */ void setTevStage(u32, J2DTevStage); - /* 802F2674 */ void getTevStage(u32); - /* 802F2688 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F26C0 */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F26D0 */ void getTevSwapModeTable(u32); - /* 802F26E0 */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F26F4 */ void getIndTevStage(u32); - /* 802F2738 */ void getTexture(u32); - /* 802F2758 */ void getPalette(u32); - /* 802F2778 */ void getFont(); - /* 802F2780 */ void setUndeleteFlag(u8); - /* 802F2790 */ void setFontUndeleteFlag(); -}; - -struct J2DTevBlock16 { - /* 802F01E4 */ J2DTevBlock16(); - /* 802F030C */ ~J2DTevBlock16(); - /* 802F03EC */ void initialize(); - /* 802F0660 */ void prepareTexture(u8); - /* 802F1F24 */ void insertTexture(u32, ResTIMG const*); - /* 802F0730 */ void insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802F0AFC */ void insertTexture(u32, JUTTexture*); - /* 802F0C8C */ void setTexture(u32, ResTIMG const*); - /* 802F0F18 */ void setTexture(u32, JUTTexture*); - /* 802F0FC8 */ void removeTexture(u32); - /* 802F10C0 */ void setFont(ResFONT*); - /* 802F116C */ void setFont(JUTFont*); - /* 802F11E8 */ void setPalette(u32, ResTLUT const*); - /* 802F12C0 */ void shiftDeleteFlag(u8, bool); - /* 802F132C */ void setGX(); - /* 802F161C */ void loadTexture(_GXTexMapID, u32); - /* 802F1D18 */ void getType(); - /* 802F1D24 */ s32 getMaxStage(); - /* 802F1D2C */ void setTexNo(u32, u16); - /* 802F1D3C */ void getTexNo(u32) const; - /* 802F1D4C */ void setFontNo(u16); - /* 802F1D54 */ void getFontNo() const; - /* 802F1D5C */ void setTevOrder(u32, J2DTevOrder); - /* 802F1D80 */ void getTevOrder(u32); - /* 802F1D94 */ void setTevColor(u32, J2DGXColorS10); - /* 802F1DC0 */ void getTevColor(u32); - /* 802F1DD4 */ void setTevKColor(u32, JUtility::TColor); - /* 802F1E00 */ void getTevKColor(u32); - /* 802F1E14 */ void setTevKColorSel(u32, u8); - /* 802F1E20 */ void getTevKColorSel(u32); - /* 802F1E2C */ void setTevKAlphaSel(u32, u8); - /* 802F1E38 */ void getTevKAlphaSel(u32); - /* 802F1E44 */ void setTevStageNum(u8); - /* 802F1E4C */ void getTevStageNum() const; - /* 802F1E54 */ void setTevStage(u32, J2DTevStage); - /* 802F1E90 */ void getTevStage(u32); - /* 802F1EA4 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F1EDC */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F1EEC */ void getTevSwapModeTable(u32); - /* 802F1EFC */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F1F10 */ void getIndTevStage(u32); - /* 802F1F54 */ void getTexture(u32); - /* 802F1F74 */ void getPalette(u32); - /* 802F1F94 */ void getFont(); - /* 802F1F9C */ void setUndeleteFlag(u8); - /* 802F1FAC */ void setFontUndeleteFlag(); -}; - -struct J2DTevBlock1 { - /* 802EB88C */ J2DTevBlock1(); - /* 802EB998 */ ~J2DTevBlock1(); - /* 802EBA50 */ void initialize(); - /* 802EBC0C */ void prepareTexture(u8); - /* 802F29A8 */ void insertTexture(u32, ResTIMG const*); - /* 802EBCC0 */ void insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802EBDE4 */ void insertTexture(u32, JUTTexture*); - /* 802EBE8C */ void setTexture(u32, ResTIMG const*); - /* 802EC01C */ void setTexture(u32, JUTTexture*); - /* 802EC0A8 */ void removeTexture(u32); - /* 802EC124 */ void setFont(ResFONT*); - /* 802EC1D8 */ void setFont(JUTFont*); - /* 802EC258 */ void setPalette(u32, ResTLUT const*); - /* 802EC318 */ void shiftDeleteFlag(u8, bool); - /* 802EC328 */ void setGX(); - /* 802EC570 */ void loadTexture(_GXTexMapID, u32); - /* 802F27A0 */ void getType(); - /* 802F27AC */ bool getMaxStage(); - /* 802F27B4 */ void setTexNo(u32, u16); - /* 802F27C4 */ void getTexNo(u32) const; - /* 802F27D4 */ void setFontNo(u16); - /* 802F27DC */ void getFontNo() const; - /* 802F27E4 */ void setTevOrder(u32, J2DTevOrder); - /* 802F2808 */ void getTevOrder(u32); - /* 802F281C */ void setTevColor(u32, J2DGXColorS10); - /* 802F2848 */ void getTevColor(u32); - /* 802F285C */ void setTevKColor(u32, JUtility::TColor); - /* 802F2888 */ void getTevKColor(u32); - /* 802F289C */ void setTevKColorSel(u32, u8); - /* 802F28A8 */ void getTevKColorSel(u32); - /* 802F28B4 */ void setTevKAlphaSel(u32, u8); - /* 802F28C0 */ void getTevKAlphaSel(u32); - /* 802F28CC */ void setTevStageNum(u8); - /* 802F28D0 */ bool getTevStageNum() const; - /* 802F28D8 */ void setTevStage(u32, J2DTevStage); - /* 802F2914 */ void getTevStage(u32); - /* 802F2928 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F2960 */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F2970 */ void getTevSwapModeTable(u32); - /* 802F2980 */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F2994 */ void getIndTevStage(u32); - /* 802F29D8 */ void getTexture(u32); - /* 802F29F8 */ void getPalette(u32); - /* 802F2A18 */ void getFont(); - /* 802F2A20 */ void setUndeleteFlag(u8); - /* 802F2A30 */ void setFontUndeleteFlag(); -}; - -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 */ void getFontNo() const; - /* 802EA170 */ void getTexNo(u32) const; - /* 802EA17C */ bool getTevStageNum() const; - /* 802EA184 */ bool getIndTevStage(u32); - /* 802EB184 */ ~J2DTevBlock(); - /* 802EB1D0 */ void setGX(); - /* 802EB1D4 */ void setTevKColor(u32, JUtility::TColor); - /* 802EB1D8 */ void setTevColor(u32, J2DGXColorS10); - /* 802EB1DC */ void setTexNo(u32, u16); - /* 802EB87C */ bool getTexture(u32); - /* 802EB884 */ bool getPalette(u32); - /* 802F2A40 */ void initialize(); - /* 802F2A44 */ void loadTexture(_GXTexMapID, u32); - /* 802F2A48 */ void setFontNo(u16); - /* 802F2A4C */ void setTevOrder(u32, J2DTevOrder); - /* 802F2A50 */ void setTevKColorSel(u32, u8); - /* 802F2A54 */ void setTevKAlphaSel(u32, u8); - /* 802F2A58 */ void setTevStageNum(u8); - /* 802F2A5C */ void setTevStage(u32, J2DTevStage); - /* 802F2A60 */ void setTevSwapModeInfo(u32, J2DTevSwapModeInfo); - /* 802F2A64 */ void setTevSwapModeTable(u32, J2DTevSwapModeTable); - /* 802F2A68 */ void setIndTevStage(u32, J2DIndTevStage); - /* 802F2A6C */ bool insertTexture(u32, JUTTexture*); - /* 802F2A74 */ bool insertTexture(u32, ResTIMG const*, JUTPalette*); - /* 802F2A7C */ bool insertTexture(u32, ResTIMG const*); - /* 802F2A84 */ bool setTexture(u32, JUTTexture*); - /* 802F2A8C */ bool setTexture(u32, ResTIMG const*); - /* 802F2A94 */ bool removeTexture(u32); - /* 802F2A9C */ bool setFont(JUTFont*); - /* 802F2AA4 */ bool setFont(ResFONT*); - /* 802F2AAC */ bool setPalette(u32, ResTLUT const*); - /* 802F2AB4 */ bool prepareTexture(u8); - /* 802F2ABC */ bool getFont(); - /* 802F2AC4 */ void shiftDeleteFlag(u8, bool); - /* 802F2AC8 */ void setUndeleteFlag(u8); - /* 802F2ACC */ void setFontUndeleteFlag(); -}; - -struct J2DPEBlock { - /* 802F17FC */ void initialize(); - /* 802F1840 */ void setGX(); -}; - -struct J2DIndTexOrder { - /* 802EA0FC */ void load(u8); -}; - -struct J2DIndTexMtx { - /* 802EA098 */ void load(u8); - /* 802EB2E4 */ ~J2DIndTexMtx(); -}; - -struct J2DIndTexCoordScale { - /* 802EA0CC */ void load(u8); - /* 802EB290 */ ~J2DIndTexCoordScale(); -}; - -struct J2DIndBlockFull { - /* 802F1664 */ void initialize(); - /* 802F1730 */ void setGX(); - /* 802F1B94 */ void getType(); - /* 802F1BA0 */ void setIndTexStageNum(u8); - /* 802F1BA8 */ void getIndTexStageNum() const; - /* 802F1BB0 */ void setIndTexOrder(u32, J2DIndTexOrder); - /* 802F1BCC */ void getIndTexOrder(u32); - /* 802F1BE0 */ void setIndTexMtx(u32, J2DIndTexMtx); - /* 802F1C38 */ void getIndTexMtx(u32); - /* 802F1C4C */ void setIndTexCoordScale(u32, J2DIndTexCoordScale); - /* 802F1C68 */ void getIndTexCoordScale(u32); - /* 802F1C7C */ ~J2DIndBlockFull(); -}; - -struct J2DColorBlock { - /* 802EB394 */ void initialize(); - /* 802EB424 */ void setGX(); -}; - // // Forward References: // @@ -743,28 +334,6 @@ extern "C" void setTevColor__11J2DTevBlockFUl13J2DGXColorS10(); extern "C" void setTexNo__11J2DTevBlockFUlUs(); extern "C" void __dt__19J2DIndTexCoordScaleFv(); extern "C" void __dt__12J2DIndTexMtxFv(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColorS10(); -extern "C" void GXSetTevKColor(); -extern "C" void GXSetTevKColorSel(); -extern "C" void GXSetTevKAlphaSel(); -extern "C" void GXSetTevSwapMode(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetDither(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savegpr_25(); @@ -1245,7 +814,8 @@ asm J2DTevBlock1::~J2DTevBlock1() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTevBlock1::initialize() { +extern "C" asm void initialize__12J2DTevBlock1Fv() { + // asm void J2DTevBlock1::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock1Fv.s" } @@ -1403,7 +973,8 @@ asm J2DTevBlock2::~J2DTevBlock2() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTevBlock2::initialize() { +extern "C" asm void initialize__12J2DTevBlock2Fv() { + // asm void J2DTevBlock2::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock2Fv.s" } @@ -1561,7 +1132,8 @@ asm J2DTevBlock4::~J2DTevBlock4() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTevBlock4::initialize() { +extern "C" asm void initialize__12J2DTevBlock4Fv() { + // asm void J2DTevBlock4::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock4Fv.s" } @@ -1719,7 +1291,8 @@ asm J2DTevBlock8::~J2DTevBlock8() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTevBlock8::initialize() { +extern "C" asm void initialize__12J2DTevBlock8Fv() { + // asm void J2DTevBlock8::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock8Fv.s" } @@ -1877,7 +1450,8 @@ asm J2DTevBlock16::~J2DTevBlock16() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTevBlock16::initialize() { +extern "C" asm void initialize__13J2DTevBlock16Fv() { + // asm void J2DTevBlock16::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__13J2DTevBlock16Fv.s" } @@ -2015,7 +1589,8 @@ asm void J2DTevBlock16::loadTexture(_GXTexMapID param_0, u32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DIndBlockFull::initialize() { +extern "C" asm void initialize__15J2DIndBlockFullFv() { + // asm void J2DIndBlockFull::initialize() { nofralloc #include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__15J2DIndBlockFullFv.s" } @@ -3453,8 +3028,8 @@ asm void J2DTevBlock1::getType() { #pragma pop /* 802F27AC-802F27B4 2ED0EC 0008+00 1/0 0/0 0/0 .text getMaxStage__12J2DTevBlock1Fv */ -bool J2DTevBlock1::getMaxStage() { - return true; +s32 J2DTevBlock1::getMaxStage() { + return 1; } /* 802F27B4-802F27C4 2ED0F4 0010+00 1/0 0/0 0/0 .text setTexNo__12J2DTevBlock1FUlUs */ diff --git a/libs/JSystem/J2DGraph/J2DMaterial.cpp b/libs/JSystem/J2DGraph/J2DMaterial.cpp index def8304ad00..f56fe44bbb3 100644 --- a/libs/JSystem/J2DGraph/J2DMaterial.cpp +++ b/libs/JSystem/J2DGraph/J2DMaterial.cpp @@ -11,117 +11,8 @@ // Types: // -struct _GXTlut {}; - -struct ResTIMG {}; - -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - -struct JUTPalette {}; - -struct JUTTexture { - /* 802DE480 */ void storeTIMG(ResTIMG const*, JUTPalette*, _GXTlut); -}; - struct J3DTextureSRTInfo {}; -struct J2DTexMtx {}; - -struct J2DTexGenBlock { - /* 802EB510 */ void initialize(); - /* 802EB570 */ void setGX(); - /* 802EB620 */ ~J2DTexGenBlock(); - /* 802EB6A4 */ void setTexMtx(u32, J2DTexMtx&); - /* 802EB7E0 */ void getTexMtx(u32, J2DTexMtx&); -}; - -struct J2DTexCoord { - /* 802EB260 */ J2DTexCoord(); -}; - -struct J2DTevBlock8 { - /* 802EED64 */ J2DTevBlock8(); -}; - -struct J2DTevBlock4 { - /* 802ED8BC */ J2DTevBlock4(); -}; - -struct J2DTevBlock2 { - /* 802EC5B8 */ J2DTevBlock2(); -}; - -struct J2DTevBlock16 { - /* 802F01E4 */ J2DTevBlock16(); -}; - -struct J2DTevBlock1 { - /* 802EB88C */ J2DTevBlock1(); -}; - -struct J2DGXColorS10 {}; - -struct J2DTevBlock { - /* 802EB184 */ ~J2DTevBlock(); - /* 802EB1D0 */ void setGX(); - /* 802EB1D4 */ void setTevKColor(u32, JUtility::TColor); - /* 802EB1D8 */ void setTevColor(u32, J2DGXColorS10); - /* 802EB1DC */ void setTexNo(u32, u16); -}; - -struct J2DPEBlock { - /* 802F17FC */ void initialize(); - /* 802F1840 */ void setGX(); -}; - -struct J2DIndTexOrder { - /* 802EB378 */ J2DIndTexOrder(); -}; - -struct J2DIndTexMtx { - /* 802EB2E4 */ ~J2DIndTexMtx(); - /* 802EB320 */ J2DIndTexMtx(); -}; - -struct J2DIndTexCoordScale { - /* 802EB290 */ ~J2DIndTexCoordScale(); - /* 802EB2CC */ J2DIndTexCoordScale(); -}; - -struct J2DIndBlockNull { - /* 802EB1E0 */ void setGX(); - /* 802EB1E4 */ void getType(); - /* 802EB1F0 */ ~J2DIndBlockNull(); -}; - -struct J2DIndBlock { - /* 802EA18C */ bool getIndTexCoordScale(u32); - /* 802EA194 */ bool getIndTexMtx(u32); - /* 802EA19C */ bool getIndTexOrder(u32); - /* 802EA1A4 */ bool getIndTexStageNum() const; - /* 802EB13C */ ~J2DIndBlock(); - /* 802EB1CC */ void setGX(); - /* 802EB24C */ void initialize(); - /* 802EB250 */ void setIndTexStageNum(u8); - /* 802EB254 */ void setIndTexOrder(u32, J2DIndTexOrder); - /* 802EB258 */ void setIndTexMtx(u32, J2DIndTexMtx); - /* 802EB25C */ void setIndTexCoordScale(u32, J2DIndTexCoordScale); -}; - -struct J2DColorChan { - /* 802EB280 */ J2DColorChan(); -}; - -struct J2DColorBlock { - /* 802EB0F4 */ ~J2DColorBlock(); - /* 802EB394 */ void initialize(); - /* 802EB424 */ void setGX(); -}; - // // Forward References: // @@ -280,7 +171,8 @@ asm J2DMaterial::J2DMaterial() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DMaterial::~J2DMaterial() { +extern "C" asm void __dt__11J2DMaterialFv() { + // asm J2DMaterial::~J2DMaterial() { nofralloc #include "asm/JSystem/J2DGraph/J2DMaterial/__dt__11J2DMaterialFv.s" } @@ -459,7 +351,7 @@ void J2DTevBlock::setTexNo(u32 param_0, u16 param_1) { } /* 802EB1E0-802EB1E4 2E5B20 0004+00 1/0 0/0 0/0 .text setGX__15J2DIndBlockNullFv */ -void J2DIndBlockNull::setGX() { +extern "C" void setGX__15J2DIndBlockNullFv() { /* empty function */ } @@ -484,7 +376,7 @@ asm J2DIndBlockNull::~J2DIndBlockNull() { #pragma pop /* 802EB24C-802EB250 2E5B8C 0004+00 2/0 0/0 0/0 .text initialize__11J2DIndBlockFv */ -void J2DIndBlock::initialize() { +extern "C" void initialize__11J2DIndBlockFv() { /* empty function */ } diff --git a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp index 550a4951a6d..99e01d25dbf 100644 --- a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp +++ b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp @@ -11,74 +11,14 @@ // Types: // -struct JKRArchive {}; - struct JUTResReference { /* 802DE120 */ void getResource(void const*, u32, JKRArchive*); }; -struct J2DTexMtx { - /* 802E9CC4 */ void calc(); -}; - -struct J2DTevStageInfo {}; - -struct J2DTevStage { - /* 802F4110 */ J2DTevStage(J2DTevStageInfo const&); - /* 802F1940 */ J2DTevStage(); - /* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&); -}; - struct J2DScreen { static u8 mDataManage[4 + 4 /* padding */]; }; -struct J2DResReference { - /* 8030CF10 */ void getResReference(u16) const; - /* 8030CF44 */ void getName(u16) const; -}; - -struct J2DMaterial { - /* 802EA410 */ void createTevBlock(int, bool); - /* 802EA5C4 */ void createIndBlock(int, bool); -}; - -struct J2DMaterialBlock {}; - -struct J2DMaterialFactory { - /* 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; -}; - -struct J2DDataManage { - /* 8030CE18 */ void get(char const*); -}; - // // Forward References: // diff --git a/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp b/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp index b1ebca077d9..efa8d989a77 100644 --- a/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp +++ b/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp @@ -41,9 +41,6 @@ extern "C" void func_802E9260(); extern "C" void func_802E9368(); extern "C" void func_802E9564(); extern "C" void place__14J2DGrafContextFffff(); -extern "C" void C_MTXOrtho(); -extern "C" void GXSetProjection(); -extern "C" void GXLoadPosMtxImm(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__14J2DGrafContext[10]; diff --git a/libs/JSystem/J2DGraph/J2DPane.cpp b/libs/JSystem/J2DGraph/J2DPane.cpp index 79e5fed82c8..8f625f3db3b 100644 --- a/libs/JSystem/J2DGraph/J2DPane.cpp +++ b/libs/JSystem/J2DGraph/J2DPane.cpp @@ -113,7 +113,6 @@ extern "C" void setScissor__14J2DGrafContextFv(); extern "C" void func_802E90C0(); extern "C" void func_802E987C(); extern "C" void get__13J2DDataManageFP14JSUInputStream(); -extern "C" void GXSetCullMode(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); diff --git a/libs/JSystem/J2DGraph/J2DPicture.cpp b/libs/JSystem/J2DGraph/J2DPicture.cpp index ede225ac4ff..0b8507bf27c 100644 --- a/libs/JSystem/J2DGraph/J2DPicture.cpp +++ b/libs/JSystem/J2DGraph/J2DPicture.cpp @@ -138,15 +138,6 @@ extern "C" void setCullBack__7J2DPaneFb(); extern "C" void setConnectParent__7J2DPaneFb(); extern "C" void update__7J2DPaneFv(); extern "C" void getNameResource__9J2DScreenFPCc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevKColor(); -extern "C" void GXSetTevKColorSel(); -extern "C" void GXSetTevKAlphaSel(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void __construct_array(); extern "C" void _savegpr_21(); extern "C" void _savegpr_22(); diff --git a/libs/JSystem/J2DGraph/J2DPictureEx.cpp b/libs/JSystem/J2DGraph/J2DPictureEx.cpp index cdfa7e34fa5..62123db41a8 100644 --- a/libs/JSystem/J2DGraph/J2DPictureEx.cpp +++ b/libs/JSystem/J2DGraph/J2DPictureEx.cpp @@ -7,211 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXTlut {}; - -struct _GXTexMapID {}; - -struct _GXCullMode {}; - -struct ResTLUT {}; - -struct ResTIMG {}; - -struct ResFONT {}; - -struct JUtility { - struct TColor {}; -}; - -struct JUTPalette {}; - -struct JUTTexture { - /* 802DE2A8 */ void storeTIMG(ResTIMG const*, u8); - /* 802DE480 */ void storeTIMG(ResTIMG const*, JUTPalette*, _GXTlut); -}; - -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 802DC458 */ void peek(void*, s32); - /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); -}; - -struct JSUInputStream { - /* 802DC298 */ void read(void*, s32); -}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; - - template - struct TVec2 {}; - /* TVec2 */ - struct TVec2__template0 { - /* 802FF204 */ void func_802FF204(void* _this); - }; -}; - -struct J2DTexMtx {}; - -struct J2DTexGenBlock { - /* 802EB6A4 */ void setTexMtx(u32, J2DTexMtx&); -}; - -struct J2DTevStage {}; - -struct J2DScreen { - /* 802F9640 */ void getNameResource(char const*); -}; - -struct J2DAnmTexPattern {}; - -struct J2DAnmVisibilityFull { - /* 8030C048 */ void getVisibility(u16, u8*) const; -}; - -struct J2DAnmBase {}; - -struct J2DAnmTevRegKey {}; - -struct J2DAnmTextureSRTKey {}; - -struct J2DAnmVtxColor {}; - -struct J2DAnmTransform {}; - -struct J2DPane { - /* 80053BC0 */ void calcMtx(); - /* 80053C00 */ void makeMatrix(f32, f32); - /* 802F7540 */ void makeMatrix(f32, f32, f32, f32); - /* 802F6F60 */ void move(f32, f32); - /* 802F6FB4 */ void add(f32, f32); - /* 802F6FF8 */ void resize(f32, f32); - /* 802F72E0 */ void search(u64); - /* 802F7388 */ void searchUserInfo(u64); - /* 802F7430 */ void isUsed(ResTIMG const*); - /* 802F74B8 */ void isUsed(ResFONT const*); - /* 802F7680 */ void setCullBack(_GXCullMode); - /* 802F7B18 */ void makePaneExStream(J2DPane*, JSURandomInputStream*); - /* 802F7EF4 */ void setAnimation(J2DAnmBase*); - /* 802F8004 */ void clearAnmTransform(); - /* 802F8080 */ void animationTransform(J2DAnmTransform const*); - /* 802F8118 */ void setVisibileAnimation(J2DAnmVisibilityFull*); - /* 802F81A0 */ void setVtxColorAnimation(J2DAnmVtxColor*); - /* 802F8228 */ void animationPane(J2DAnmTransform const*); - /* 802F83D0 */ void setAnimationVF(J2DAnmVisibilityFull*); - /* 802F83FC */ void setAnimationVC(J2DAnmVtxColor*); - /* 802F8464 */ void setConnectParent(bool); - /* 802F8474 */ void update(); -}; - -struct J2DAnmColor {}; - -struct J2DMaterial { - /* 802EA38C */ void setGX(); - /* 802EAB0C */ void setAnimation(J2DAnmTevRegKey*); - /* 802EAA2C */ void setAnimation(J2DAnmTexPattern*); - /* 802EA94C */ void setAnimation(J2DAnmTextureSRTKey*); - /* 802EA89C */ void setAnimation(J2DAnmColor*); -}; - -struct J2DPictureEx { - struct stage_enum {}; - - /* 80256034 */ void getMaterial() const; - /* 80306B1C */ void setAnimation(J2DAnmTexPattern*); - /* 80306AC4 */ void setAnimation(J2DAnmColor*); - /* 803071C4 */ void setAnimation(J2DAnmBase*); - /* 80306B48 */ void setAnimation(J2DAnmTevRegKey*); - /* 80306B7C */ void setAnimation(J2DAnmVtxColor*); - /* 80256064 */ void setAnimation(J2DAnmTransform*); - /* 80306AF0 */ void setAnimation(J2DAnmTextureSRTKey*); - /* 80306B74 */ void setAnimation(J2DAnmVisibilityFull*); - /* 80303640 */ void initiate(ResTIMG const*, ResTLUT const*); - /* 803036EC */ J2DPictureEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*); - /* 8030393C */ ~J2DPictureEx(); - /* 803039CC */ void prepareTexture(u8); - /* 80303AB4 */ void drawSelf(f32, f32, f32 (*)[3][4]); - /* 80303B80 */ void drawFullSet(f32, f32, f32, f32, f32 (*)[3][4]); - /* 80303BDC */ void drawTexCoord(f32, f32, f32, f32, s16, s16, s16, s16, s16, s16, s16, s16, - f32 (*)[3][4]); - /* 80306F04 */ void append(char const*, f32); - /* 80303EA4 */ void append(char const*, JUTPalette*, f32); - /* 80306ED4 */ void append(ResTIMG const*, f32); - /* 80303E5C */ void append(ResTIMG const*, JUTPalette*, f32); - /* 80303EEC */ void append(JUTTexture*, f32); - /* 80307024 */ void insert(char const*, u8, f32); - /* 80303F34 */ void insert(ResTIMG const*, JUTPalette*, u8, f32); - /* 80304048 */ void insert(JUTTexture*, u8, f32); - /* 80303FD8 */ void insert(char const*, JUTPalette*, u8, f32); - /* 80307058 */ void insert(ResTIMG const*, u8, f32); - /* 803040E4 */ void insertCommon(u8, f32); - /* 8030437C */ void isInsert(u8) const; - /* 80304608 */ void remove(); - /* 8030446C */ void remove(u8); - /* 8030466C */ void remove(JUTTexture*); - /* 80304728 */ void isRemove(u8) const; - /* 8030708C */ void draw(f32, f32, bool, bool, bool); - /* 80304890 */ void draw(f32, f32, f32, f32, bool, bool, bool); - /* 8030477C */ void draw(f32, f32, u8, bool, bool, bool); - /* 80304D88 */ void drawOut(f32, f32, f32, f32, f32, f32); - /* 803070D0 */ void drawOut(f32, f32, f32, f32, f32, f32, f32, f32); - /* 80304EF0 */ void drawOut(JGeometry::TBox2 const&, JGeometry::TBox2 const&); - /* 80307134 */ void load(u8); - /* 80305264 */ void load(_GXTexMapID, u8); - /* 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); - /* 80305ED4 */ void setBlendColorRatio(f32, f32); - /* 80305F34 */ void setBlendAlphaRatio(f32, f32); - /* 80305F94 */ void changeTexture(ResTIMG const*, u8); - /* 80306298 */ void changeTexture(char const*, u8, JUTPalette*); - /* 80306134 */ void changeTexture(ResTIMG const*, u8, JUTPalette*); - /* 803060DC */ void changeTexture(char const*, u8); - /* 803062F8 */ void getTexture(u8) const; - /* 80306350 */ void getTextureCount() const; - /* 80306370 */ void setBlack(JUtility::TColor); - /* 803063F8 */ void setWhite(JUtility::TColor); - /* 80306480 */ void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 80306664 */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const; - /* 80306824 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const; - /* 803068F8 */ void getBlack() const; - /* 80306958 */ void getWhite() const; - /* 803069B8 */ void setAlpha(u8); - /* 803069D8 */ void setCullBack(_GXCullMode); - /* 80307168 */ void setCullBack(bool); - /* 80306A0C */ void rewriteAlpha(); - /* 80306A24 */ void isUsed(ResTIMG const*); - /* 803071A4 */ void isUsed(ResFONT const*); - /* 80306C70 */ void animationPane(J2DAnmTransform const*); - /* 80306DC8 */ void getUsableTlut(u8); - /* 80306F94 */ void prepend(char const*, f32); - /* 80306F34 */ void prepend(JUTTexture*, f32); - /* 80306FC4 */ void prepend(ResTIMG const*, JUTPalette*, f32); - /* 80306F64 */ void prepend(char const*, JUTPalette*, f32); - /* 80306FF4 */ void prepend(ResTIMG const*, f32); -}; - -struct J2DPicture { - /* 800202CC */ void setBlendRatio(f32, f32); - /* 802FC050 */ J2DPicture(); - /* 802FCFF0 */ ~J2DPicture(); - /* 802FDB28 */ void drawSelf(f32, f32); - /* 802FF1D0 */ void getTlutID(ResTIMG const*, u8); - /* 802FF2E8 */ s32 getTypeID() const; -}; - // // Forward References: // @@ -339,23 +134,6 @@ extern "C" void getTlutID__10J2DPictureFPC7ResTIMGUc(); extern "C" void func_802FF204(void* _this); extern "C" s32 getTypeID__10J2DPictureCFv(); extern "C" void getVisibility__20J2DAnmVisibilityFullCFUsPUc(); -extern "C" void PSMTXIdentity(); -extern "C" void PSMTXConcat(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXBegin(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevOp(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void __construct_array(); extern "C" void _savegpr_23(); extern "C" void _savegpr_25(); @@ -496,7 +274,8 @@ asm J2DPictureEx::J2DPictureEx(J2DPane* param_0, JSURandomInputStream* param_1, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DPictureEx::~J2DPictureEx() { +extern "C" asm void __dt__12J2DPictureExFv() { + // asm J2DPictureEx::~J2DPictureEx() { nofralloc #include "asm/JSystem/J2DGraph/J2DPictureEx/__dt__12J2DPictureExFv.s" } diff --git a/libs/JSystem/J2DGraph/J2DPrint.cpp b/libs/JSystem/J2DGraph/J2DPrint.cpp index 2b509514665..a209638370d 100644 --- a/libs/JSystem/J2DGraph/J2DPrint.cpp +++ b/libs/JSystem/J2DGraph/J2DPrint.cpp @@ -7,56 +7,11 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JUtility { - struct TColor {}; -}; - -struct JUTFont { - /* 802DEDC4 */ void setGradColor(JUtility::TColor, JUtility::TColor); -}; - -struct JKRHeap { - static u8 sSystemHeap[4]; -}; - -struct J2DTextBoxVBinding {}; - -struct J2DTextBoxHBinding {}; - -struct J2DPrint { - struct TSize {}; - - /* 802F4394 */ J2DPrint(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor, - JUtility::TColor, JUtility::TColor); - /* 802F4420 */ ~J2DPrint(); - /* 802F4468 */ void private_initiate(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor, - JUtility::TColor, JUtility::TColor, bool); - /* 802F4658 */ void setBuffer(u32); - /* 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); - - static u8 mStrBuff[4]; - static u8 mStrBuffSize[4]; -}; - // // Forward References: // -extern "C" static void J2DPrint_print_alpha_va(); +extern "C" f32 J2DPrint_print_alpha_va(J2DPrint* pPrint, u8 param_1, const char* fmt, va_list args); extern "C" void __ct__8J2DPrintFP7JUTFontffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor(); extern "C" void __dt__8J2DPrintFv(); @@ -93,7 +48,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void vsnprintf(); extern "C" void strlen(); extern "C" void strtol(); extern "C" void strtoul(); @@ -105,13 +59,13 @@ extern "C" u8 sSystemHeap__7JKRHeap[4]; /* ############################################################################################## */ /* 80451580-80451584 000A80 0004+00 3/3 0/0 0/0 .sbss mStrBuff__8J2DPrint */ -u8 J2DPrint::mStrBuff[4]; +const u8* J2DPrint::mStrBuff; /* 80451584-80451588 000A84 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_80451584[4]; +static bool sStrBufInitialized; /* 80451588-8045158C 000A88 0004+00 3/3 0/0 0/0 .sbss mStrBuffSize__8J2DPrint */ -u8 J2DPrint::mStrBuffSize[4]; +size_t J2DPrint::mStrBuffSize; /* 8045158C-80451590 000A8C 0004+00 2/2 0/0 0/0 .sbss None */ static u8 data_8045158C[4]; @@ -125,14 +79,20 @@ SECTION_SDATA2 static u8 lit_418[4] = { }; /* 802F42F0-802F4394 2EEC30 00A4+00 1/1 0/0 0/0 .text J2DPrint_print_alpha_va */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J2DPrint_print_alpha_va() { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/J2DPrint_print_alpha_va.s" +f32 J2DPrint_print_alpha_va(J2DPrint* pPrint, u8 param_1, const char* fmt, va_list args) { + pPrint->initchar(); + s32 tmp = vsnprintf((char*)J2DPrint::mStrBuff, J2DPrint::mStrBuffSize, fmt, args); + + J2DPrint::TSize size; + if (tmp < 0) { + return FLOAT_LABEL(lit_418); + } else if (tmp >= J2DPrint::mStrBuffSize) { + tmp = J2DPrint::mStrBuffSize - 1; + data_8045158C[0] = 1; + } + pPrint->parse(J2DPrint::mStrBuff, tmp, 0x80000000 - 1, NULL, size, param_1, true); + return size.field_0x0; } -#pragma pop /* ############################################################################################## */ /* 803CCF40-803CCFA0 -00001 0060+00 1/1 0/0 0/0 .data @938 */ @@ -175,26 +135,13 @@ SECTION_DATA extern void* __vt__8J2DPrint[3 + 1 /* padding */] = { /* 802F4394-802F4420 2EECD4 008C+00 0/0 6/6 0/0 .text * __ct__8J2DPrintFP7JUTFontffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J2DPrint::J2DPrint(JUTFont* param_0, f32 param_1, f32 param_2, JUtility::TColor param_3, - JUtility::TColor param_4, JUtility::TColor param_5, - JUtility::TColor param_6) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/func_802F4394.s" +J2DPrint::J2DPrint(JUTFont* pFont, f32 param_1, f32 param_2, JUtility::TColor param_3, + JUtility::TColor param_4, JUtility::TColor param_5, JUtility::TColor param_6) { + private_initiate(pFont, param_1, param_2, param_3, param_4, param_5, param_6, false); } -#pragma pop /* 802F4420-802F4468 2EED60 0048+00 1/0 6/6 0/0 .text __dt__8J2DPrintFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J2DPrint::~J2DPrint() { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/__dt__8J2DPrintFv.s" -} -#pragma pop +J2DPrint::~J2DPrint() {} /* ############################################################################################## */ /* 804561CC-804561D0 0047CC 0004+00 1/1 0/0 0/0 .sdata2 @644 */ @@ -206,6 +153,45 @@ SECTION_SDATA2 static f64 lit_650 = 4503601774854144.0 /* cast s32 to float */; /* 802F4468-802F4658 2EEDA8 01F0+00 1/1 0/0 0/0 .text * private_initiate__8J2DPrintFP7JUTFontffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorb */ +// close +#ifdef NONMATCHING +void J2DPrint::private_initiate(JUTFont* pFont, f32 param_1, f32 param_2, JUtility::TColor param_3, + JUtility::TColor param_4, JUtility::TColor param_5, + JUtility::TColor param_6, bool param_7) { + if (mStrBuff == NULL) { + setBuffer(0x400); // r4 + } + mFont = pFont; + field_0x48 = param_1; + field_0x4c = 32.0f; + + if (mFont != NULL) { + if (!param_7) { + param_2 = mFont->getLeading(); + } + field_0x4c = param_2; + } + + field_0x5a = 1; + locate(0.0f, 0.0f); + mCharColor = param_3; + mGradColor = param_4; + field_0x38 = param_5; + field_0x3c = param_6; + + if (mFont == NULL) { + field_0x58 = 80; + } else { + field_0x58 = mFont->getWidth() << 2; + } + + if (mFont != NULL) { + setFontSize(); + mFont->setGX(field_0x38, field_0x3c); + } + initchar(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -217,18 +203,31 @@ asm void J2DPrint::private_initiate(JUTFont* param_0, f32 param_1, f32 param_2, #include "asm/JSystem/J2DGraph/J2DPrint/func_802F4468.s" } #pragma pop +#endif /* 802F4658-802F46C4 2EEF98 006C+00 1/1 1/1 0/0 .text setBuffer__8J2DPrintFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPrint::setBuffer(u32 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/setBuffer__8J2DPrintFUl.s" +u8* J2DPrint::setBuffer(size_t size) { + u8* tmp = (u8*)mStrBuff; + if (sStrBufInitialized) { + delete mStrBuff; + } + + mStrBuff = new (JKRHeap::sSystemHeap, 0) u8[size]; + mStrBuffSize = size; + sStrBufInitialized = true; + return tmp; } -#pragma pop /* 802F46C4-802F475C 2EF004 0098+00 1/1 0/0 0/0 .text setFontSize__8J2DPrintFv */ +// matches with auto generated literal +#ifdef NONMATCHING +void J2DPrint::setFontSize() { + if (mFont) { + mFontSizeX = mFont->getCellWidth(); + mFontSizeY = mFont->getCellHeight(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -237,26 +236,26 @@ asm void J2DPrint::setFontSize() { #include "asm/JSystem/J2DGraph/J2DPrint/setFontSize__8J2DPrintFv.s" } #pragma pop +#endif /* 802F475C-802F4778 2EF09C 001C+00 2/2 2/2 0/0 .text locate__8J2DPrintFff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPrint::locate(f32 param_0, f32 param_1) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/locate__8J2DPrintFff.s" +void J2DPrint::locate(f32 param_0, f32 param_1) { + field_0x24 = param_0; + field_0x28 = param_1; + field_0x2c = param_0; + mCursorV = param_1; + field_0x34 = FLOAT_LABEL(lit_418); } -#pragma pop /* 802F4778-802F4828 2EF0B8 00B0+00 0/0 2/2 0/0 .text print__8J2DPrintFffUcPCce */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPrint::print(f32 param_0, f32 param_1, u8 param_2, char const* param_3, ...) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/print__8J2DPrintFffUcPCce.s" +void J2DPrint::print(f32 param_0, f32 param_1, u8 param_2, char const* fmt, ...) { + locate(param_0, param_1); + + va_list args; + va_start(args, fmt); + J2DPrint_print_alpha_va(this, param_2, fmt, args); + va_end(args); } -#pragma pop /* ############################################################################################## */ /* 804561D8-804561E0 0047D8 0004+04 2/2 0/0 0/0 .sdata2 @786 */ @@ -323,14 +322,16 @@ asm void J2DPrint::doEscapeCode(u8 const** param_0, u8 param_1) { #pragma pop /* 802F594C-802F59C0 2F028C 0074+00 3/3 0/0 0/0 .text initchar__8J2DPrintFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPrint::initchar() { - nofralloc -#include "asm/JSystem/J2DGraph/J2DPrint/initchar__8J2DPrintFv.s" +void J2DPrint::initchar() { + field_0x8 = mCharColor; + field_0xc = mGradColor; + field_0x10 = field_0x48; + field_0x14 = field_0x4c; + field_0x22 = field_0x5a; + field_0x20 = field_0x58; + field_0x18 = mFontSizeX; + field_0x1c = mFontSizeY; } -#pragma pop /* 802F59C0-802F5AC4 2F0300 0104+00 1/1 0/0 0/0 .text getNumberS32__8J2DPrintFPPCUclli */ #pragma push diff --git a/libs/JSystem/J2DGraph/J2DScreen.cpp b/libs/JSystem/J2DGraph/J2DScreen.cpp index d88ece25956..11c5d58bf42 100644 --- a/libs/JSystem/J2DGraph/J2DScreen.cpp +++ b/libs/JSystem/J2DGraph/J2DScreen.cpp @@ -160,11 +160,6 @@ extern "C" void __ct__11J2DWindowExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMate extern "C" void __ct__12J2DPictureExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial(); extern "C" void __ct__12J2DTextBoxExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial(); extern "C" void get__13J2DDataManageFPCc(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetScissor(); -extern "C" void GXGetScissor(); extern "C" void __destroy_new_array(); extern "C" void __construct_new_array(); extern "C" void _savegpr_25(); diff --git a/libs/JSystem/J2DGraph/J2DTevs.cpp b/libs/JSystem/J2DGraph/J2DTevs.cpp index a2a3f820119..9a37e2d8d45 100644 --- a/libs/JSystem/J2DGraph/J2DTevs.cpp +++ b/libs/JSystem/J2DGraph/J2DTevs.cpp @@ -11,17 +11,6 @@ // Types: // -struct Vec {}; - -struct J2DTextureSRTInfo {}; - -struct J2DTexMtx { - /* 802E9C90 */ void load(u32); - /* 802E9CC4 */ void calc(); - /* 802E9D2C */ void getTextureMtx(J2DTextureSRTInfo const&, Vec, f32 (*)[4]); - /* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, f32 (*)[4]); -}; - struct J2DTevBlock { /* 802EA12C */ bool getTevSwapModeTable(u32); /* 802EA134 */ bool getTevStage(u32); @@ -36,22 +25,6 @@ struct J2DTevBlock { /* 802EA184 */ bool getIndTevStage(u32); }; -struct J2DIndTexOrder { - /* 802EA0FC */ void load(u8); -}; - -struct J2DIndTexMtx { - /* 802EA098 */ void load(u8); -}; - -struct J2DIndTexCoordScale { - /* 802EA0CC */ void load(u8); -}; - -struct J2DIndTevStage { - /* 802EA044 */ void load(u8); -}; - struct J2DIndBlock { /* 802EA18C */ bool getIndTexCoordScale(u32); /* 802EA194 */ bool getIndTexMtx(u32); @@ -86,10 +59,10 @@ extern "C" bool getIndTexCoordScale__11J2DIndBlockFUl(); extern "C" bool getIndTexMtx__11J2DIndBlockFUl(); extern "C" bool getIndTexOrder__11J2DIndBlockFUl(); extern "C" bool getIndTexStageNum__11J2DIndBlockCFv(); -extern "C" extern u8 const j2dDefaultTexCoordInfo[32]; -extern "C" extern u8 const j2dDefaultTexMtxInfo[36]; -extern "C" extern u8 const j2dDefaultIndTexMtxInfo[28]; -extern "C" extern u8 const j2dDefaultTevStageInfo[20]; +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 u8 const j2dDefaultIndTevStageInfo[12]; extern "C" extern u32 j2dDefaultColInfo; extern "C" extern u32 j2dDefaultTevOrderInfoNull; @@ -318,33 +291,21 @@ bool J2DIndBlock::getIndTexStageNum() const { /* ############################################################################################## */ /* 803A1B80-803A1BA0 02E1E0 0020+00 0/0 3/3 0/0 .rodata j2dDefaultTexCoordInfo */ -SECTION_RODATA extern u8 const j2dDefaultTexCoordInfo[32] = { - 0x01, 0x04, 0x3C, 0x00, 0x01, 0x05, 0x3C, 0x00, 0x01, 0x06, 0x3C, 0x00, 0x01, 0x07, 0x3C, 0x00, - 0x01, 0x08, 0x3C, 0x00, 0x01, 0x09, 0x3C, 0x00, 0x01, 0x0A, 0x3C, 0x00, 0x01, 0x0B, 0x3C, 0x00, +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}, }; -COMPILER_STRIP_GATE(0x803A1B80, &j2dDefaultTexCoordInfo); /* 803A1BA0-803A1BC4 02E200 0024+00 0/0 3/3 0/0 .rodata j2dDefaultTexMtxInfo */ -SECTION_RODATA extern u8 const j2dDefaultTexMtxInfo[36] = { - 0x01, 0x01, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1BA0, &j2dDefaultTexMtxInfo); +extern J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, 0.5f, + 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f}; /* 803A1BC4-803A1BE0 02E224 001C+00 0/0 3/3 0/0 .rodata j2dDefaultIndTexMtxInfo */ -SECTION_RODATA extern u8 const j2dDefaultIndTexMtxInfo[28] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1BC4, &j2dDefaultIndTexMtxInfo); +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 */ -SECTION_RODATA extern u8 const j2dDefaultTevStageInfo[20] = { - 0x04, 0x0A, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x05, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1BE0, &j2dDefaultTevStageInfo); +extern J2DTevStageInfo const j2dDefaultTevStageInfo = {4, 10, 15, 15, 0, 0, 0, 0, 1, + 0, 5, 7, 7, 0, 0, 0, 0, 1}; /* 803A1BF4-803A1C00 02E254 000C+00 0/0 7/7 0/0 .rodata j2dDefaultIndTevStageInfo */ SECTION_RODATA extern u8 const j2dDefaultIndTevStageInfo[12] = { diff --git a/libs/JSystem/J2DGraph/J2DTextBox.cpp b/libs/JSystem/J2DGraph/J2DTextBox.cpp index bd7e7dfe776..1ae9a766259 100644 --- a/libs/JSystem/J2DGraph/J2DTextBox.cpp +++ b/libs/JSystem/J2DGraph/J2DTextBox.cpp @@ -4,23 +4,10 @@ // #include "JSystem/J2DGraph/J2DTextBox.h" +#include "JSystem/J2DGraph/J2DPrint.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" - -// -// Types: -// - -struct J2DPrint { - /* 802F4394 */ J2DPrint(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor, - JUtility::TColor, JUtility::TColor); - /* 802F4420 */ ~J2DPrint(); - /* 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); -}; // // Forward References: @@ -109,11 +96,6 @@ extern "C" void setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull(); extern "C" void setAnimationVC__7J2DPaneFP14J2DAnmVtxColor(); extern "C" void setCullBack__7J2DPaneFb(); extern "C" void update__7J2DPaneFv(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); diff --git a/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp b/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp index 71c721fc2a2..9e0ed40e504 100644 --- a/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp +++ b/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp @@ -7,145 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXCullMode {}; - -struct ResTIMG {}; - -struct ResFONT {}; - -struct JUtility { - struct TColor {}; -}; - -struct JUTFont {}; - -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 802DC458 */ void peek(void*, s32); - /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); -}; - -struct JSUInputStream { - /* 802DC298 */ void read(void*, s32); -}; - -struct J2DTextBoxVBinding {}; - -struct J2DTextBoxHBinding {}; - -struct J2DAnmTexPattern {}; - -struct J2DAnmVisibilityFull { - /* 8030C048 */ void getVisibility(u16, u8*) const; -}; - -struct J2DAnmBase {}; - -struct J2DAnmTevRegKey {}; - -struct J2DAnmTextureSRTKey {}; - -struct J2DAnmVtxColor {}; - -struct J2DAnmTransform {}; - -struct J2DPane { - /* 80053BC0 */ void calcMtx(); - /* 80053C00 */ void makeMatrix(f32, f32); - /* 802F7540 */ void makeMatrix(f32, f32, f32, f32); - /* 802F6F60 */ void move(f32, f32); - /* 802F6FB4 */ void add(f32, f32); - /* 802F72E0 */ void search(u64); - /* 802F7388 */ void searchUserInfo(u64); - /* 802F7430 */ void isUsed(ResTIMG const*); - /* 802F74B8 */ void isUsed(ResFONT const*); - /* 802F7680 */ void setCullBack(_GXCullMode); - /* 802F7B18 */ void makePaneExStream(J2DPane*, JSURandomInputStream*); - /* 802F7EF4 */ void setAnimation(J2DAnmBase*); - /* 802F8004 */ void clearAnmTransform(); - /* 802F8080 */ void animationTransform(J2DAnmTransform const*); - /* 802F8118 */ void setVisibileAnimation(J2DAnmVisibilityFull*); - /* 802F81A0 */ void setVtxColorAnimation(J2DAnmVtxColor*); - /* 802F8228 */ void animationPane(J2DAnmTransform const*); - /* 802F83D0 */ void setAnimationVF(J2DAnmVisibilityFull*); - /* 802F83FC */ void setAnimationVC(J2DAnmVtxColor*); - /* 802F8474 */ void update(); -}; - -struct J2DTevStage {}; - -struct J2DAnmColor {}; - -struct J2DMaterial { - /* 802EA38C */ void setGX(); - /* 802EAB0C */ void setAnimation(J2DAnmTevRegKey*); - /* 802EAA2C */ void setAnimation(J2DAnmTexPattern*); - /* 802EA94C */ void setAnimation(J2DAnmTextureSRTKey*); - /* 802EA89C */ void setAnimation(J2DAnmColor*); -}; - -struct J2DTextBoxEx { - struct stage_enum {}; - - /* 80256024 */ void getMaterial() const; - /* 8030890C */ void setAnimation(J2DAnmTexPattern*); - /* 803088B4 */ void setAnimation(J2DAnmColor*); - /* 80308938 */ void setAnimation(J2DAnmTevRegKey*); - /* 80256044 */ void setAnimation(J2DAnmTransform*); - /* 80308A48 */ void setAnimation(J2DAnmVtxColor*); - /* 80308A4C */ void setAnimation(J2DAnmBase*); - /* 803088E0 */ void setAnimation(J2DAnmTextureSRTKey*); - /* 80308964 */ void setAnimation(J2DAnmVisibilityFull*); - /* 803071E4 */ J2DTextBoxEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*); - /* 8030751C */ ~J2DTextBoxEx(); - /* 803075AC */ void drawSelf(f32, f32, f32 (*)[3][4]); - /* 803078AC */ void draw(f32, f32); - /* 80307AF0 */ void draw(f32, f32, f32, J2DTextBoxHBinding); - /* 80307D5C */ void setFont(JUTFont*); - /* 80307DC0 */ void getFont() const; - /* 80307E0C */ void setTevOrder(bool); - /* 80307EF0 */ void setTevStage(bool); - /* 80307F94 */ void setStage(J2DTevStage*, J2DTextBoxEx::stage_enum); - /* 8030823C */ void setBlack(JUtility::TColor); - /* 803082C4 */ void setWhite(JUtility::TColor); - /* 8030834C */ void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 803084CC */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const; - /* 80308668 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const; - /* 803086FC */ void getBlack() const; - /* 8030875C */ void getWhite() const; - /* 803087BC */ void setAlpha(u8); - /* 803087DC */ void setCullBack(_GXCullMode); - /* 803089EC */ void setCullBack(bool); - /* 80308810 */ void rewriteAlpha(); - /* 80308828 */ void isUsed(ResFONT const*); - /* 80308A28 */ void isUsed(ResTIMG const*); - /* 8030896C */ void animationPane(J2DAnmTransform const*); -}; - -struct J2DTextBox { - /* 802FF660 */ J2DTextBox(); - /* 803001E0 */ ~J2DTextBox(); - /* 80300870 */ void setConnectParent(bool); - /* 803008E8 */ void drawSelf(f32, f32); - /* 80300AF8 */ void resize(f32, f32); - /* 80300C68 */ s32 getTypeID() const; -}; - -struct J2DPrint { - /* 802F4394 */ J2DPrint(JUTFont*, f32, f32, JUtility::TColor, JUtility::TColor, - JUtility::TColor, JUtility::TColor); - /* 802F4420 */ ~J2DPrint(); - /* 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); -}; - // // Forward References: // @@ -232,16 +93,6 @@ extern "C" void drawSelf__10J2DTextBoxFff(); extern "C" void resize__10J2DTextBoxFff(); extern "C" s32 getTypeID__10J2DTextBoxCFv(); extern "C" void getVisibility__20J2DAnmVisibilityFullCFUsPUc(); -extern "C" void PSMTXIdentity(); -extern "C" void PSMTXConcat(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_25(); extern "C" void _savegpr_28(); extern "C" void _restgpr_25(); @@ -334,7 +185,8 @@ asm J2DTextBoxEx::J2DTextBoxEx(J2DPane* param_0, JSURandomInputStream* param_1, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DTextBoxEx::~J2DTextBoxEx() { +extern "C" asm void __dt__12J2DTextBoxExFv() { + // asm J2DTextBoxEx::~J2DTextBoxEx() { nofralloc #include "asm/JSystem/J2DGraph/J2DTextBoxEx/__dt__12J2DTextBoxExFv.s" } diff --git a/libs/JSystem/J2DGraph/J2DWindow.cpp b/libs/JSystem/J2DGraph/J2DWindow.cpp index 338979dd473..b7b1bdefa87 100644 --- a/libs/JSystem/J2DGraph/J2DWindow.cpp +++ b/libs/JSystem/J2DGraph/J2DWindow.cpp @@ -95,12 +95,6 @@ extern "C" void setAnimationVC__7J2DPaneFP14J2DAnmVtxColor(); extern "C" void setCullBack__7J2DPaneFb(); extern "C" void setConnectParent__7J2DPaneFb(); extern "C" void update__7J2DPaneFv(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_28(); diff --git a/libs/JSystem/J2DGraph/J2DWindowEx.cpp b/libs/JSystem/J2DGraph/J2DWindowEx.cpp index 7439f7eb7d3..48a58da6481 100644 --- a/libs/JSystem/J2DGraph/J2DWindowEx.cpp +++ b/libs/JSystem/J2DGraph/J2DWindowEx.cpp @@ -7,153 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXCullMode {}; - -struct _GXColor {}; - -struct ResTIMG {}; - -struct ResFONT {}; - -struct JUtility { - struct TColor {}; -}; - -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 802DC458 */ void peek(void*, s32); - /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); -}; - -struct JSUInputStream { - /* 802DC298 */ void read(void*, s32); -}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; -}; - -struct J2DAnmTexPattern {}; - -struct J2DAnmVisibilityFull { - /* 8030C048 */ void getVisibility(u16, u8*) const; -}; - -struct J2DAnmColor {}; - -struct J2DAnmBase {}; - -struct J2DAnmTevRegKey {}; - -struct J2DAnmTextureSRTKey {}; - -struct J2DAnmVtxColor { - /* 8030363C */ void getColor(u8, u16, _GXColor*) const; -}; - -struct J2DAnmTransform {}; - -struct J2DPane { - /* 80053BC0 */ void calcMtx(); - /* 80053C00 */ void makeMatrix(f32, f32); - /* 802F7540 */ void makeMatrix(f32, f32, f32, f32); - /* 802F6F60 */ void move(f32, f32); - /* 802F6FB4 */ void add(f32, f32); - /* 802F7264 */ void clip(JGeometry::TBox2 const&); - /* 802F72E0 */ void search(u64); - /* 802F7388 */ void searchUserInfo(u64); - /* 802F7430 */ void isUsed(ResTIMG const*); - /* 802F74B8 */ void isUsed(ResFONT const*); - /* 802F7680 */ void setCullBack(_GXCullMode); - /* 802F7AFC */ void getParentPane(); - /* 802F7B18 */ void makePaneExStream(J2DPane*, JSURandomInputStream*); - /* 802F7EF4 */ void setAnimation(J2DAnmBase*); - /* 802F8004 */ void clearAnmTransform(); - /* 802F8080 */ void animationTransform(J2DAnmTransform const*); - /* 802F8118 */ void setVisibileAnimation(J2DAnmVisibilityFull*); - /* 802F81A0 */ void setVtxColorAnimation(J2DAnmVtxColor*); - /* 802F8228 */ void animationPane(J2DAnmTransform const*); - /* 802F83D0 */ void setAnimationVF(J2DAnmVisibilityFull*); - /* 802F83FC */ void setAnimationVC(J2DAnmVtxColor*); - /* 802F8464 */ void setConnectParent(bool); - /* 802F8474 */ void update(); -}; - -struct J2DTevStage {}; - -struct J2DMaterial { - /* 802EA38C */ void setGX(); - /* 802EAB0C */ void setAnimation(J2DAnmTevRegKey*); - /* 802EAA2C */ void setAnimation(J2DAnmTexPattern*); - /* 802EA94C */ void setAnimation(J2DAnmTextureSRTKey*); - /* 802EA89C */ void setAnimation(J2DAnmColor*); -}; - -struct J2DWindow { - struct TMaterial {}; - - /* 802F9A7C */ J2DWindow(); - /* 802FA880 */ ~J2DWindow(); - /* 802FB000 */ void resize(f32, f32); - /* 802FB1D8 */ void drawSelf(f32, f32); - /* 802FBF98 */ s32 getTypeID() const; -}; - -struct J2DWindowEx { - struct stage_enum {}; - - /* 8030327C */ void setAnimation(J2DAnmVtxColor*); - /* 80303084 */ void setAnimation(J2DAnmTextureSRTKey*); - /* 80256084 */ void setAnimation(J2DAnmTransform*); - /* 8030310C */ void setAnimation(J2DAnmTexPattern*); - /* 80303194 */ void setAnimation(J2DAnmTevRegKey*); - /* 8030361C */ void setAnimation(J2DAnmBase*); - /* 80303274 */ void setAnimation(J2DAnmVisibilityFull*); - /* 80302FFC */ void setAnimation(J2DAnmColor*); - /* 80300C94 */ J2DWindowEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*); - /* 80300F80 */ void setMinSize(); - /* 80301144 */ ~J2DWindowEx(); - /* 8030122C */ void drawSelf(f32, f32, f32 (*)[3][4]); - /* 803012CC */ void draw_private(JGeometry::TBox2 const&, JGeometry::TBox2 const&); - /* 80301994 */ void drawContents(JGeometry::TBox2 const&); - /* 80301D74 */ void drawFrameTexture(f32, f32, f32, f32, u16, u16, u16, u16, J2DMaterial*, - bool); - /* 80301FC8 */ void draw(JGeometry::TBox2 const&); - /* 80302164 */ void draw(JGeometry::TBox2 const&, JGeometry::TBox2 const&); - /* 80303568 */ void draw(f32, f32, f32, f32); - /* 80302284 */ void setTevOrder(bool); - /* 80302388 */ void setTevStage(bool); - /* 803024B4 */ void setStage(J2DTevStage*, J2DWindowEx::stage_enum); - /* 80302764 */ void setBlack(JUtility::TColor); - /* 803027EC */ void setWhite(JUtility::TColor); - /* 80302874 */ void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 80302A4C */ void getBlackWhite(JUtility::TColor*, JUtility::TColor*) const; - /* 80302BE8 */ void isSetBlackWhite(JUtility::TColor, JUtility::TColor) const; - /* 80302C88 */ void getBlack() const; - /* 80302CE8 */ void getWhite() const; - /* 80302D48 */ void setAlpha(u8); - /* 80302D98 */ void setCullBack(_GXCullMode); - /* 803035C0 */ void setCullBack(bool); - /* 80302DF4 */ void rewriteAlpha(); - /* 80302E0C */ void getFrameTexture(u8, u8) const; - /* 80302E74 */ void getContentsTexture(u8) const; - /* 803035FC */ void isUsed(ResFONT const*); - /* 80302EDC */ void isUsed(ResTIMG const*); - /* 8030321C */ void isNeedSetAnm(u8); - /* 80303370 */ void animationPane(J2DAnmTransform const*); - /* 80303510 */ void getFrameMaterial(u8) const; - /* 80303534 */ void getContentsMaterial() const; - /* 8030353C */ void getMaterial(J2DWindow::TMaterial&) const; -}; - // // Forward References: // @@ -243,21 +96,6 @@ extern "C" void resize__9J2DWindowFff(); extern "C" void drawSelf__9J2DWindowFff(); extern "C" s32 getTypeID__9J2DWindowCFv(); extern "C" void getVisibility__20J2DAnmVisibilityFullCFUsPUc(); -extern "C" void PSMTXIdentity(); -extern "C" void PSMTXConcat(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXBegin(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevOp(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetTevOrder(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_20(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); @@ -371,7 +209,8 @@ asm void J2DWindowEx::setMinSize() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DWindowEx::~J2DWindowEx() { +extern "C" asm void __dt__11J2DWindowExFv() { + // asm J2DWindowEx::~J2DWindowEx() { nofralloc #include "asm/JSystem/J2DGraph/J2DWindowEx/__dt__11J2DWindowExFv.s" } diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index d270cf02f36..9d223cacf61 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -11,18 +11,6 @@ // Types: // -struct _GXTevKColorID {}; - -struct _GXIndTexStageID {}; - -struct _GXIndTexScale {}; - -struct _GXIndTexMtxID {}; - -struct _GXFogType {}; - -struct _GXFogAdjTable {}; - struct J3DSys { static u8 sTexCoordScaleTable[64 + 4 /* padding */]; }; diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index eff23be8c17..3f1d6b2803f 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -5,12 +5,12 @@ #include "JSystem/J3DGraphBase/J3DPacket.h" #include "JSystem/JKernel/JKRHeap.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/gx/GX.h" #include "dolphin/os/OSCache.h" #include "dolphin/types.h" #include "global.h" -#include "msl_c/string.h" // // Types: diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index 44ae39148a0..f1abde4b118 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -7,12 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXTexMapID {}; - // // Forward References: // @@ -46,51 +40,12 @@ extern "C" void makeTexCoordTable__Fv(); extern "C" void makeAlphaCmpTable__Fv(); extern "C" void makeZModeTable__Fv(); extern "C" void makeTevSwapTable__Fv(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXInvalidateVtxCache(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXFlush(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetCoPlanar(); extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXInitTexObj(); -extern "C" void GXLoadTexObj(); extern "C" void GXInitTexCacheRegion(); extern "C" void GXSetTevIndirect(); -extern "C" void GXSetIndTexMtx(); -extern "C" void GXSetIndTexCoordScale(); -extern "C" void GXSetIndTexOrder(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetTevColorS10(); -extern "C" void GXSetTevKColor(); -extern "C" void GXSetTevKColorSel(); -extern "C" void GXSetTevKAlphaSel(); -extern "C" void GXSetTevSwapMode(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetBlendMode(); extern "C" void GXSetColorUpdate(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetDither(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXLoadTexMtxImm(); -extern "C" void GXSetClipMode(); extern "C" void _savegpr_25(); extern "C" void _savegpr_28(); extern "C" void _restgpr_25(); diff --git a/libs/JSystem/JKernel/JKRAramArchive.cpp b/libs/JSystem/JKernel/JKRAramArchive.cpp index 743bd4086c0..a6310e69a16 100644 --- a/libs/JSystem/JKernel/JKRAramArchive.cpp +++ b/libs/JSystem/JKernel/JKRAramArchive.cpp @@ -8,11 +8,11 @@ #include "JSystem/JKernel/JKRDvdAramRipper.h" #include "JSystem/JKernel/JKRDvdRipper.h" #include "JSystem/JKernel/JKRFile.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" #include "dolphin/types.h" #include "msl_c/math.h" -#include "msl_c/string.h" // // Types: diff --git a/libs/JSystem/JKernel/JKRArchivePri.cpp b/libs/JSystem/JKernel/JKRArchivePri.cpp index 404d7b14409..d213d3b3fec 100644 --- a/libs/JSystem/JKernel/JKRArchivePri.cpp +++ b/libs/JSystem/JKernel/JKRArchivePri.cpp @@ -5,9 +5,10 @@ #include "JSystem/JKernel/JKRArchive.h" #include "JSystem/JKernel/JKRHeap.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/ctype.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Declarations: diff --git a/libs/JSystem/JKernel/JKRFileCache.cpp b/libs/JSystem/JKernel/JKRFileCache.cpp index fcb49138f4b..c8549929780 100644 --- a/libs/JSystem/JKernel/JKRFileCache.cpp +++ b/libs/JSystem/JKernel/JKRFileCache.cpp @@ -7,9 +7,10 @@ #include "JSystem/JKernel/JKRDvdFile.h" #include "JSystem/JKernel/JKRFileFinder.h" #include "JSystem/JKernel/JKRHeap.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/ctype.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "global.h" -#include "msl_c/string.h" // // Forward References: diff --git a/libs/JSystem/JKernel/JKRFileLoader.cpp b/libs/JSystem/JKernel/JKRFileLoader.cpp index 27c3b901c06..db9e0b531af 100644 --- a/libs/JSystem/JKernel/JKRFileLoader.cpp +++ b/libs/JSystem/JKernel/JKRFileLoader.cpp @@ -4,9 +4,9 @@ // #include "JSystem/JKernel/JKRFileLoader.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "global.h" -#include "msl_c/string.h" // // Forward References: diff --git a/libs/JSystem/JKernel/JKRMemArchive.cpp b/libs/JSystem/JKernel/JKRMemArchive.cpp index 593bdb5c212..7f5de050d32 100644 --- a/libs/JSystem/JKernel/JKRMemArchive.cpp +++ b/libs/JSystem/JKernel/JKRMemArchive.cpp @@ -7,9 +7,9 @@ #include "JSystem/JKernel/JKRDvdRipper.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTException.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Types: diff --git a/libs/JSystem/JKernel/JKRThread.cpp b/libs/JSystem/JKernel/JKRThread.cpp index ada577955b0..a9b1500360a 100644 --- a/libs/JSystem/JKernel/JKRThread.cpp +++ b/libs/JSystem/JKernel/JKRThread.cpp @@ -6,9 +6,9 @@ #include "JSystem/JKernel/JKRThread.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTAssert.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/printf.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Types: diff --git a/libs/JSystem/JParticle/JPAParticle.cpp b/libs/JSystem/JParticle/JPAParticle.cpp index 88a3ac6b144..eca15637384 100644 --- a/libs/JSystem/JParticle/JPAParticle.cpp +++ b/libs/JSystem/JParticle/JPAParticle.cpp @@ -11,8 +11,6 @@ // Types: // -struct Vec {}; - struct JPAEmitterWorkData {}; struct JPABaseParticle { @@ -55,7 +53,6 @@ extern "C" void createChild__14JPABaseEmitterFP15JPABaseParticle(); extern "C" void JPAGetYZRotateMtx__FssPA4_f(); extern "C" void __dl__FPv(); extern "C" void JMAVECScaleAdd__FPC3VecPC3VecP3Vecf(); -extern "C" void PSMTXConcat(); extern "C" void PSMTXMultVecSR(); extern "C" void _savegpr_26(); extern "C" void _savegpr_29(); diff --git a/libs/JSystem/JSupport/JSUMemoryStream.cpp b/libs/JSystem/JSupport/JSUMemoryStream.cpp index 39702109d1b..2274e89366e 100644 --- a/libs/JSystem/JSupport/JSUMemoryStream.cpp +++ b/libs/JSystem/JSupport/JSUMemoryStream.cpp @@ -4,9 +4,9 @@ // #include "JSystem/JSupport/JSUMemoryStream.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Declarations: diff --git a/libs/JSystem/JUtility/JUTDirectPrint.cpp b/libs/JSystem/JUtility/JUTDirectPrint.cpp index 53a93bdd42e..43d84c9aa84 100644 --- a/libs/JSystem/JUtility/JUTDirectPrint.cpp +++ b/libs/JSystem/JUtility/JUTDirectPrint.cpp @@ -4,12 +4,12 @@ // #include "JSystem/JUtility/JUTDirectPrint.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/printf.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" #include "dolphin/types.h" #include "global.h" -#include "msl_c/string.h" // // Forward References: diff --git a/libs/JSystem/JUtility/JUTNameTab.cpp b/libs/JSystem/JUtility/JUTNameTab.cpp index 5cc29e9a900..7ab0818cab3 100644 --- a/libs/JSystem/JUtility/JUTNameTab.cpp +++ b/libs/JSystem/JUtility/JUTNameTab.cpp @@ -4,9 +4,9 @@ // #include "JSystem/JUtility/JUTNameTab.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" JUTNameTab::JUTNameTab() { setResource(NULL); diff --git a/libs/JSystem/JUtility/JUTResFont.cpp b/libs/JSystem/JUtility/JUTResFont.cpp index 10c2614859e..21fd3970362 100644 --- a/libs/JSystem/JUtility/JUTResFont.cpp +++ b/libs/JSystem/JUtility/JUTResFont.cpp @@ -246,7 +246,8 @@ void JUTResFont::setGX() { GXSetNumTevStages(1); GXSetNumTexGens(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_NONE, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); GXSetTevOp(GX_TEVSTAGE0, GX_MODULATE); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); @@ -268,18 +269,19 @@ void JUTResFont::setGX(JUtility::TColor param_0, JUtility::TColor param_1) { GXSetNumTevStages(2); GXSetNumTexGens(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); - GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_NONE, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); GXSetTevColor(GX_TEVREG0, param_0); GXSetTevColor(GX_TEVREG1, param_1); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C0, GX_CC_C1, GX_CC_TEXC, GX_CC_ZERO); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_A1, GX_CA_TEXA, 7); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_A1, GX_CA_TEXA, GX_CA_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_CPREV, GX_CC_RASC, GX_CC_ZERO); - GXSetTevAlphaIn(GX_TEVSTAGE1, 7, GX_CA_APREV, GX_CA_TEXB, 7); - GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); - GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_RASA, GX_CA_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); diff --git a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.cpp b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.cpp index 25ab3ba846f..3cb84bcfe81 100644 --- a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.cpp +++ b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype.cpp @@ -11,7 +11,6 @@ // Forward References: // -extern "C" void tolower(); extern "C" extern u8 __upper_map[256]; // @@ -67,7 +66,7 @@ SECTION_DATA extern u8 __lower_map[256] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void tolower() { +asm int tolower(int) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/ctype/tolower.s" } diff --git a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.cpp b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.cpp index 2199f7978c2..2f18ef9c6a5 100644 --- a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.cpp +++ b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.cpp @@ -7,19 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void strrchr(); -extern "C" void strchr(); -extern "C" void strncmp(); -extern "C" void strcmp(); -extern "C" void strcat(); -extern "C" void strncpy(); -extern "C" void strcpy(); -extern "C" void strlen(); - // // External References: // @@ -34,7 +21,7 @@ extern "C" void _epilog(); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strrchr() { +asm char* strrchr(const char*, int) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strrchr.s" } @@ -44,7 +31,7 @@ asm void strrchr() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strchr() { +asm char* strchr(const char*, int) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strchr.s" } @@ -54,7 +41,7 @@ asm void strchr() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strncmp() { +asm int strncmp(const char*, const char*, u32) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strncmp.s" } @@ -64,7 +51,7 @@ asm void strncmp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strcmp() { +asm int strcmp(const char*, const char*) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strcmp.s" } @@ -74,7 +61,7 @@ asm void strcmp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strcat() { +asm char* strcat(char*, const char*) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strcat.s" } @@ -84,7 +71,7 @@ asm void strcat() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strncpy() { +asm char* strncpy(char*, const char*, u32) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strncpy.s" } @@ -94,7 +81,7 @@ asm void strncpy() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strcpy() { +asm char* strcpy(char*, const char*) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strcpy.s" } @@ -104,7 +91,7 @@ asm void strcpy() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void strlen() { +asm u32 strlen(const char*) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/string/strlen.s" } diff --git a/libs/SSystem/SComponent/c_lib.cpp b/libs/SSystem/SComponent/c_lib.cpp index 8de99fe5576..d67da012d64 100644 --- a/libs/SSystem/SComponent/c_lib.cpp +++ b/libs/SSystem/SComponent/c_lib.cpp @@ -5,13 +5,13 @@ #include "SSystem/SComponent/c_lib.h" #include "JSystem/JMath/JMath.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_xyz.h" #include "dol2asm.h" #include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" #include "msl_c/math.h" -#include "msl_c/string.h" // // Forward References: diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 8eaab845369..296f216b535 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -3583,17 +3583,8 @@ extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetCullMode(); -extern "C" void GXLoadLightObjImm(); extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetZMode(); -extern "C" void GXLoadPosMtxImm(); extern "C" void GXLoadNrmMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 2291f5c8cb3..9249f54536d 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -133,9 +133,6 @@ extern "C" void __ct__19J3DAnmTextureSRTKeyFv(); extern "C" void __ct__16J3DAnmTexPatternFv(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_27(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index 612735aedae..9f39275a300 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -9,7 +9,6 @@ #include "d/meter/d_meter2_info.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Types: diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index b43b94e396f..65b36253a72 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -259,37 +259,15 @@ extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); extern "C" void draw__13J3DDrawBufferCFv(); extern "C" void GXClearVtxDesc(); extern "C" void GXSetArray(); -extern "C" void GXSetTexCoordGen2(); extern "C" void GXPixModeSync(); extern "C" void GXPeekZ(); -extern "C" void GXSetLineWidth(); extern "C" void GXSetPointSize(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetTexCopySrc(); -extern "C" void GXSetTexCopyDst(); -extern "C" void GXCopyTex(); -extern "C" void GXSetChanMatColor(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXGetTexObjWrapS(); extern "C" void GXGetTexObjWrapT(); extern "C" void GXGetTexObjTlut(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetFog(); extern "C" void GXSetColorUpdate(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetDither(); -extern "C" void GXSetProjection(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXLoadTexMtxImm(); -extern "C" void GXSetViewport(); -extern "C" void GXSetScissor(); -extern "C" void GXSetClipMode(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savefpr_26(); diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 4bd32ed79e6..358a33acbcc 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -39,8 +39,6 @@ struct dBgS_CamGndChk_Wtr { struct color_RGB_class {}; -struct _GXFogType {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -349,15 +347,7 @@ extern "C" void setEffectMtx__13J3DTexMtxInfoFPA4_f(); extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void GXInitLightAttn(); -extern "C" void GXInitLightSpot(); -extern "C" void GXInitLightDistAttn(); -extern "C" void GXInitLightPos(); -extern "C" void GXInitLightDir(); -extern "C" void GXInitLightColor(); -extern "C" void GXLoadLightObjImm(); extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); diff --git a/src/d/menu/d_menu_window.cpp b/src/d/menu/d_menu_window.cpp index 3a090963b03..ea1be627400 100644 --- a/src/d/menu/d_menu_window.cpp +++ b/src/d/menu/d_menu_window.cpp @@ -375,20 +375,7 @@ extern "C" void getTotalFreeSize__7JKRHeapFv(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetTexCoordGen2(); extern "C" void GXPixModeSync(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetTexCopySrc(); -extern "C" void GXSetTexCopyDst(); -extern "C" void GXCopyTex(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetDither(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); diff --git a/src/d/meter/d_meter2_info.cpp b/src/d/meter/d_meter2_info.cpp index 27165ba7026..3b89e0070a6 100644 --- a/src/d/meter/d_meter2_info.cpp +++ b/src/d/meter/d_meter2_info.cpp @@ -8,7 +8,6 @@ #include "d/save/d_save.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Forward References: diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a8c0ab5c2fd..a963fd0cb80 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -562,23 +562,11 @@ extern "C" void entryTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void GXClearVtxDesc(); extern "C" void GXInvalidateVtxCache(); -extern "C" void GXSetTexCoordGen2(); extern "C" void GXFlush(); extern "C" void GXEnableTexOffsets(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetCoPlanar(); extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetAlphaCompare(); extern "C" void GXSetColorUpdate(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXLoadPosMtxImm(); extern "C" void GXLoadNrmMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXSetClipMode(); extern "C" void __register_global_object(); extern "C" void __destroy_new_array(); extern "C" void __construct_array(); diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 8be4c29c98a..adcfc1be3a3 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -20,7 +20,6 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_lib.h" #include "msl_c/math.h" -#include "msl_c/string.h" // // Types: diff --git a/src/init.cpp b/src/init.cpp index 6a5b0d1a27a..f787ad2eeaf 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -33,7 +33,6 @@ SECTION_INIT void __init_registers(); SECTION_INIT void __init_data(); SECTION_INIT void __init_hardware(); SECTION_INIT void __flush_cache(); -SECTION_INIT void memset(); SECTION_INIT void __fill_mem(); SECTION_INIT void TRK_memset(); SECTION_INIT void TRK_memcpy(); @@ -147,7 +146,7 @@ SECTION_INIT asm void __flush_cache() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -SECTION_INIT asm void memset() { +SECTION_INIT asm void* memset(void*, int, u32) { nofralloc #include "asm/init/memset.s" } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index c11c6f628ad..7e84af69512 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -163,8 +163,6 @@ struct dDlst_list_c { /* 800565EC */ void entryZSortXluDrawList(J3DDrawBuffer*, J3DPacket*, cXyz&); }; -struct _GXCompare {}; - struct JAISoundID {}; struct Z2SoundHandlePool {}; @@ -563,8 +561,6 @@ extern "C" void GXSetArray(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXSetTexCoordScaleManually(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXLoadPosMtxImm(); extern "C" void GXLoadNrmMtxImm(); extern "C" void __construct_new_array(); extern "C" void _savegpr_15(); diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index 54bdb15d628..c3286e0f649 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -17,7 +17,6 @@ #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_dvd_thread.h" #include "m_Do/m_Do_graphic.h" -#include "msl_c/string.h" // // Types: