summaryrefslogtreecommitdiff
path: root/include/JSystem/J3DGraphBase/J3DGD.h
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2023-07-09 20:21:18 +0300
committerTal Hayon <talhayon1@gmail.com>2023-07-09 20:21:18 +0300
commite00ce8bc31ce57f3aeff7c4844ffa926fa08e95f (patch)
tree97873da548ff40005e563245aa002e9fc0117f9f /include/JSystem/J3DGraphBase/J3DGD.h
parentcf26cd610d4e88f391c7d854b5da5b7460d130c5 (diff)
Work on J3DMaterial
Diffstat (limited to 'include/JSystem/J3DGraphBase/J3DGD.h')
-rw-r--r--include/JSystem/J3DGraphBase/J3DGD.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DGD.h b/include/JSystem/J3DGraphBase/J3DGD.h
index 6cd5659f57..87ab8b94a6 100644
--- a/include/JSystem/J3DGraphBase/J3DGD.h
+++ b/include/JSystem/J3DGraphBase/J3DGD.h
@@ -3,6 +3,33 @@
#include "dolphin/types.h"
#include "dolphin/gx/GX.h"
+#include "dolphin/gd/GDBase.h"
+
+inline void J3DGDWrite_u8(u8 param) {
+ __GDWrite(param);
+}
+
+inline void J3DGDWrite_u16(u16 param) {
+ __GDWrite((param & 0xffff) >> 8);
+ __GDWrite(param & 0xff);
+}
+
+inline void J3DGDWrite_u32(u32 param) {
+ __GDWrite((param >> 24) & 0xff);
+ __GDWrite((param >> 16) & 0xff);
+ __GDWrite((param >> 8) & 0xff);
+ __GDWrite(param & 0xff);
+}
+
+inline void J3DGDWriteXFCmd(u16 param_1, u32 param_2) {
+ J3DGDWrite_u8(0x10);
+ J3DGDWrite_u16(0);
+ J3DGDWrite_u16(param_1);
+ J3DGDWrite_u32(param_2);
+}
+
+void J3DGDSetGenMode(u8 texGenNum, u8 colorChanNum, u8 tevStageNum, u8 IndTexStageNum, _GXCullMode cullMode);
+void J3DGDSetGenMode_3Param(u8 texGenNum, u8 tevStageNum, u8 indTexStageNum);
static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) {
GFX_FIFO(u8) = cmd;
@@ -10,4 +37,12 @@ static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) {
GFX_FIFO(u16) = addr;
}
+inline void J3DGDSetNumChans(u8 numChans) {
+ J3DGDWriteXFCmd(0x1009, numChans);
+}
+
+inline void J3DGDSetNumTexGens(u8 numTexGens) {
+ J3DGDWriteXFCmd(0x103f, numTexGens);
+}
+
#endif /* J3DGD_H */