diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-10-11 09:38:53 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-11 18:38:53 +0200 |
| commit | a2636e84c3eefa98ad8a24dbb5398b664f3d732a (patch) | |
| tree | 2d2dd404de4364097f3490c77dfc8167e420da5e /libs/JSystem/J3DGraphBase | |
| parent | 5084413cb7c8869a866ed552070369b1aadc748f (diff) | |
J3D setup (#155)
* setup j3d classes
* remove asm
* fixes
* fix newDifferedDisplayList
Diffstat (limited to 'libs/JSystem/J3DGraphBase')
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DMatBlock.cpp | 704 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DMaterial.cpp | 338 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DPacket.cpp | 179 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DShape.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp | 63 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DSys.cpp | 4 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DTexture.cpp | 20 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DTransform.cpp | 25 | ||||
| -rw-r--r-- | libs/JSystem/J3DGraphBase/J3DVertex.cpp | 322 |
9 files changed, 367 insertions, 1290 deletions
diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index 9f6c3ff241..d270cf02f3 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -11,14 +11,6 @@ // Types: // -struct _GXTexMapID {}; - -struct _GXTexCoordID {}; - -struct _GXTevStageID {}; - -struct _GXTevRegID {}; - struct _GXTevKColorID {}; struct _GXIndTexStageID {}; @@ -31,656 +23,14 @@ struct _GXFogType {}; struct _GXFogAdjTable {}; -struct _GXChannelID {}; - -struct J3DZMode {}; - -struct J3DTexMtx { - /* 803238C4 */ void load(u32) const; - /* 80323900 */ void calc(f32 const (*)[4]); - /* 80323C0C */ void calcPostTexMtx(f32 const (*)[4]); -}; - -struct J3DNBTScale {}; - -struct J3DTexGenBlock { - /* 80317334 */ bool getNBTScale(); - /* 80317420 */ void setNBTScale(J3DNBTScale); - /* 80317424 */ void setNBTScale(J3DNBTScale const*); -}; - -struct J3DTexCoord {}; - -struct J3DTexGenBlockPatched { - /* 80317180 */ ~J3DTexGenBlockPatched(); - /* 80317644 */ void initialize(); - /* 80317B9C */ s32 countDLSize(); - /* 8031AA88 */ void patch(); - /* 8031AC68 */ void diff(u32); - /* 8031ACD0 */ void diffTexMtx(); - /* 8031AD30 */ void diffTexGen(); - /* 80320084 */ void reset(J3DTexGenBlock*); - /* 803213C0 */ void calc(f32 const (*)[4]); - /* 80321584 */ void calcWithoutViewMtx(f32 const (*)[4]); - /* 803216D8 */ void calcPostTexMtx(f32 const (*)[4]); - /* 8032181C */ void calcPostTexMtxWithoutViewMtx(f32 const (*)[4]); - /* 80322D34 */ void setTexGenNum(u32); - /* 80322D3C */ void setTexGenNum(u32 const*); - /* 80322D48 */ void getTexGenNum() const; - /* 80322D50 */ void setTexCoord(u32, J3DTexCoord const*); - /* 80322D64 */ void getTexCoord(u32); - /* 80322D78 */ void setTexMtx(u32, J3DTexMtx*); - /* 80322D88 */ void getTexMtx(u32); - /* 80322D98 */ void getTexMtxOffset() const; - /* 80322DA0 */ void setTexMtxOffset(u32); - /* 80322E70 */ void load(); - /* 80322E74 */ void getType(); -}; - -struct J3DTexGenBlockBasic { - /* 803176A4 */ void initialize(); - /* 80317BAC */ s32 countDLSize(); - /* 8031A9E8 */ void load(); - /* 8031ABC0 */ void patch(); - /* 803202DC */ void reset(J3DTexGenBlock*); - /* 80322C6C */ void getType(); - /* 80322C9C */ void setNBTScale(J3DNBTScale const*); - /* 80322C78 */ void setNBTScale(J3DNBTScale); - /* 80322CC0 */ void getNBTScale(); - /* 80322CC8 */ ~J3DTexGenBlockBasic(); -}; - -struct J3DTexGenBlock4 { - /* 80317674 */ void initialize(); - /* 80317BA4 */ s32 countDLSize(); - /* 8031A948 */ void load(); - /* 8031AB18 */ void patch(); - /* 803201A0 */ void reset(J3DTexGenBlock*); - /* 80322DA8 */ void getType(); - /* 80322DD8 */ void setNBTScale(J3DNBTScale const*); - /* 80322DB4 */ void setNBTScale(J3DNBTScale); - /* 80322DFC */ void getNBTScale(); - /* 80322E04 */ ~J3DTexGenBlock4(); -}; - -struct J3DTevSwapModeTable {}; - -struct J3DTevSwapModeInfo {}; - -struct J3DTevStage {}; - -struct J3DTevOrder {}; - -struct J3DIndTevStage {}; - -struct J3DGXColor {}; - -struct J3DTevBlock { - /* 8000DBC8 */ void patchTexNoAndTexCoordScale(); - /* 8000DBD4 */ void patch(); - /* 8000DF84 */ bool getIndTevStage(u32); - /* 8000DF8C */ bool getTevStage(u32); - /* 8000DF94 */ void getTexNo(u32) const; - /* 8000DFA0 */ bool getTevSwapModeTable(u32); - /* 8000DFA8 */ bool getTevKAlphaSel(u32); - /* 8000DFB0 */ bool getTevKColorSel(u32); - /* 8000DFB8 */ bool getTevOrder(u32); - /* 8000DFC0 */ bool getTevKColor(u32); - /* 8000DFC8 */ bool getTevColor(u32); - /* 8000DFD0 */ bool getTevStageNum() const; - /* 8000E0A4 */ void setIndTevStage(u32, J3DIndTevStage); - /* 80323554 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 8000E0A8 */ void setTevStage(u32, J3DTevStage); - /* 80323550 */ void setTevStage(u32, J3DTevStage const*); - /* 8000E0AC */ void setTexNo(u32, u16); - /* 80323544 */ void setTexNo(u32, u16 const*); - /* 8000E0B0 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable); - /* 80322960 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable const*); - /* 8000E0B4 */ void setTevKAlphaSel(u32, u8); - /* 80322954 */ void setTevKAlphaSel(u32, u8 const*); - /* 8000E0B8 */ void setTevKColorSel(u32, u8); - /* 80322950 */ void setTevKColorSel(u32, u8 const*); - /* 8000E0BC */ void setTevOrder(u32, J3DTevOrder); - /* 80323548 */ void setTevOrder(u32, J3DTevOrder const*); - /* 800732AC */ void setTevKColor(u32, J3DGXColor const*); - /* 8000E0C0 */ void setTevKColor(u32, J3DGXColor); - /* 80110E80 */ void setTevColor(u32, J3DGXColorS10 const*); - /* 8000E0C4 */ void setTevColor(u32, J3DGXColorS10); - /* 8032354C */ void setTevStageNum(u8 const*); - /* 8000E0C8 */ void setTevStageNum(u8); - /* 80317224 */ ~J3DTevBlock(); - /* 8031730C */ bool countDLSize(); - /* 80317330 */ void load(); - /* 80317350 */ void reset(J3DTevBlock*); - /* 8031CD44 */ void diff(u32); - /* 8031E098 */ void indexToPtr_private(u32); - /* 80321938 */ void diffTevReg(); - /* 8032193C */ void diffTevStageIndirect(); - /* 80321940 */ void diffTevStage(); - /* 80321944 */ void diffTexCoordScale(); - /* 80321948 */ void diffTexNo(); - /* 80321FE0 */ void setTexNoOffset(u32); - /* 80322958 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo); - /* 8032295C */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const*); - /* 80322964 */ bool getTevRegOffset() const; - /* 8032296C */ void setTevRegOffset(u32); - /* 8032353C */ void patchTexNo(); - /* 80323540 */ void patchTevReg(); - /* 80323558 */ bool getTexNoOffset() const; -}; - -struct J3DTevBlockPatched { - /* 803176E0 */ void initialize(); - /* 80317BB4 */ s32 countDLSize(); - /* 8031BF4C */ void patchTexNo(); - /* 8031BFE0 */ void patchTevReg(); - /* 8031C0AC */ void patchTexNoAndTexCoordScale(); - /* 8031C228 */ void patch(); - /* 8031CE00 */ void diffTexNo(); - /* 8031CE64 */ void diffTevStage(); - /* 8031CF78 */ void diffTevStageIndirect(); - /* 8031D028 */ void diffTevReg(); - /* 8031D0C4 */ void diffTexCoordScale(); - /* 8031DFB4 */ void ptrToIndex(); - /* 80320418 */ void reset(J3DTevBlock*); - /* 80322970 */ void load(); - /* 80322974 */ void indexToPtr(); - /* 80322998 */ void getType(); - /* 803229A4 */ void setTevStageNum(u8); - /* 803229AC */ void setTevStageNum(u8 const*); - /* 803229B8 */ void getTevStageNum() const; - /* 803229C0 */ void setTexNo(u32, u16); - /* 803229D0 */ void setTexNo(u32, u16 const*); - /* 803229E4 */ void getTexNo(u32) const; - /* 80322A08 */ void setTevOrder(u32, J3DTevOrder const*); - /* 803229F4 */ void setTevOrder(u32, J3DTevOrder); - /* 80322A1C */ void getTevOrder(u32); - /* 80322A30 */ void setTevStage(u32, J3DTevStage); - /* 80322A6C */ void setTevStage(u32, J3DTevStage const*); - /* 80322AA8 */ void getTevStage(u32); - /* 80322ABC */ void setIndTevStage(u32, J3DIndTevStage); - /* 80322AD0 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 80322AE4 */ void getIndTevStage(u32); - /* 80322B24 */ void setTevColor(u32, J3DGXColorS10 const*); - /* 80322AF8 */ void setTevColor(u32, J3DGXColorS10); - /* 80322B50 */ void getTevColor(u32); - /* 80322B90 */ void setTevKColor(u32, J3DGXColor const*); - /* 80322B64 */ void setTevKColor(u32, J3DGXColor); - /* 80322BBC */ void getTevKColor(u32); - /* 80322BD0 */ void setTevKColorSel(u32, u8); - /* 80322BDC */ void setTevKColorSel(u32, u8 const*); - /* 80322BEC */ void getTevKColorSel(u32); - /* 80322BF8 */ void getTexNoOffset() const; - /* 80322C00 */ void getTevRegOffset() const; - /* 80322C08 */ void setTevRegOffset(u32); - /* 80322C10 */ ~J3DTevBlockPatched(); -}; - -struct J3DTevBlockNull { - /* 803176D4 */ void initialize(); -}; - -struct J3DTevBlock4 { - /* 803178EC */ void initialize(); - /* 80317BCC */ s32 countDLSize(); - /* 8031B4C0 */ void load(); - /* 8031C6F4 */ void patchTexNo(); - /* 8031C788 */ void patchTevReg(); - /* 8031C854 */ void patchTexNoAndTexCoordScale(); - /* 8031C9D0 */ void patch(); - /* 8031D758 */ void diffTexNo(); - /* 8031D7BC */ void diffTevReg(); - /* 8031D858 */ void diffTevStage(); - /* 8031D96C */ void diffTevStageIndirect(); - /* 8031DA1C */ void diffTexCoordScale(); - /* 8032098C */ void reset(J3DTevBlock*); - /* 80321FE8 */ void ptrToIndex(); - /* 80321FEC */ void indexToPtr(); - /* 80322010 */ void getType(); - /* 8032201C */ void setTexNo(u32, u16); - /* 8032202C */ void setTexNo(u32, u16 const*); - /* 80322040 */ void getTexNo(u32) const; - /* 80322050 */ void setTevOrder(u32, J3DTevOrder); - /* 80322064 */ void setTevOrder(u32, J3DTevOrder const*); - /* 80322078 */ void getTevOrder(u32); - /* 8032208C */ void setTevColor(u32, J3DGXColorS10); - /* 803220B8 */ void setTevColor(u32, J3DGXColorS10 const*); - /* 803220E4 */ void getTevColor(u32); - /* 80322124 */ void setTevKColor(u32, J3DGXColor const*); - /* 803220F8 */ void setTevKColor(u32, J3DGXColor); - /* 80322150 */ void getTevKColor(u32); - /* 80322164 */ void setTevKColorSel(u32, u8); - /* 80322170 */ void setTevKColorSel(u32, u8 const*); - /* 80322180 */ void getTevKColorSel(u32); - /* 8032218C */ void setTevKAlphaSel(u32, u8); - /* 80322198 */ void setTevKAlphaSel(u32, u8 const*); - /* 803221A8 */ void getTevKAlphaSel(u32); - /* 803221B4 */ void setTevStageNum(u8); - /* 803221BC */ void setTevStageNum(u8 const*); - /* 803221C8 */ void getTevStageNum() const; - /* 8032220C */ void setTevStage(u32, J3DTevStage const*); - /* 803221D0 */ void setTevStage(u32, J3DTevStage); - /* 80322248 */ void getTevStage(u32); - /* 80322294 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const*); - /* 8032225C */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo); - /* 803222CC */ void setTevSwapModeTable(u32, J3DTevSwapModeTable); - /* 803222DC */ void setTevSwapModeTable(u32, J3DTevSwapModeTable const*); - /* 803222EC */ void getTevSwapModeTable(u32); - /* 80322310 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 803222FC */ void setIndTevStage(u32, J3DIndTevStage); - /* 80322324 */ void getIndTevStage(u32); - /* 80322338 */ void getTexNoOffset() const; - /* 80322340 */ void getTevRegOffset() const; - /* 80322348 */ void setTevRegOffset(u32); - /* 80322350 */ ~J3DTevBlock4(); -}; - -struct J3DTevBlock2 { - /* 80317810 */ void initialize(); - /* 80317BC4 */ s32 countDLSize(); - /* 8031AFA4 */ void load(); - /* 8031C3F8 */ void patchTexNo(); - /* 8031C48C */ void patchTevReg(); - /* 8031C558 */ void patchTexNoAndTexCoordScale(); - /* 8031C6A8 */ void patch(); - /* 8031D3D0 */ void diffTexNo(); - /* 8031D434 */ void diffTevReg(); - /* 8031D4D0 */ void diffTevStage(); - /* 8031D5E4 */ void diffTevStageIndirect(); - /* 8031D694 */ void diffTexCoordScale(); - /* 803206AC */ void reset(J3DTevBlock*); - /* 803223AC */ void ptrToIndex(); - /* 803223B0 */ void indexToPtr(); - /* 803223D4 */ void getType(); - /* 803223E0 */ void setTexNo(u32, u16); - /* 803223F0 */ void setTexNo(u32, u16 const*); - /* 80322404 */ void getTexNo(u32) const; - /* 80322414 */ void setTevOrder(u32, J3DTevOrder); - /* 80322428 */ void setTevOrder(u32, J3DTevOrder const*); - /* 8032243C */ void getTevOrder(u32); - /* 80322450 */ void setTevColor(u32, J3DGXColorS10); - /* 8032247C */ void setTevColor(u32, J3DGXColorS10 const*); - /* 803224A8 */ void getTevColor(u32); - /* 803224BC */ void setTevKColor(u32, J3DGXColor); - /* 803224E8 */ void setTevKColor(u32, J3DGXColor const*); - /* 80322514 */ void getTevKColor(u32); - /* 80322528 */ void setTevKColorSel(u32, u8); - /* 80322534 */ void setTevKColorSel(u32, u8 const*); - /* 80322544 */ void getTevKColorSel(u32); - /* 80322550 */ void setTevKAlphaSel(u32, u8); - /* 8032255C */ void setTevKAlphaSel(u32, u8 const*); - /* 8032256C */ void getTevKAlphaSel(u32); - /* 80322580 */ void setTevStageNum(u8 const*); - /* 80322578 */ void setTevStageNum(u8); - /* 8032258C */ void getTevStageNum() const; - /* 80322594 */ void setTevStage(u32, J3DTevStage); - /* 803225D0 */ void setTevStage(u32, J3DTevStage const*); - /* 8032260C */ void getTevStage(u32); - /* 80322620 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo); - /* 80322658 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const*); - /* 80322690 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable); - /* 803226A0 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable const*); - /* 803226B0 */ void getTevSwapModeTable(u32); - /* 803226C0 */ void setIndTevStage(u32, J3DIndTevStage); - /* 803226D4 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 803226E8 */ void getIndTevStage(u32); - /* 803226FC */ void getTexNoOffset() const; - /* 80322704 */ void getTevRegOffset() const; - /* 8032270C */ void setTevRegOffset(u32); - /* 80322714 */ ~J3DTevBlock2(); -}; - -struct J3DTevBlock16 { - /* 80317A00 */ void initialize(); - /* 80317BD4 */ s32 countDLSize(); - /* 8031BA04 */ void load(); - /* 8031CA1C */ void patchTexNo(); - /* 8031CAB0 */ void patchTevReg(); - /* 8031CB7C */ void patchTexNoAndTexCoordScale(); - /* 8031CCF8 */ void patch(); - /* 8031DB14 */ void diffTexNo(); - /* 8031DB78 */ void diffTevReg(); - /* 8031DC14 */ void diffTevStage(); - /* 8031DD28 */ void diffTevStageIndirect(); - /* 8031DDD8 */ void diffTexCoordScale(); - /* 8031DED0 */ void ptrToIndex(); - /* 80320E24 */ void reset(J3DTevBlock*); - /* 80321C20 */ void indexToPtr(); - /* 80321C44 */ void getType(); - /* 80321C50 */ void setTexNo(u32, u16); - /* 80321C60 */ void setTexNo(u32, u16 const*); - /* 80321C74 */ void getTexNo(u32) const; - /* 80321C84 */ void setTevOrder(u32, J3DTevOrder); - /* 80321C98 */ void setTevOrder(u32, J3DTevOrder const*); - /* 80321CAC */ void getTevOrder(u32); - /* 80321CC0 */ void setTevColor(u32, J3DGXColorS10); - /* 80321CEC */ void setTevColor(u32, J3DGXColorS10 const*); - /* 80321D18 */ void getTevColor(u32); - /* 80321D2C */ void setTevKColor(u32, J3DGXColor); - /* 80321D58 */ void setTevKColor(u32, J3DGXColor const*); - /* 80321D84 */ void getTevKColor(u32); - /* 80321D98 */ void setTevKColorSel(u32, u8); - /* 80321DA4 */ void setTevKColorSel(u32, u8 const*); - /* 80321DB4 */ void getTevKColorSel(u32); - /* 80321DC0 */ void setTevKAlphaSel(u32, u8); - /* 80321DCC */ void setTevKAlphaSel(u32, u8 const*); - /* 80321DDC */ void getTevKAlphaSel(u32); - /* 80321DE8 */ void setTevStageNum(u8); - /* 80321DF0 */ void setTevStageNum(u8 const*); - /* 80321DFC */ void getTevStageNum() const; - /* 80321E04 */ void setTevStage(u32, J3DTevStage); - /* 80321E40 */ void setTevStage(u32, J3DTevStage const*); - /* 80321E7C */ void getTevStage(u32); - /* 80321E90 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo); - /* 80321EC8 */ void setTevSwapModeInfo(u32, J3DTevSwapModeInfo const*); - /* 80321F00 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable); - /* 80321F10 */ void setTevSwapModeTable(u32, J3DTevSwapModeTable const*); - /* 80321F20 */ void getTevSwapModeTable(u32); - /* 80321F30 */ void setIndTevStage(u32, J3DIndTevStage); - /* 80321F44 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 80321F58 */ void getIndTevStage(u32); - /* 80321F6C */ void getTexNoOffset() const; - /* 80321F74 */ void getTevRegOffset() const; - /* 80321F7C */ void setTevRegOffset(u32); - /* 80321F84 */ ~J3DTevBlock16(); -}; - -struct J3DTevBlock1 { - /* 803177E8 */ void initialize(); - /* 80317BBC */ s32 countDLSize(); - /* 8031AD64 */ void load(); - /* 8031C274 */ void patchTexNo(); - /* 8031C2E4 */ void patchTevReg(); - /* 8031C2E8 */ void patchTexNoAndTexCoordScale(); - /* 8031C3CC */ void patch(); - /* 8031D1BC */ void diffTexNo(); - /* 8031D1F4 */ void diffTevReg(); - /* 8031D1F8 */ void diffTevStage(); - /* 8031D2E8 */ void diffTevStageIndirect(); - /* 8031D368 */ void diffTexCoordScale(); - /* 803205D4 */ void reset(J3DTevBlock*); - /* 80322770 */ void ptrToIndex(); - /* 80322774 */ void indexToPtr(); - /* 80322798 */ void getType(); - /* 803227A4 */ void setTexNo(u32, u16); - /* 803227B4 */ void setTexNo(u32, u16 const*); - /* 803227C8 */ void getTexNo(u32) const; - /* 803227D8 */ void setTevOrder(u32, J3DTevOrder); - /* 803227EC */ void setTevOrder(u32, J3DTevOrder const*); - /* 80322800 */ void getTevOrder(u32); - /* 80322814 */ void setTevStageNum(u8); - /* 80322818 */ void setTevStageNum(u8 const*); - /* 8032281C */ bool getTevStageNum() const; - /* 80322824 */ void setTevStage(u32, J3DTevStage); - /* 80322860 */ void setTevStage(u32, J3DTevStage const*); - /* 8032289C */ void getTevStage(u32); - /* 803228B0 */ void setIndTevStage(u32, J3DIndTevStage); - /* 803228C4 */ void setIndTevStage(u32, J3DIndTevStage const*); - /* 803228D8 */ void getIndTevStage(u32); - /* 803228EC */ void getTexNoOffset() const; - /* 803228F4 */ ~J3DTevBlock1(); -}; - struct J3DSys { static u8 sTexCoordScaleTable[64 + 4 /* padding */]; }; -struct J3DPEBlockXlu { - /* 80317BF4 */ s32 countDLSize(); - /* 8031E98C */ void load(); - /* 80323258 */ void getType(); - /* 80323264 */ ~J3DPEBlockXlu(); -}; - -struct J3DPEBlockTexEdge { - /* 80317BEC */ s32 countDLSize(); - /* 8031E6C8 */ void load(); - /* 803232C0 */ void getType(); - /* 803232CC */ ~J3DPEBlockTexEdge(); -}; - -struct J3DPEBlockOpa { - /* 80317BE4 */ s32 countDLSize(); - /* 8031E408 */ void load(); - /* 80323328 */ void getType(); - /* 80323334 */ ~J3DPEBlockOpa(); -}; - -struct J3DBlend {}; - -struct J3DFog {}; - -struct J3DAlphaComp {}; - -struct J3DPEBlock { - /* 8000DBCC */ void patch(); - /* 8000DF3C */ bool getZCompLoc() const; - /* 8000DF44 */ bool getZMode(); - /* 8000DF4C */ bool getBlend(); - /* 8000DF54 */ bool getAlphaComp(); - /* 8000DF5C */ bool getFog(); - /* 8000E010 */ void setZCompLoc(u8); - /* 80317378 */ void setZCompLoc(u8 const*); - /* 8000E014 */ void setZMode(J3DZMode); - /* 80317374 */ void setZMode(J3DZMode const*); - /* 8000E018 */ void setBlend(J3DBlend const&); - /* 80317370 */ void setBlend(J3DBlend const*); - /* 8000E01C */ void setAlphaComp(J3DAlphaComp const&); - /* 8031736C */ void setAlphaComp(J3DAlphaComp const*); - /* 80317344 */ void diff(u32); - /* 80317348 */ void reset(J3DPEBlock*); - /* 8031735C */ void diffFog(); - /* 80317360 */ void diffBlend(); - /* 80317364 */ void setFog(J3DFog*); - /* 80317368 */ void setFog(J3DFog); - /* 80317380 */ void setDither(u8 const*); - /* 8031737C */ void setDither(u8); - /* 80317384 */ bool getDither() const; - /* 8031738C */ bool getFogOffset() const; - /* 80317394 */ void setFogOffset(u32); -}; - -struct J3DPEBlockFull { - /* 80317B58 */ void initialize(); - /* 80317C04 */ s32 countDLSize(); - /* 8031F3C0 */ void load(); - /* 8031F890 */ void patch(); - /* 8031F940 */ void diffFog(); - /* 8031F9B8 */ void diffBlend(); - /* 8031FCA0 */ void diff(u32); - /* 8032129C */ void reset(J3DPEBlock*); - /* 8032194C */ void getType(); - /* 80321958 */ void setFog(J3DFog*); - /* 8032197C */ void setFog(J3DFog); - /* 803219A0 */ void getFog(); - /* 803219A8 */ void setAlphaComp(J3DAlphaComp const&); - /* 803219C4 */ void setAlphaComp(J3DAlphaComp const*); - /* 803219E0 */ void getAlphaComp(); - /* 803219E8 */ void setBlend(J3DBlend const&); - /* 803219F4 */ void setBlend(J3DBlend const*); - /* 80321A00 */ void getBlend(); - /* 80321A08 */ void setZMode(J3DZMode); - /* 80321A14 */ void setZMode(J3DZMode const*); - /* 80321A20 */ void getZMode(); - /* 80321A28 */ void setZCompLoc(u8); - /* 80321A30 */ void setZCompLoc(u8 const*); - /* 80321A3C */ void getZCompLoc() const; - /* 80321A44 */ void setDither(u8); - /* 80321A4C */ void setDither(u8 const*); - /* 80321A58 */ void getDither() const; - /* 80321A60 */ void getFogOffset() const; - /* 80321A68 */ void setFogOffset(u32); - /* 80321A70 */ ~J3DPEBlockFull(); -}; - -struct J3DPEBlockFogOff { - /* 80317B34 */ void initialize(); - /* 80317BFC */ s32 countDLSize(); - /* 8031EC50 */ void load(); - /* 8031F0D8 */ void diffBlend(); - /* 803211B4 */ void reset(J3DPEBlock*); - /* 80321ACC */ void diff(u32); - /* 80321B00 */ void getType(); - /* 80321B0C */ void setAlphaComp(J3DAlphaComp const&); - /* 80321B28 */ void setAlphaComp(J3DAlphaComp const*); - /* 80321B44 */ void getAlphaComp(); - /* 80321B4C */ void setBlend(J3DBlend const&); - /* 80321B58 */ void setBlend(J3DBlend const*); - /* 80321B64 */ void getBlend(); - /* 80321B6C */ void setZMode(J3DZMode); - /* 80321B78 */ void setZMode(J3DZMode const*); - /* 80321B84 */ void getZMode(); - /* 80321B8C */ void setZCompLoc(u8); - /* 80321B94 */ void setZCompLoc(u8 const*); - /* 80321BA0 */ void getZCompLoc() const; - /* 80321BA8 */ void setDither(u8); - /* 80321BB0 */ void setDither(u8 const*); - /* 80321BBC */ void getDither() const; - /* 80321BC4 */ ~J3DPEBlockFogOff(); -}; - -struct J3DNBTScaleInfo { - /* 8032587C */ void operator=(J3DNBTScaleInfo const&); -}; - -struct J3DLightObj { - /* 80323590 */ void load(u32) const; -}; - -struct J3DIndTexOrder {}; - struct J3DIndTexMtxInfo { /* 803257DC */ void operator=(J3DIndTexMtxInfo const&); }; -struct J3DIndTexMtx { - /* 8000E064 */ ~J3DIndTexMtx(); -}; - -struct J3DIndTexCoordScale { - /* 8000E024 */ ~J3DIndTexCoordScale(); -}; - -struct J3DIndBlock {}; - -struct J3DIndBlockFull { - /* 80317B28 */ void initialize(); - /* 80317BDC */ s32 countDLSize(); - /* 8031E12C */ void load(); - /* 8031E328 */ void diff(u32); - /* 803210B0 */ void reset(J3DIndBlock*); - /* 80323390 */ void getType(); - /* 8032339C */ void setIndTexStageNum(u8); - /* 803233A4 */ void getIndTexStageNum() const; - /* 803233C0 */ void setIndTexOrder(u32, J3DIndTexOrder const*); - /* 803233AC */ void setIndTexOrder(u32, J3DIndTexOrder); - /* 803233D4 */ void getIndTexOrder(u32); - /* 803233E8 */ void setIndTexMtx(u32, J3DIndTexMtx); - /* 8032341C */ void setIndTexMtx(u32, J3DIndTexMtx const*); - /* 80323450 */ void getIndTexMtx(u32); - /* 80323464 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale); - /* 80323478 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale const*); - /* 8032348C */ void getIndTexCoordScale(u32); - /* 803234A0 */ ~J3DIndBlockFull(); -}; - -struct J3DFogInfo { - /* 80325800 */ void operator=(J3DFogInfo const&); -}; - -struct J3DColorChan {}; - -struct J3DColorBlock { - /* 8000DFF0 */ bool getAmbColor(u32); - /* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*); - /* 8000E0D4 */ void setAmbColor(u32, J3DGXColor); - /* 801A4C08 */ void setLight(u32, J3DLightObj*); - /* 80317438 */ void diffAmbColor(); - /* 80317444 */ void diffLightObj(u32); - /* 80317454 */ bool getLight(u32); -}; - -struct J3DColorBlockLightOn { - /* 80317580 */ void initialize(); - /* 80317B94 */ s32 countDLSize(); - /* 803187F4 */ void load(); - /* 803194E8 */ void patch(); - /* 80319534 */ void patchMatColor(); - /* 803196E0 */ void patchLight(); - /* 8031A13C */ void diff(u32); - /* 8031A1DC */ void diffAmbColor(); - /* 8031A358 */ void diffMatColor(); - /* 8031A4D4 */ void diffColorChan(); - /* 8031A8E0 */ void diffLightObj(u32); - /* 8031FF34 */ void reset(J3DColorBlock*); - /* 80322E80 */ void getType(); - /* 80322E8C */ void setMatColor(u32, J3DGXColor); - /* 80322EB8 */ void setMatColor(u32, J3DGXColor const*); - /* 80322EE4 */ void getMatColor(u32); - /* 80322F24 */ void setAmbColor(u32, J3DGXColor const*); - /* 80322EF8 */ void setAmbColor(u32, J3DGXColor); - /* 80322F50 */ void getAmbColor(u32); - /* 80322F64 */ void setColorChanNum(u8 const*); - /* 80322F70 */ void setColorChanNum(u8); - /* 80322F78 */ void getColorChanNum() const; - /* 80322F80 */ void setColorChan(u32, J3DColorChan const*); - /* 80322F94 */ void setColorChan(u32, J3DColorChan const&); - /* 80322FA8 */ void getColorChan(u32); - /* 80322FBC */ void setLight(u32, J3DLightObj*); - /* 80322FCC */ void getLight(u32); - /* 80322FDC */ void setCullMode(u8); - /* 80322FE4 */ void setCullMode(u8 const*); - /* 80322FF0 */ void getCullMode() const; - /* 80322FF8 */ void getMatColorOffset() const; - /* 80323000 */ void getColorChanOffset() const; - /* 80323008 */ void setMatColorOffset(u32); - /* 80323010 */ void setColorChanOffset(u32); - /* 80323018 */ ~J3DColorBlockLightOn(); -}; - -struct J3DColorBlockLightOff { - /* 803170DC */ ~J3DColorBlockLightOff(); - /* 8031747C */ void initialize(); - /* 80317B84 */ s32 countDLSize(); - /* 80317C0C */ void load(); - /* 80318EB4 */ void patch(); - /* 80318F00 */ void patchMatColor(); - /* 803190AC */ void patchLight(); - /* 80319B4C */ void diff(u32); - /* 80319BB4 */ void diffMatColor(); - /* 80319D30 */ void diffColorChan(); - /* 8031FD08 */ void reset(J3DColorBlock*); - /* 80323184 */ void setMatColor(u32, J3DGXColor const*); - /* 80323158 */ void setMatColor(u32, J3DGXColor); - /* 803231B0 */ void getMatColor(u32); - /* 803231C4 */ void setColorChanNum(u8 const*); - /* 803231D0 */ void setColorChanNum(u8); - /* 803231D8 */ void getColorChanNum() const; - /* 803231E0 */ void setColorChan(u32, J3DColorChan const*); - /* 803231F4 */ void setColorChan(u32, J3DColorChan const&); - /* 80323208 */ void getColorChan(u32); - /* 8032321C */ void setCullMode(u8); - /* 80323224 */ void setCullMode(u8 const*); - /* 80323230 */ void getCullMode() const; - /* 80323238 */ void getMatColorOffset() const; - /* 80323240 */ void getColorChanOffset() const; - /* 80323248 */ void setMatColorOffset(u32); - /* 80323250 */ void setColorChanOffset(u32); - /* 80323560 */ void getType(); -}; - -struct J3DColorBlockAmbientOn { - /* 803174DC */ void initialize(); - /* 80317B8C */ s32 countDLSize(); - /* 8031816C */ void load(); - /* 8031FDE4 */ void reset(J3DColorBlock*); - /* 80323074 */ void getType(); - /* 80323080 */ void setAmbColor(u32, J3DGXColor); - /* 803230AC */ void setAmbColor(u32, J3DGXColor const*); - /* 803230D8 */ void getAmbColor(u32); - /* 803230EC */ ~J3DColorBlockAmbientOn(); -}; - // // Forward References: // @@ -1240,9 +590,6 @@ extern "C" void __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo(); extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo(); extern "C" void __as__15J3DNBTScaleInfoFRC15J3DNBTScaleInfo(); extern "C" void DCStoreRange(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXInverse(); extern "C" void GDOverflowed(); extern "C" void __destroy_arr(); extern "C" void _savegpr_24(); @@ -1528,7 +875,8 @@ SECTION_SDATA2 static u32 lit_585 = 0x02000201; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DColorBlockLightOff::load() { +extern "C" asm void load__21J3DColorBlockLightOffFv() { + // asm void J3DColorBlockLightOff::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__21J3DColorBlockLightOffFv.s" } @@ -1542,7 +890,8 @@ static u8 SizeOfJ3DColorBlockAmbientOnLoad[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DColorBlockAmbientOn::load() { +extern "C" asm void load__22J3DColorBlockAmbientOnFv() { + // asm void J3DColorBlockAmbientOn::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__22J3DColorBlockAmbientOnFv.s" } @@ -1552,7 +901,8 @@ asm void J3DColorBlockAmbientOn::load() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DColorBlockLightOn::load() { +extern "C" asm void load__20J3DColorBlockLightOnFv() { + // asm void J3DColorBlockLightOn::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__20J3DColorBlockLightOnFv.s" } @@ -2351,7 +1701,8 @@ asm void J3DIndBlockFull::diff(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockOpa::load() { +extern "C" asm void load__13J3DPEBlockOpaFv() { + // asm void J3DPEBlockOpa::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__13J3DPEBlockOpaFv.s" } @@ -2361,7 +1712,8 @@ asm void J3DPEBlockOpa::load() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockTexEdge::load() { +extern "C" asm void load__17J3DPEBlockTexEdgeFv() { + // asm void J3DPEBlockTexEdge::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__17J3DPEBlockTexEdgeFv.s" } @@ -2371,7 +1723,8 @@ asm void J3DPEBlockTexEdge::load() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockXlu::load() { +extern "C" asm void load__13J3DPEBlockXluFv() { + // asm void J3DPEBlockXlu::load() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/load__13J3DPEBlockXluFv.s" } @@ -2494,7 +1847,8 @@ SECTION_DEAD static char const* const pad_803A1EC5 = "\0\0"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTexGenBlockPatched::reset(J3DTexGenBlock* param_0) { +extern "C" asm void reset__21J3DTexGenBlockPatchedFP14J3DTexGenBlock() { + // asm void J3DTexGenBlockPatched::reset(J3DTexGenBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__21J3DTexGenBlockPatchedFP14J3DTexGenBlock.s" } @@ -2505,7 +1859,8 @@ asm void J3DTexGenBlockPatched::reset(J3DTexGenBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTexGenBlock4::reset(J3DTexGenBlock* param_0) { +extern "C" asm void reset__15J3DTexGenBlock4FP14J3DTexGenBlock() { + // asm void J3DTexGenBlock4::reset(J3DTexGenBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__15J3DTexGenBlock4FP14J3DTexGenBlock.s" } @@ -2516,7 +1871,8 @@ asm void J3DTexGenBlock4::reset(J3DTexGenBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTexGenBlockBasic::reset(J3DTexGenBlock* param_0) { +extern "C" asm void reset__19J3DTexGenBlockBasicFP14J3DTexGenBlock() { + // asm void J3DTexGenBlockBasic::reset(J3DTexGenBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__19J3DTexGenBlockBasicFP14J3DTexGenBlock.s" } @@ -2527,7 +1883,8 @@ asm void J3DTexGenBlockBasic::reset(J3DTexGenBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlockPatched::reset(J3DTevBlock* param_0) { +extern "C" asm void reset__18J3DTevBlockPatchedFP11J3DTevBlock() { + // asm void J3DTevBlockPatched::reset(J3DTevBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__18J3DTevBlockPatchedFP11J3DTevBlock.s" } @@ -2537,7 +1894,8 @@ asm void J3DTevBlockPatched::reset(J3DTevBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlock1::reset(J3DTevBlock* param_0) { +extern "C" asm void reset__12J3DTevBlock1FP11J3DTevBlock() { + // asm void J3DTevBlock1::reset(J3DTevBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__12J3DTevBlock1FP11J3DTevBlock.s" } @@ -2547,7 +1905,8 @@ asm void J3DTevBlock1::reset(J3DTevBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlock2::reset(J3DTevBlock* param_0) { +extern "C" asm void reset__12J3DTevBlock2FP11J3DTevBlock() { + // asm void J3DTevBlock2::reset(J3DTevBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__12J3DTevBlock2FP11J3DTevBlock.s" } @@ -2557,7 +1916,8 @@ asm void J3DTevBlock2::reset(J3DTevBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlock4::reset(J3DTevBlock* param_0) { +extern "C" asm void reset__12J3DTevBlock4FP11J3DTevBlock() { + // asm void J3DTevBlock4::reset(J3DTevBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__12J3DTevBlock4FP11J3DTevBlock.s" } @@ -2567,7 +1927,8 @@ asm void J3DTevBlock4::reset(J3DTevBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DTevBlock16::reset(J3DTevBlock* param_0) { +extern "C" asm void reset__13J3DTevBlock16FP11J3DTevBlock() { + // asm void J3DTevBlock16::reset(J3DTevBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__13J3DTevBlock16FP11J3DTevBlock.s" } @@ -2577,7 +1938,8 @@ asm void J3DTevBlock16::reset(J3DTevBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DIndBlockFull::reset(J3DIndBlock* param_0) { +extern "C" asm void reset__15J3DIndBlockFullFP11J3DIndBlock() { + // asm void J3DIndBlockFull::reset(J3DIndBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__15J3DIndBlockFullFP11J3DIndBlock.s" } @@ -2587,7 +1949,8 @@ asm void J3DIndBlockFull::reset(J3DIndBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockFogOff::reset(J3DPEBlock* param_0) { +extern "C" asm void reset__16J3DPEBlockFogOffFP10J3DPEBlock() { + // asm void J3DPEBlockFogOff::reset(J3DPEBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__16J3DPEBlockFogOffFP10J3DPEBlock.s" } @@ -2597,7 +1960,8 @@ asm void J3DPEBlockFogOff::reset(J3DPEBlock* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DPEBlockFull::reset(J3DPEBlock* param_0) { +extern "C" asm void reset__14J3DPEBlockFullFP10J3DPEBlock() { + // asm void J3DPEBlockFull::reset(J3DPEBlock* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/reset__14J3DPEBlockFullFP10J3DPEBlock.s" } diff --git a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp index 2c5c12fdee..e8e07615cd 100644 --- a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp @@ -8,315 +8,6 @@ #include "dolphin/types.h" // -// Types: -// - -struct _GXCullMode {}; - -struct J3DZMode {}; - -struct J3DTexMtx {}; - -struct J3DTexGenBlockPatched { - /* 80317180 */ ~J3DTexGenBlockPatched(); - /* 80317644 */ void initialize(); -}; - -struct J3DTexGenBlockBasic { - /* 803176A4 */ void initialize(); -}; - -struct J3DTexGenBlock4 { - /* 80317674 */ void initialize(); -}; - -struct J3DNBTScale {}; - -struct J3DTexCoord { - /* 8000E464 */ J3DTexCoord(); -}; - -struct J3DTexGenBlock { - /* 8000DFD8 */ bool getTexMtx(u32); - /* 8000DFE0 */ bool getTexCoord(u32); - /* 8000DFE8 */ bool getTexGenNum() const; - /* 8000E0CC */ void setTexCoord(u32, J3DTexCoord const*); - /* 8031741C */ void setTexGenNum(u32 const*); - /* 8000E0D0 */ void setTexGenNum(u32); - /* 8003AB2C */ void setTexMtx(u32, J3DTexMtx*); - /* 803171DC */ ~J3DTexGenBlock(); - /* 803172FC */ bool countDLSize(); - /* 80317334 */ bool getNBTScale(); - /* 80317354 */ void reset(J3DTexGenBlock*); - /* 80317420 */ void setNBTScale(J3DNBTScale); - /* 80317424 */ void setNBTScale(J3DNBTScale const*); - /* 80317428 */ bool getTexMtxOffset() const; - /* 80317430 */ void setTexMtxOffset(u32); -}; - -struct J3DTevSwapModeTable { - /* 8000E134 */ J3DTevSwapModeTable(); -}; - -struct J3DTevStage { - /* 8000E230 */ J3DTevStage(); -}; - -struct J3DTevOrder { - /* 8000E140 */ J3DTevOrder(); -}; - -struct J3DTevBlock4 { - /* 803178EC */ void initialize(); -}; - -struct J3DTevBlock2 { - /* 80317810 */ void initialize(); -}; - -struct J3DTevBlock16 { - /* 80317A00 */ void initialize(); -}; - -struct J3DTevBlock1 { - /* 803177E8 */ void initialize(); -}; - -struct J3DTevBlock { - /* 80317224 */ ~J3DTevBlock(); - /* 8031730C */ bool countDLSize(); - /* 80317330 */ void load(); - /* 80317350 */ void reset(J3DTevBlock*); -}; - -struct J3DPatchedMaterial { - /* 80316FB8 */ void initialize(); - /* 80316FD8 */ void makeDisplayList(); - /* 80316FDC */ void makeSharedDisplayList(); - /* 80316FE0 */ void load(); - /* 80316FFC */ void loadSharedDL(); - /* 8031703C */ void reset(); - /* 80317040 */ void change(); -}; - -struct J3DPEBlockFull { - /* 80317B58 */ void initialize(); -}; - -struct J3DPEBlockFogOff { - /* 80317B34 */ void initialize(); -}; - -struct J3DFog {}; - -struct J3DAlphaComp {}; - -struct J3DBlend {}; - -struct J3DPEBlock { - /* 8000DBCC */ void patch(); - /* 8000DF3C */ bool getZCompLoc() const; - /* 8000DF44 */ bool getZMode(); - /* 8000DF4C */ bool getBlend(); - /* 8000DF54 */ bool getAlphaComp(); - /* 8000DF5C */ bool getFog(); - /* 8000E010 */ void setZCompLoc(u8); - /* 80317378 */ void setZCompLoc(u8 const*); - /* 8000E014 */ void setZMode(J3DZMode); - /* 80317374 */ void setZMode(J3DZMode const*); - /* 8000E018 */ void setBlend(J3DBlend const&); - /* 80317370 */ void setBlend(J3DBlend const*); - /* 8000E01C */ void setAlphaComp(J3DAlphaComp const&); - /* 8031736C */ void setAlphaComp(J3DAlphaComp const*); - /* 803172B4 */ ~J3DPEBlock(); - /* 8031731C */ bool countDLSize(); - /* 80317344 */ void diff(u32); - /* 80317348 */ void reset(J3DPEBlock*); - /* 8031735C */ void diffFog(); - /* 80317360 */ void diffBlend(); - /* 80317364 */ void setFog(J3DFog*); - /* 80317368 */ void setFog(J3DFog); - /* 80317380 */ void setDither(u8 const*); - /* 8031737C */ void setDither(u8); - /* 80317384 */ bool getDither() const; - /* 8031738C */ bool getFogOffset() const; - /* 80317394 */ void setFogOffset(u32); -}; - -struct J3DDisplayListObj { - /* 80312488 */ void newDisplayList(u32); - /* 80312508 */ void newSingleDisplayList(u32); - /* 80312618 */ void callDL() const; - /* 80312644 */ void beginDL(); - /* 80312698 */ void endDL(); - /* 803126F4 */ void beginPatch(); - /* 80312714 */ void endPatch(); -}; - -struct J3DMaterial { - /* 803157A0 */ void createColorBlock(u32); - /* 803159A0 */ void createTexGenBlock(u32); - /* 80315B04 */ void createTevBlock(int); - /* 80315E78 */ void createIndBlock(int); - /* 80315F60 */ void createPEBlock(u32, u32); - /* 80316100 */ void calcSizeColorBlock(u32); - /* 80316150 */ void calcSizeTexGenBlock(u32); - /* 8031617C */ void calcSizeTevBlock(int); - /* 803161C4 */ void calcSizeIndBlock(int); - /* 803161D8 */ void calcSizePEBlock(u32, u32); - /* 80316240 */ void initialize(); - /* 80316290 */ void countDLSize(); - /* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*); - /* 80316620 */ void makeDisplayList(); - /* 80316668 */ void makeSharedDisplayList(); - /* 8031668C */ void load(); - /* 803166DC */ void loadSharedDL(); - /* 80316740 */ void patch(); - /* 803167D8 */ void diff(u32); - /* 803169DC */ void calc(f32 const (*)[4]); - /* 80316A54 */ void calcDiffTexMtx(f32 const (*)[4]); - /* 80316AB0 */ void setCurrentMtx(); - /* 80316AC8 */ void calcCurrentMtx(); - /* 80316D68 */ void copy(J3DMaterial*); - /* 80316E14 */ void reset(); - /* 80316E70 */ void change(); - /* 80316E90 */ void newSharedDisplayList(u32); - /* 80316F24 */ void newSingleSharedDisplayList(u32); -}; - -struct J3DMatPacket { - /* 80312A24 */ void beginDiff(); - /* 80312A4C */ void endDiff(); -}; - -struct J3DLockedMaterial { - /* 80317044 */ void initialize(); - /* 80317064 */ void makeDisplayList(); - /* 80317068 */ void makeSharedDisplayList(); - /* 8031706C */ void load(); - /* 80317088 */ void loadSharedDL(); - /* 803170C8 */ void patch(); - /* 803170CC */ void diff(u32); - /* 803170D0 */ void calc(f32 const (*)[4]); - /* 803170D4 */ void reset(); - /* 803170D8 */ void change(); -}; - -struct J3DLightObj {}; - -struct J3DIndTexOrder { - /* 8000E128 */ J3DIndTexOrder(); -}; - -struct J3DIndTexMtx { - /* 8000E064 */ ~J3DIndTexMtx(); - /* 8000E0F0 */ J3DIndTexMtx(); -}; - -struct J3DIndTexCoordScale { - /* 8000E024 */ ~J3DIndTexCoordScale(); - /* 8000E0E4 */ J3DIndTexCoordScale(); -}; - -struct J3DIndTevStage { - /* 8000E14C */ J3DIndTevStage(); -}; - -struct J3DIndBlock { - /* 8000DF64 */ bool getIndTexCoordScale(u32); - /* 8000DF6C */ bool getIndTexMtx(u32); - /* 8000DF74 */ bool getIndTexOrder(u32); - /* 8000DF7C */ bool getIndTexStageNum() const; - /* 8000E020 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale); - /* 80317418 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale const*); - /* 8000E060 */ void setIndTexMtx(u32, J3DIndTexMtx); - /* 80317414 */ void setIndTexMtx(u32, J3DIndTexMtx const*); - /* 8000E0A0 */ void setIndTexStageNum(u8); - /* 8031726C */ ~J3DIndBlock(); - /* 80317314 */ bool countDLSize(); - /* 8031734C */ void reset(J3DIndBlock*); - /* 8031740C */ void setIndTexOrder(u32, J3DIndTexOrder const*); - /* 80317410 */ void setIndTexOrder(u32, J3DIndTexOrder); -}; - -struct J3DIndBlockNull { - /* 80317398 */ void diff(u32); - /* 8031739C */ void load(); - /* 803173A0 */ void reset(J3DIndBlock*); - /* 803173A4 */ void getType(); - /* 803173B0 */ ~J3DIndBlockNull(); -}; - -struct J3DIndBlockFull { - /* 80317B28 */ void initialize(); -}; - -struct J3DGXColorS10 { - /* 8000E460 */ J3DGXColorS10(); -}; - -struct J3DGXColor { - /* 8000E538 */ J3DGXColor(); -}; - -struct J3DFogInfo { - /* 80325800 */ void operator=(J3DFogInfo const&); -}; - -struct J3DColorChan { - /* 8000E47C */ J3DColorChan(); -}; - -struct J3DColorBlockLightOn { - /* 80317580 */ void initialize(); -}; - -struct J3DColorBlockLightOff { - /* 803170DC */ ~J3DColorBlockLightOff(); - /* 8031747C */ void initialize(); -}; - -struct J3DColorBlockAmbientOn { - /* 803174DC */ void initialize(); -}; - -struct J3DColorBlock { - /* 8000DBD0 */ void patchLight(); - /* 8000DFF0 */ bool getAmbColor(u32); - /* 8000DFF8 */ bool getColorChan(u32); - /* 8000E000 */ bool getMatColor(u32); - /* 8000E008 */ bool getColorChanNum() const; - /* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*); - /* 8000E0D4 */ void setAmbColor(u32, J3DGXColor); - /* 80317450 */ void setColorChan(u32, J3DColorChan const*); - /* 8000E0D8 */ void setColorChan(u32, J3DColorChan const&); - /* 80317448 */ void setMatColor(u32, J3DGXColor const*); - /* 8000E0DC */ void setMatColor(u32, J3DGXColor); - /* 8031744C */ void setColorChanNum(u8 const*); - /* 8000E0E0 */ void setColorChanNum(u8); - /* 801A4C08 */ void setLight(u32, J3DLightObj*); - /* 80317138 */ ~J3DColorBlock(); - /* 80317304 */ bool countDLSize(); - /* 80317324 */ void load(); - /* 80317328 */ s32 getCullMode() const; - /* 8031733C */ void patch(); - /* 80317340 */ void diff(u32); - /* 80317358 */ void reset(J3DColorBlock*); - /* 80317434 */ void patchMatColor(); - /* 80317438 */ void diffAmbColor(); - /* 8031743C */ void diffMatColor(); - /* 80317440 */ void diffColorChan(); - /* 80317444 */ void diffLightObj(u32); - /* 80317454 */ bool getLight(u32); - /* 8031745C */ void setCullMode(u8); - /* 80317460 */ void setCullMode(u8 const*); - /* 80317464 */ bool getMatColorOffset() const; - /* 8031746C */ bool getColorChanOffset() const; - /* 80317474 */ void setMatColorOffset(u32); - /* 80317478 */ void setColorChanOffset(u32); -}; - -// // Forward References: // @@ -386,7 +77,7 @@ extern "C" void diff__13J3DColorBlockFUl(); extern "C" void diff__10J3DPEBlockFUl(); extern "C" void reset__10J3DPEBlockFP10J3DPEBlock(); extern "C" void reset__11J3DIndBlockFP11J3DIndBlock(); -extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(); +extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0); extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock(); extern "C" void reset__13J3DColorBlockFP13J3DColorBlock(); extern "C" void diffFog__10J3DPEBlockFv(); @@ -539,8 +230,6 @@ extern "C" extern void* __vt__13J3DPEBlockOpa[31]; extern "C" extern void* __vt__15J3DIndBlockFull[19]; extern "C" extern void* __vt__11J3DTevBlock[55]; extern "C" extern void* __vt__21J3DColorBlockLightOff[36 + 1 /* padding */]; -extern "C" extern u8 j3dSys[284]; -extern "C" extern u8 __GDCurrentDL[4]; extern "C" extern u32 j3dDefaultBlendInfo; extern "C" extern u16 j3dDefaultAlphaCmpID; extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */]; @@ -870,7 +559,7 @@ asm void J3DMaterial::initialize() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterial::countDLSize() { +asm u32 J3DMaterial::countDLSize() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMaterial/countDLSize__11J3DMaterialFv.s" } @@ -951,7 +640,8 @@ asm void J3DMaterial::diff(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterial::calc(f32 const (*param_0)[4]) { +extern "C" asm void calc__11J3DMaterialFPA4_Cf() { + // asm void J3DMaterial::calc(f32 const (*param_0)[4]) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMaterial/calc__11J3DMaterialFPA4_Cf.s" } @@ -1022,7 +712,7 @@ asm void J3DMaterial::change() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterial::newSharedDisplayList(u32 param_0) { +asm s32 J3DMaterial::newSharedDisplayList(u32 param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMaterial/newSharedDisplayList__11J3DMaterialFUl.s" } @@ -1033,7 +723,7 @@ asm void J3DMaterial::newSharedDisplayList(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DMaterial::newSingleSharedDisplayList(u32 param_0) { +asm s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMaterial/newSingleSharedDisplayList__11J3DMaterialFUl.s" } @@ -1051,7 +741,7 @@ asm void J3DPatchedMaterial::initialize() { #pragma pop /* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::makeDisplayList() { +extern "C" asm void makeDisplayList__18J3DPatchedMaterialFv() { /* empty function */ } @@ -1145,7 +835,7 @@ void J3DLockedMaterial::diff(u32 param_0) { } /* 803170D0-803170D4 311A10 0004+00 1/0 0/0 0/0 .text calc__17J3DLockedMaterialFPA4_Cf */ -void J3DLockedMaterial::calc(f32 const (*param_0)[4]) { +extern "C" asm void calc__17J3DLockedMaterialFPA4_Cf() { /* empty function */ } @@ -1255,7 +945,7 @@ bool J3DPEBlock::countDLSize() { } /* 80317324-80317328 311C64 0004+00 1/0 1/0 0/0 .text load__13J3DColorBlockFv */ -void J3DColorBlock::load() { +extern "C" void load__13J3DColorBlockFv() { /* empty function */ } @@ -1291,24 +981,24 @@ void J3DPEBlock::diff(u32 param_0) { /* 80317348-8031734C 311C88 0004+00 1/0 4/0 0/0 .text reset__10J3DPEBlockFP10J3DPEBlock */ -void J3DPEBlock::reset(J3DPEBlock* param_0) { +extern "C" void reset__10J3DPEBlockFP10J3DPEBlock() { /* empty function */ } /* 8031734C-80317350 311C8C 0004+00 1/0 0/0 0/0 .text reset__11J3DIndBlockFP11J3DIndBlock */ -void J3DIndBlock::reset(J3DIndBlock* param_0) { +extern "C" void reset__11J3DIndBlockFP11J3DIndBlock() { /* empty function */ } /* 80317350-80317354 311C90 0004+00 0/0 1/0 0/0 .text reset__11J3DTevBlockFP11J3DTevBlock */ -void J3DTevBlock::reset(J3DTevBlock* param_0) { +extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0) { /* empty function */ } /* 80317354-80317358 311C94 0004+00 1/0 1/0 0/0 .text reset__14J3DTexGenBlockFP14J3DTexGenBlock */ -void J3DTexGenBlock::reset(J3DTexGenBlock* param_0) { +extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock() { /* empty function */ } @@ -1396,7 +1086,7 @@ void J3DIndBlockNull::load() { } /* 803173A0-803173A4 311CE0 0004+00 1/0 0/0 0/0 .text reset__15J3DIndBlockNullFP11J3DIndBlock */ -void J3DIndBlockNull::reset(J3DIndBlock* param_0) { +extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() { /* empty function */ } diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index 5755d6de59..eff23be8c1 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -90,7 +90,6 @@ extern "C" void __dl__FPv(); extern "C" void setArray__15J3DVertexBufferCFv(); extern "C" void loadPreDrawSetting__8J3DShapeCFv(); extern "C" void syncJ3DSysFlags__12J3DModelDataCFv(); -extern "C" void GDInitGDLObj(); extern "C" void GDFlushCurrToMem(); extern "C" void GDPadCurr32(); extern "C" void __ptmf_scall(); @@ -101,7 +100,6 @@ extern "C" extern u8 struct_804515B0[4]; extern "C" u8 sTexGenBlock__17J3DDifferedTexMtx[4]; extern "C" u8 sTexMtxObj__17J3DDifferedTexMtx[4]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; -extern "C" extern u8 __GDCurrentDL[4]; // // Declarations: @@ -159,52 +157,42 @@ void J3DDisplayListObj::callDL() const { /* ############################################################################################## */ /* 80434C70-80434C80 061990 0010+00 2/2 3/3 0/0 .bss sGDLObj__17J3DDisplayListObj */ -u8 J3DDisplayListObj::sGDLObj[16]; +GDLObj J3DDisplayListObj::sGDLObj; /* 804515A0-804515A8 000AA0 0004+04 3/3 0/0 0/0 .sbss sInterruptFlag__17J3DDisplayListObj */ -u8 J3DDisplayListObj::sInterruptFlag[4 + 4 /* padding */]; +s32 J3DDisplayListObj::sInterruptFlag; /* 80312644-80312698 30CF84 0054+00 2/2 1/1 0/0 .text beginDL__17J3DDisplayListObjFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DDisplayListObj::beginDL() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/beginDL__17J3DDisplayListObjFv.s" +void J3DDisplayListObj::beginDL() { + swapBuffer(); + sInterruptFlag = OSDisableInterrupts(); + GDInitGDLObj(&sGDLObj, (u8*)mpData[0], mCapacity); + GDSetCurrent(&sGDLObj); } -#pragma pop /* 80312698-803126F4 30CFD8 005C+00 1/1 1/1 0/0 .text endDL__17J3DDisplayListObjFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DDisplayListObj::endDL() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/endDL__17J3DDisplayListObjFv.s" +u32 J3DDisplayListObj::endDL() { + GDPadCurr32(); + OSRestoreInterrupts(sInterruptFlag); + mSize = GDGetGDLObjOffset(&sGDLObj); + GDFlushCurrToMem(); + GDSetCurrent(NULL); + return mSize; } -#pragma pop /* 803126F4-80312714 30D034 0020+00 0/0 1/1 0/0 .text beginPatch__17J3DDisplayListObjFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DDisplayListObj::beginPatch() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/beginPatch__17J3DDisplayListObjFv.s" +void J3DDisplayListObj::beginPatch() { + beginDL(); } -#pragma pop /* 80312714-80312750 30D054 003C+00 0/0 1/1 0/0 .text endPatch__17J3DDisplayListObjFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DDisplayListObj::endPatch() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/endPatch__17J3DDisplayListObjFv.s" +u32 J3DDisplayListObj::endPatch() { + OSRestoreInterrupts(sInterruptFlag); + GDSetCurrent(NULL); + return mSize; } -#pragma pop /* 80312750-80312758 30D090 0008+00 3/0 16/0 10/0 .text entry__9J3DPacketFP13J3DDrawBuffer */ bool J3DPacket::entry(J3DDrawBuffer* param_0) { @@ -222,16 +210,11 @@ void J3DPacket::addChildPacket(J3DPacket* pPacket) { /* ############################################################################################## */ /* 803CD900-803CD920 02AA20 0020+00 1/1 0/0 0/0 .data sDifferedRegister */ -SECTION_DATA static u8 sDifferedRegister[32] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, -}; +SECTION_DATA static u32 sDifferedRegister[8] = {0x00000004, 0x00000001, 0x00000002, 0x01000000, + 0x10000000, 0x20000000, 0x02000000, 0x08000000}; /* 803CD920-803CD940 02AA40 0020+00 1/1 0/0 0/0 .data sSizeOfDiffered */ -SECTION_DATA static u8 sSizeOfDiffered[32] = { - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x78, - 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x2D, -}; +SECTION_DATA static s32 sSizeOfDiffered[8] = {13, 13, 21, 120, 55, 15, 19, 45}; /* 803CD940-803CD954 02AA60 0014+00 2/2 0/0 0/0 .data __vt__14J3DShapePacket */ SECTION_DATA extern void* __vt__14J3DShapePacket[5] = { @@ -270,14 +253,11 @@ SECTION_DATA extern void* __vt__9J3DPacket[5] = { }; /* 80312778-803127B0 30D0B8 0038+00 2/2 0/0 0/0 .text __ct__13J3DDrawPacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DDrawPacket::J3DDrawPacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__13J3DDrawPacketFv.s" +J3DDrawPacket::J3DDrawPacket() { + mFlags = 0; + mpDisplayListObj = NULL; + mpTexMtx = NULL; } -#pragma pop /* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */ #pragma push @@ -291,6 +271,18 @@ asm J3DDrawPacket::~J3DDrawPacket() { /* 8031280C-80312898 30D14C 008C+00 1/1 1/1 0/0 .text newDisplayList__13J3DDrawPacketFUl */ +#ifdef NONMATCHING +J3DError J3DDrawPacket::newDisplayList(u32 param_0) { + mpDisplayListObj = new J3DDisplayListObj(); + + if (mpDisplayListObj == NULL) { + return kJ3DError_Alloc; + } else if (mpDisplayListObj->newDisplayList(param_0)) { + return kJ3DError_Success; + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -299,8 +291,21 @@ asm J3DError J3DDrawPacket::newDisplayList(u32 param_0) { #include "asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s" } #pragma pop +#endif /* 80312898-80312924 30D1D8 008C+00 0/0 1/1 0/0 .text newSingleDisplayList__13J3DDrawPacketFUl */ +#ifdef NONMATCHING +J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) { + mpDisplayListObj = new J3DDisplayListObj(); + + if (mpDisplayListObj == NULL) { + return kJ3DError_Alloc; + } else if (mpDisplayListObj->newSingleDisplayList(param_0)) { + return kJ3DError_Success; + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -309,30 +314,24 @@ asm J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) { #include "asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s" } #pragma pop +#endif void J3DDrawPacket::draw() { mpDisplayListObj->callDL(); } /* 80312948-803129A4 30D288 005C+00 0/0 1/1 0/0 .text __ct__12J3DMatPacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DMatPacket::J3DMatPacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__12J3DMatPacketFv.s" +J3DMatPacket::J3DMatPacket() { + mpShapePacket = NULL; + mpFirstShapePacket = NULL; + mpMaterial = NULL; + mSortFlags = -1; + mpTexture = NULL; + mpMaterialAnm = NULL; } -#pragma pop /* 803129A4-80312A04 30D2E4 0060+00 1/0 1/1 0/0 .text __dt__12J3DMatPacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DMatPacket::~J3DMatPacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__dt__12J3DMatPacketFv.s" -} -#pragma pop +J3DMatPacket::~J3DMatPacket() {} void J3DMatPacket::addShapePacket(J3DShapePacket* pShape) { if (mpFirstShapePacket == NULL) { @@ -352,14 +351,14 @@ void J3DMatPacket::endDiff() { } /* 80312A74-80312A9C 30D3B4 0028+00 0/0 1/1 0/0 .text isSame__12J3DMatPacketCFP12J3DMatPacket */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMatPacket::isSame(J3DMatPacket* param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/isSame__12J3DMatPacketCFP12J3DMatPacket.s" +bool J3DMatPacket::isSame(J3DMatPacket* pOther) const { + bool isSame = false; + + if (mSortFlags == pOther->mSortFlags && !(mSortFlags >> 0x1F)) { + isSame = true; + } + return isSame; } -#pragma pop /* 80312A9C-80312B20 30D3DC 0084+00 1/0 0/0 0/0 .text draw__12J3DMatPacketFv */ #pragma push @@ -372,31 +371,23 @@ asm void J3DMatPacket::draw() { #pragma pop /* 80312B20-80312B74 30D460 0054+00 0/0 1/1 0/0 .text __ct__14J3DShapePacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapePacket::J3DShapePacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__14J3DShapePacketFv.s" +J3DShapePacket::J3DShapePacket() { + mpShape = NULL; + mpMtxBuffer = NULL; + mpViewMtx = NULL; + mDiffFlag = 0; + mpModel = NULL; } -#pragma pop /* 80312B74-80312BD4 30D4B4 0060+00 1/0 1/1 0/0 .text __dt__14J3DShapePacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapePacket::~J3DShapePacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__dt__14J3DShapePacketFv.s" -} -#pragma pop +J3DShapePacket::~J3DShapePacket() {} /* 80312BD4-80312DBC 30D514 01E8+00 1/1 0/0 0/0 .text calcDifferedBufferSize__14J3DShapePacketFUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DShapePacket::calcDifferedBufferSize(u32 param_0) { +asm u32 J3DShapePacket::calcDifferedBufferSize(u32 param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DPacket/calcDifferedBufferSize__14J3DShapePacketFUl.s" } @@ -404,14 +395,18 @@ asm void J3DShapePacket::calcDifferedBufferSize(u32 param_0) { /* 80312DBC-80312E08 30D6FC 004C+00 0/0 1/1 0/0 .text newDifferedDisplayList__14J3DShapePacketFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapePacket::newDifferedDisplayList(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/newDifferedDisplayList__14J3DShapePacketFUl.s" +J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) { + mDiffFlag = flag; + u32 bufSize = calcDifferedBufferSize(flag); + J3DError error = newDisplayList(bufSize); + + if (error != kJ3DError_Success) { + return error; + } + + setDisplayListObj(getDisplayListObj()); + return kJ3DError_Success; } -#pragma pop /* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */ #pragma push diff --git a/libs/JSystem/J3DGraphBase/J3DShape.cpp b/libs/JSystem/J3DGraphBase/J3DShape.cpp index 51571212a8..63513e4095 100644 --- a/libs/JSystem/J3DGraphBase/J3DShape.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShape.cpp @@ -177,7 +177,7 @@ asm void J3DShape::loadVtxArray() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DShape::isSameVcdVatCmd(J3DShape* param_0) { +asm bool J3DShape::isSameVcdVatCmd(J3DShape* param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s" } diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 833ae33999..83ff9e98b1 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -18,54 +18,6 @@ struct J3DSys { /* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const; }; -struct J3DShapeMtxYBBoardConcatView { - /* 803143E4 */ void load() const; - /* 80314520 */ ~J3DShapeMtxYBBoardConcatView(); - /* 8031458C */ void getType() const; -}; - -struct J3DShapeMtxMultiConcatView { - /* 80313FA4 */ void load() const; - /* 803146AC */ void loadNrmMtx(int, u16) const; - /* 8031419C */ void loadNrmMtx(int, u16, f32 (*)[4]) const; - /* 8031461C */ ~J3DShapeMtxMultiConcatView(); - /* 80314688 */ void getType() const; - /* 80314694 */ void getUseMtxNum() const; - /* 8031469C */ void getUseMtxIndex(u16) const; -}; - -struct J3DShapeMtxMulti { - /* 80313E4C */ void load() const; - /* 80313EEC */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); - /* 803146B0 */ ~J3DShapeMtxMulti(); - /* 8031470C */ void getType() const; - /* 80314718 */ void getUseMtxNum() const; - /* 80314720 */ void getUseMtxIndex(u16) const; -}; - -struct J3DShapeMtxConcatView { - /* 80313828 */ void loadMtxConcatView_PNGP(int, u16) const; - /* 803138C8 */ void loadMtxConcatView_PCPU(int, u16) const; - /* 8031396C */ void loadMtxConcatView_NCPU(int, u16) const; - /* 80313A14 */ void loadMtxConcatView_PNCPU(int, u16) const; - /* 80313AC8 */ void loadMtxConcatView_PNGP_LOD(int, u16) const; - /* 80313C54 */ void load() const; - /* 80313D28 */ void loadNrmMtx(int, u16, f32 (*)[4]) const; - /* 80314598 */ void loadNrmMtx(int, u16) const; - /* 80314730 */ ~J3DShapeMtxConcatView(); - /* 8031478C */ void getType() const; - - static u8 sMtxLoadPipeline[48]; - static u8 sMtxLoadLODPipeline[48]; - static u8 sMtxPtrTbl[8]; -}; - -struct J3DShapeMtxBBoardConcatView { - /* 803142D4 */ void load() const; - /* 803145A4 */ ~J3DShapeMtxBBoardConcatView(); - /* 80314610 */ void getType() const; -}; - struct J3DDifferedTexMtx { /* 8031322C */ void loadExecute(f32 const (*)[4]); @@ -718,7 +670,8 @@ SECTION_DATA extern void* __vt__11J3DShapeMtx[8 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() { +extern "C" asm void __dt__28J3DShapeMtxYBBoardConcatViewFv() { + // asm J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s" } @@ -755,7 +708,8 @@ asm void J3DShapeMtx::getUseMtxIndex(u16 param_0) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() { +extern "C" asm void __dt__27J3DShapeMtxBBoardConcatViewFv() { + // asm J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s" } @@ -775,7 +729,8 @@ asm void J3DShapeMtxBBoardConcatView::getType() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() { +extern "C" asm void __dt__26J3DShapeMtxMultiConcatViewFv() { + // asm J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s" } @@ -823,7 +778,8 @@ void J3DShapeMtxMultiConcatView::loadNrmMtx(int param_0, u16 param_1) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DShapeMtxMulti::~J3DShapeMtxMulti() { +extern "C" asm void __dt__16J3DShapeMtxMultiFv() { + // asm J3DShapeMtxMulti::~J3DShapeMtxMulti() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s" } @@ -864,7 +820,8 @@ asm void J3DShapeMtxMulti::getUseMtxIndex(u16 param_0) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DShapeMtxConcatView::~J3DShapeMtxConcatView() { +extern "C" asm void __dt__21J3DShapeMtxConcatViewFv() { + // asm J3DShapeMtxConcatView::~J3DShapeMtxConcatView() { nofralloc #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s" } diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index 015ab74202..44ae39148a 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -114,10 +114,10 @@ J3DSys j3dSys; Mtx J3DSys::mCurrentMtx; /* 80434C14-80434C20 061934 000C+00 0/0 6/6 0/0 .bss mCurrentS__6J3DSys */ -f32 J3DSys::mCurrentS[3]; +Vec J3DSys::mCurrentS; /* 80434C20-80434C2C 061940 000C+00 0/0 5/5 0/0 .bss mParentS__6J3DSys */ -f32 J3DSys::mParentS[3]; +Vec J3DSys::mParentS; /* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */ u16 J3DSys::sTexCoordScaleTable[34]; diff --git a/libs/JSystem/J3DGraphBase/J3DTexture.cpp b/libs/JSystem/J3DGraphBase/J3DTexture.cpp index 09713c643c..33c7db756f 100644 --- a/libs/JSystem/J3DGraphBase/J3DTexture.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTexture.cpp @@ -8,20 +8,6 @@ #include "dolphin/types.h" // -// Types: -// - -struct _GXTexMapID {}; - -struct ResTIMG {}; - -struct J3DTexture { - /* 8031204C */ void loadGX(u16, _GXTexMapID) const; - /* 803121A4 */ void entryNum(u16); - /* 8031221C */ void addResTIMG(u16, ResTIMG const*); -}; - -// // Forward References: // @@ -34,12 +20,6 @@ extern "C" void addResTIMG__10J3DTextureFUsPC7ResTIMG(); // extern "C" void* __nwa__FUl(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjCI(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); -extern "C" void GXInitTlutObj(); -extern "C" void GXLoadTlut(); extern "C" void _savegpr_28(); extern "C" void _restgpr_28(); diff --git a/libs/JSystem/J3DGraphBase/J3DTransform.cpp b/libs/JSystem/J3DGraphBase/J3DTransform.cpp index d00a650ccf..f783bab1a4 100644 --- a/libs/JSystem/J3DGraphBase/J3DTransform.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTransform.cpp @@ -11,14 +11,10 @@ // Types: // -struct Vec {}; - struct JMath { static u8 sincosTable_[65536]; }; -struct J3DTransformInfo {}; - struct J3DTextureSRTInfo {}; // @@ -46,7 +42,6 @@ extern "C" extern u8 PSMulUnit01[8]; // External References: // -extern "C" void PSVECNormalize(); extern "C" u8 sincosTable___5JMath[65536]; // @@ -93,25 +88,15 @@ asm void J3DCalcBBoardMtx(f32 (*param_0)[4]) { /* ############################################################################################## */ /* 803A1E30-803A1E50 02E490 0020+00 0/0 1/1 0/0 .rodata j3dDefaultTransformInfo */ -SECTION_RODATA extern u8 const j3dDefaultTransformInfo[32] = { - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1E30, &j3dDefaultTransformInfo); +extern J3DTransformInfo const j3dDefaultTransformInfo = { + {1.0f, 1.0f, 1.0f}, {0, 0, 0}, {0.0f, 0.0f, 0.0f}}; /* 803A1E50-803A1E5C 02E4B0 000C+00 0/0 1/1 0/0 .rodata j3dDefaultScale */ -SECTION_RODATA extern u8 const j3dDefaultScale[12] = { - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1E50, &j3dDefaultScale); +extern Vec const j3dDefaultScale = {1.0f, 1.0f, 1.0f}; /* 803A1E5C-803A1E8C 02E4BC 0030+00 0/0 8/8 7/7 .rodata j3dDefaultMtx */ -SECTION_RODATA extern u8 const j3dDefaultMtx[48] = { - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1E5C, &j3dDefaultMtx); +extern Mtx const j3dDefaultMtx = { + {1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}}; /* 803A1E8C-803A1E98 02E4EC 000C+00 1/1 0/0 0/0 .rodata @443 */ SECTION_RODATA static u8 const lit_443[12] = { diff --git a/libs/JSystem/J3DGraphBase/J3DVertex.cpp b/libs/JSystem/J3DGraphBase/J3DVertex.cpp index 67e1e7b5d1..0d4d4a7f71 100644 --- a/libs/JSystem/J3DGraphBase/J3DVertex.cpp +++ b/libs/JSystem/J3DGraphBase/J3DVertex.cpp @@ -4,33 +4,13 @@ // #include "JSystem/J3DGraphBase/J3DVertex.h" +#include "JSystem/J3DGraphAnimator/J3DJointTree.h" +#include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" +#include "dolphin/os/OSCache.h" #include "dolphin/types.h" - -// -// Types: -// - -struct J3DVertexData { - /* 80310EF8 */ J3DVertexData(); -}; - -struct J3DVertexBuffer { - /* 80310F78 */ void setVertexData(J3DVertexData*); - /* 80310FD8 */ void init(); - /* 80311030 */ ~J3DVertexBuffer(); - /* 8031106C */ void setArray() const; - /* 80311090 */ void copyLocalVtxPosArray(u32); - /* 803111B0 */ void copyLocalVtxNrmArray(u32); - /* 803112D0 */ void copyLocalVtxArray(u32); - /* 80311478 */ void allocTransformedVtxPosArray(); - /* 8031152C */ void allocTransformedVtxNrmArray(); -}; - -struct J3DDrawMtxData { - /* 803115E0 */ J3DDrawMtxData(); - /* 803115F4 */ ~J3DDrawMtxData(); -}; +#include "init.h" // // Forward References: @@ -53,143 +33,269 @@ extern "C" void __dt__14J3DDrawMtxDataFv(); // External References: // -SECTION_INIT void memcpy(); extern "C" void* __nwa__FUli(); extern "C" void __dl__FPv(); -extern "C" void DCStoreRange(); extern "C" void _savegpr_24(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_24(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 j3dSys[284]; // // Declarations: // /* 80310EF8-80310F78 30B838 0080+00 0/0 1/1 0/0 .text __ct__13J3DVertexDataFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DVertexData::J3DVertexData() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/__ct__13J3DVertexDataFv.s" +J3DVertexData::J3DVertexData() { + mVtxNum = 0; + mNrmNum = 0; + mColNum = 0; + field_0xc = 0; + field_0x10 = 0; + + mVtxAttrFmtList = NULL; + mVtxPosArray = NULL; + mVtxNrmArray = NULL; + mVtxNBTArray = NULL; + + for (int i = 0; i < 2; i++) { + mVtxColorArray[i] = NULL; + } + + for (int i = 0; i < 8; i++) { + mVtxTexCoordArray[i] = NULL; + } + + mVtxPosFrac = 0; + mVtxPosType = GX_F32; + mVtxNrmFrac = 0; + mVtxNrmType = GX_F32; } -#pragma pop /* 80310F78-80310FD8 30B8B8 0060+00 0/0 1/1 0/0 .text * setVertexData__15J3DVertexBufferFP13J3DVertexData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::setVertexData(J3DVertexData* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/setVertexData__15J3DVertexBufferFP13J3DVertexData.s" +void J3DVertexBuffer::setVertexData(J3DVertexData* pVtxData) { + mVtxData = pVtxData; + mVtxPosArray[0] = pVtxData->getVtxPosArray(); + mVtxNrmArray[0] = pVtxData->getVtxNrmArray(); + mVtxColArray[0] = pVtxData->getVtxColorArray(0); + mVtxPosArray[1] = NULL; + mVtxNrmArray[1] = NULL; + mVtxColArray[1] = NULL; + + mTransformedVtxPosArray[0] = pVtxData->getVtxPosArray(); + mTransformedVtxNrmArray[0] = pVtxData->getVtxNrmArray(); + mTransformedVtxPosArray[1] = NULL; + mTransformedVtxNrmArray[1] = NULL; + + frameInit(); } -#pragma pop /* 80310FD8-80311030 30B918 0058+00 0/0 3/3 0/0 .text init__15J3DVertexBufferFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::init() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/init__15J3DVertexBufferFv.s" +void J3DVertexBuffer::init() { + mVtxData = NULL; + + mVtxPosArray[1] = NULL; + mVtxPosArray[0] = NULL; + + mVtxNrmArray[1] = NULL; + mVtxNrmArray[0] = NULL; + + mVtxColArray[1] = NULL; + mVtxColArray[0] = NULL; + + mTransformedVtxPosArray[1] = NULL; + mTransformedVtxPosArray[0] = NULL; + + mTransformedVtxNrmArray[1] = NULL; + mTransformedVtxNrmArray[0] = NULL; + + mCurrentVtxPos = NULL; + mCurrentVtxNrm = NULL; + mCurrentVtxCol = NULL; + + frameInit(); } -#pragma pop /* 80311030-8031106C 30B970 003C+00 0/0 1/1 0/0 .text __dt__15J3DVertexBufferFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DVertexBuffer::~J3DVertexBuffer() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/__dt__15J3DVertexBufferFv.s" -} -#pragma pop +J3DVertexBuffer::~J3DVertexBuffer() {} /* 8031106C-80311090 30B9AC 0024+00 0/0 1/1 0/0 .text setArray__15J3DVertexBufferCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::setArray() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/setArray__15J3DVertexBufferCFv.s" +void J3DVertexBuffer::setArray() const { + j3dSys.setVtxPos(mCurrentVtxPos); + j3dSys.setVtxNrm(mCurrentVtxNrm); + j3dSys.setVtxCol(mCurrentVtxCol); } -#pragma pop /* 80311090-803111B0 30B9D0 0120+00 1/1 0/0 0/0 .text copyLocalVtxPosArray__15J3DVertexBufferFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxPosArray__15J3DVertexBufferFUl.s" +s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) { + if (param_0 & 1) { + for (int i = 0; i < 2; i++) { + mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + + if (mVtxPosArray[i] == NULL) { + return 4; + } + memcpy(mVtxPosArray[i], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12); + DCStoreRange(mVtxPosArray[i], mVtxData->getVtxNum() * 12); + } + } else { + mVtxPosArray[0] = mVtxData->getVtxPosArray(); + + if (mVtxPosArray[1] == NULL) { + mVtxPosArray[1] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + if (mVtxPosArray[1] == NULL) { + return 4; + } + } + memcpy(mVtxPosArray[1], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12); + DCStoreRange(mVtxPosArray[1], mVtxData->getVtxNum() * 12); + } + return 0; } -#pragma pop /* 803111B0-803112D0 30BAF0 0120+00 1/1 0/0 0/0 .text copyLocalVtxNrmArray__15J3DVertexBufferFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxNrmArray__15J3DVertexBufferFUl.s" +s32 J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) { + if (param_0 & 1) { + for (int i = 0; i < 2; i++) { + mVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; + + if (mVtxNrmArray[i] == NULL) { + return 4; + } + memcpy(mVtxNrmArray[i], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12); + DCStoreRange(mVtxNrmArray[i], mVtxData->getNrmNum() * 12); + } + } else { + mVtxNrmArray[0] = mVtxData->getVtxNrmArray(); + + if (mVtxNrmArray[1] == NULL) { + mVtxNrmArray[1] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; + if (mVtxNrmArray[1] == NULL) { + return 4; + } + } + memcpy(mVtxNrmArray[1], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12); + DCStoreRange(mVtxNrmArray[1], mVtxData->getNrmNum() * 12); + } + return 0; } -#pragma pop /* 803112D0-80311478 30BC10 01A8+00 0/0 1/1 0/0 .text copyLocalVtxArray__15J3DVertexBufferFUl */ +#ifdef NONMATCHING +s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) { + void* local_30[5]; + + for (int i = 0; i < 2; i++) { + local_30[i] = mVtxPosArray[i]; + } + + if (~param_0 & 2) { + s32 tmp = copyLocalVtxPosArray(param_0); + if (tmp != 0) { + for (int i = 0; i < 2; i++) { + if (local_30[i + 2] != mVtxPosArray[i]) { + if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) { + delete mVtxPosArray[i]; + } + mVtxPosArray[i] = local_30[i + 2]; + } + } + return tmp; + } + } else { + void* vtxPosArray = mVtxData->getVtxPosArray(); + mVtxPosArray[1] = vtxPosArray; + mVtxPosArray[0] = vtxPosArray; + } + + for (int i = 0; i < 2; i++) { + local_30[i] = mVtxNrmArray[i]; + } + + if (~param_0 & 4) { + s32 tmp = copyLocalVtxNrmArray(param_0); + if (tmp != 0) { + for (int i = 0; i < 2; i++) { + if (local_30[i + 2] != mVtxPosArray[i]) { + if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) { + delete mVtxPosArray[i]; + } + mVtxPosArray[i] = local_30[i + 2]; + } + if (local_30[i] != mVtxNrmArray[i]) { + if (mVtxNrmArray[i] != mVtxData->getVtxNrmArray()) { + delete mVtxNrmArray[i]; + } + mVtxNrmArray[i] = local_30[i]; + } + } + return tmp; + } + } else { + void* vtxNrmArray = mVtxData->getVtxNrmArray(); + mVtxNrmArray[1] = vtxNrmArray; + mVtxNrmArray[0] = vtxNrmArray; + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DVertexBuffer::copyLocalVtxArray(u32 param_0) { +asm s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s" } #pragma pop +#endif /* 80311478-8031152C 30BDB8 00B4+00 0/0 1/1 0/0 .text * allocTransformedVtxPosArray__15J3DVertexBufferFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::allocTransformedVtxPosArray() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/allocTransformedVtxPosArray__15J3DVertexBufferFv.s" +s32 J3DVertexBuffer::allocTransformedVtxPosArray() { + if (mTransformedVtxPosArray[0] != NULL && mTransformedVtxPosArray[1] != NULL) { + return 0; + } + + for (int i = 0; i < 2; i++) { + if (i == 0 || mTransformedVtxPosArray[i] == NULL) { + mTransformedVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + if (mTransformedVtxPosArray[i] == NULL) { + return 4; + } + } + } + return 0; } -#pragma pop /* 8031152C-803115E0 30BE6C 00B4+00 0/0 1/1 0/0 .text * allocTransformedVtxNrmArray__15J3DVertexBufferFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DVertexBuffer::allocTransformedVtxNrmArray() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/allocTransformedVtxNrmArray__15J3DVertexBufferFv.s" +s32 J3DVertexBuffer::allocTransformedVtxNrmArray() { + if (mTransformedVtxNrmArray[0] != NULL && mTransformedVtxNrmArray[1] != NULL) { + return 0; + } + + for (int i = 0; i < 2; i++) { + if (i == 0 || mTransformedVtxNrmArray[i] == NULL) { + mTransformedVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; + if (mTransformedVtxNrmArray[i] == NULL) { + return 4; + } + } + } + return 0; } -#pragma pop /* 803115E0-803115F4 30BF20 0014+00 0/0 1/1 0/0 .text __ct__14J3DDrawMtxDataFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DDrawMtxData::J3DDrawMtxData() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/__ct__14J3DDrawMtxDataFv.s" +J3DDrawMtxData::J3DDrawMtxData() { + mEntryNum = 0; + mDrawMtxFlag = NULL; + mDrawMtxIndex = NULL; } -#pragma pop /* 803115F4-80311630 30BF34 003C+00 0/0 2/2 0/0 .text __dt__14J3DDrawMtxDataFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DDrawMtxData::~J3DDrawMtxData() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/__dt__14J3DDrawMtxDataFv.s" -} -#pragma pop +J3DDrawMtxData::~J3DDrawMtxData() {} |
