summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/NitroSDK')
-rw-r--r--arm9/lib/NitroSDK/include/GX_g3.h23
-rw-r--r--arm9/lib/NitroSDK/include/GX_g3imm.h18
-rw-r--r--arm9/lib/NitroSDK/include/registers.h88
3 files changed, 128 insertions, 1 deletions
diff --git a/arm9/lib/NitroSDK/include/GX_g3.h b/arm9/lib/NitroSDK/include/GX_g3.h
index 765ecc64..7f11c55e 100644
--- a/arm9/lib/NitroSDK/include/GX_g3.h
+++ b/arm9/lib/NitroSDK/include/GX_g3.h
@@ -181,4 +181,27 @@ typedef union
}
GXBoxTestParam;
+
+
+
+#define GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr) \
+ ((u32)(((addr) >> 3) | \
+ ((texFmt) << REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT) | \
+ ((texGen) << REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT) | \
+ ((s) << REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT) | \
+ ((t) << REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT) | \
+ ((repeat) << REG_G3_TEXIMAGE_PARAM_RS_SHIFT) | \
+ ((flip) << REG_G3_TEXIMAGE_PARAM_FS_SHIFT) | \
+ ((pltt0) << REG_G3_TEXIMAGE_PARAM_TR_SHIFT)))
+
+#define GX_PACK_POLYGONATTR_PARAM(light, polyMode, cullMode, polygonID, alpha, misc) \
+ ((u32)(((light) << REG_G3_POLYGON_ATTR_LE_SHIFT) | \
+ ((polyMode) << REG_G3_POLYGON_ATTR_PM_SHIFT) | \
+ ((cullMode) << REG_G3_POLYGON_ATTR_BK_SHIFT) | \
+ (misc) | \
+ ((polygonID) << REG_G3_POLYGON_ATTR_ID_SHIFT) | \
+ ((alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT)))
+
+
+
#endif //GUARD_GX_G3_H
diff --git a/arm9/lib/NitroSDK/include/GX_g3imm.h b/arm9/lib/NitroSDK/include/GX_g3imm.h
index f811dc68..49a9f13b 100644
--- a/arm9/lib/NitroSDK/include/GX_g3imm.h
+++ b/arm9/lib/NitroSDK/include/GX_g3imm.h
@@ -1,10 +1,26 @@
#ifndef GUARD_GX_G3IMM_H
#define GUARD_GX_G3IMM_H
+#include "GX_g3.h"
#include "fx.h"
void G3_LoadMtx43(struct Mtx43 *mtx);
void G3_MultMtx43(struct Mtx43 *mtx);
void G3_MultMtx33(struct Mtx33 *mtx);
-#endif //GUARD_GX_G3IMM_H
+static inline void G3_PolygonAttr(int light, GXPolygonMode polyMode, GXCull cullMode, int polygonID, int alpha, int misc) {
+ reg_G3_POLYGON_ATTR = GX_PACK_POLYGONATTR_PARAM(light,
+ polyMode, cullMode, polygonID, alpha, misc);
+}
+
+static inline void G3_TexImageParam(GXTexFmt texFmt,
+ GXTexGen texGen,
+ GXTexSizeS s,
+ GXTexSizeT t,
+ GXTexRepeat repeat,
+ GXTexFlip flip, GXTexPlttColor0 pltt0, u32 addr) {
+ reg_G3_TEXIMAGE_PARAM = GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr);
+}
+
+
+#endif //GUARD_GX_G3IMM_H
diff --git a/arm9/lib/NitroSDK/include/registers.h b/arm9/lib/NitroSDK/include/registers.h
index b4fd8ce7..83b06ba0 100644
--- a/arm9/lib/NitroSDK/include/registers.h
+++ b/arm9/lib/NitroSDK/include/registers.h
@@ -1066,4 +1066,92 @@
#define REG_OS_TM3CNT_H_PS_SIZE 2
#define REG_OS_TM3CNT_H_PS_MASK 0x0003
+// POLYGON_ATTR
+
+#define REG_G3_POLYGON_ATTR_ID_SHIFT 24
+#define REG_G3_POLYGON_ATTR_ID_SIZE 6
+#define REG_G3_POLYGON_ATTR_ID_MASK 0x3f000000
+
+#define REG_G3_POLYGON_ATTR_ALPHA_SHIFT 16
+#define REG_G3_POLYGON_ATTR_ALPHA_SIZE 5
+#define REG_G3_POLYGON_ATTR_ALPHA_MASK 0x001f0000
+
+#define REG_G3_POLYGON_ATTR_FE_SHIFT 15
+#define REG_G3_POLYGON_ATTR_FE_SIZE 1
+#define REG_G3_POLYGON_ATTR_FE_MASK 0x00008000
+
+#define REG_G3_POLYGON_ATTR_DT_SHIFT 14
+#define REG_G3_POLYGON_ATTR_DT_SIZE 1
+#define REG_G3_POLYGON_ATTR_DT_MASK 0x00004000
+
+#define REG_G3_POLYGON_ATTR_D1_SHIFT 13
+#define REG_G3_POLYGON_ATTR_D1_SIZE 1
+#define REG_G3_POLYGON_ATTR_D1_MASK 0x00002000
+
+#define REG_G3_POLYGON_ATTR_FC_SHIFT 12
+#define REG_G3_POLYGON_ATTR_FC_SIZE 1
+#define REG_G3_POLYGON_ATTR_FC_MASK 0x00001000
+
+#define REG_G3_POLYGON_ATTR_XL_SHIFT 11
+#define REG_G3_POLYGON_ATTR_XL_SIZE 1
+#define REG_G3_POLYGON_ATTR_XL_MASK 0x00000800
+
+#define REG_G3_POLYGON_ATTR_FR_SHIFT 7
+#define REG_G3_POLYGON_ATTR_FR_SIZE 1
+#define REG_G3_POLYGON_ATTR_FR_MASK 0x00000080
+
+#define REG_G3_POLYGON_ATTR_BK_SHIFT 6
+#define REG_G3_POLYGON_ATTR_BK_SIZE 1
+#define REG_G3_POLYGON_ATTR_BK_MASK 0x00000040
+
+#define REG_G3_POLYGON_ATTR_PM_SHIFT 4
+#define REG_G3_POLYGON_ATTR_PM_SIZE 2
+#define REG_G3_POLYGON_ATTR_PM_MASK 0x00000030
+
+#define REG_G3_POLYGON_ATTR_LE_SHIFT 0
+#define REG_G3_POLYGON_ATTR_LE_SIZE 4
+#define REG_G3_POLYGON_ATTR_LE_MASK 0x0000000f
+
+// TEXIMAGE_PARAM
+
+#define REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT 30
+#define REG_G3_TEXIMAGE_PARAM_TGEN_SIZE 2
+#define REG_G3_TEXIMAGE_PARAM_TGEN_MASK 0xc0000000
+
+#define REG_G3_TEXIMAGE_PARAM_TR_SHIFT 29
+#define REG_G3_TEXIMAGE_PARAM_TR_SIZE 1
+#define REG_G3_TEXIMAGE_PARAM_TR_MASK 0x20000000
+
+#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT 26
+#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SIZE 3
+#define REG_G3_TEXIMAGE_PARAM_TEXFMT_MASK 0x1c000000
+
+#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT 23
+#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SIZE 3
+#define REG_G3_TEXIMAGE_PARAM_T_SIZE_MASK 0x03800000
+
+#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT 20
+#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SIZE 3
+#define REG_G3_TEXIMAGE_PARAM_V_SIZE_MASK 0x00700000
+
+#define REG_G3_TEXIMAGE_PARAM_FT_SHIFT 19
+#define REG_G3_TEXIMAGE_PARAM_FT_SIZE 1
+#define REG_G3_TEXIMAGE_PARAM_FT_MASK 0x00080000
+
+#define REG_G3_TEXIMAGE_PARAM_FS_SHIFT 18
+#define REG_G3_TEXIMAGE_PARAM_FS_SIZE 1
+#define REG_G3_TEXIMAGE_PARAM_FS_MASK 0x00040000
+
+#define REG_G3_TEXIMAGE_PARAM_RT_SHIFT 17
+#define REG_G3_TEXIMAGE_PARAM_RT_SIZE 1
+#define REG_G3_TEXIMAGE_PARAM_RT_MASK 0x00020000
+
+#define REG_G3_TEXIMAGE_PARAM_RS_SHIFT 16
+#define REG_G3_TEXIMAGE_PARAM_RS_SIZE 1
+#define REG_G3_TEXIMAGE_PARAM_RS_MASK 0x00010000
+
+#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SHIFT 0
+#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SIZE 16
+#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_MASK 0x0000ffff
+
#endif //POKEDIAMOND_ARM9_REGISTERS_H