summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK/include
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/NitroSDK/include')
-rw-r--r--arm9/lib/NitroSDK/include/GX_g3.h13
-rw-r--r--arm9/lib/NitroSDK/include/GX_g3imm.h42
-rw-r--r--arm9/lib/NitroSDK/include/registers.h62
3 files changed, 117 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/GX_g3.h b/arm9/lib/NitroSDK/include/GX_g3.h
index 7f11c55e..2c093370 100644
--- a/arm9/lib/NitroSDK/include/GX_g3.h
+++ b/arm9/lib/NitroSDK/include/GX_g3.h
@@ -203,5 +203,18 @@ GXBoxTestParam;
((alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT)))
+#define GX_PACK_TEXPLTTBASE_PARAM(addr, texFmt) \
+ ((u32)((addr) >> (4 - ((texFmt) == GX_TEXFMT_PLTT4))))
+
+
+#define GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor) \
+ ((u32)((diffuse) | \
+ ((ambient) << REG_G3_DIF_AMB_AMBIENT_RED_SHIFT) | \
+ ((IsSetVtxColor != FALSE) << REG_G3_DIF_AMB_C_SHIFT)))
+
+#define GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess) \
+ ((u32)((specular) | \
+ ((emission) << REG_G3_SPE_EMI_EMISSION_RED_SHIFT) | \
+ ((IsShininess != FALSE) << REG_G3_SPE_EMI_S_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 49a9f13b..33ebdef2 100644
--- a/arm9/lib/NitroSDK/include/GX_g3imm.h
+++ b/arm9/lib/NitroSDK/include/GX_g3imm.h
@@ -8,6 +8,31 @@ void G3_LoadMtx43(struct Mtx43 *mtx);
void G3_MultMtx43(struct Mtx43 *mtx);
void G3_MultMtx33(struct Mtx33 *mtx);
+
+static inline void G3_PushMtx()
+{
+ reg_G3_MTX_PUSH = 0;
+}
+
+static inline void G3_PopMtx(int num)
+{
+ reg_G3_MTX_POP = (u32)num;
+}
+
+static inline void G3_Identity()
+{
+ reg_G3_MTX_IDENTITY = 0;
+}
+
+
+static inline void G3_Translate(fx32 x, fx32 y, fx32 z)
+{
+ reg_G3_MTX_TRANS = (u32)x;
+ reg_G3_MTX_TRANS = (u32)y;
+ reg_G3_MTX_TRANS = (u32)z;
+}
+
+
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);
@@ -23,4 +48,21 @@ static inline void G3_TexImageParam(GXTexFmt texFmt,
}
+static inline void G3_TexPlttBase(u32 addr, GXTexFmt texfmt)
+{
+ u32 param = GX_PACK_TEXPLTTBASE_PARAM(addr, texfmt);
+ reg_G3_TEXPLTT_BASE = param;
+}
+
+
+static inline void G3_MaterialColorDiffAmb(GXRgb diffuse, GXRgb ambient, BOOL IsSetVtxColor)
+{
+ reg_G3_DIF_AMB = GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor);
+}
+
+static inline void G3_MaterialColorSpecEmi(GXRgb specular, GXRgb emission, BOOL IsShininess)
+{
+ reg_G3_SPE_EMI = GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess);
+}
+
#endif //GUARD_GX_G3IMM_H
diff --git a/arm9/lib/NitroSDK/include/registers.h b/arm9/lib/NitroSDK/include/registers.h
index 83b06ba0..d31cee22 100644
--- a/arm9/lib/NitroSDK/include/registers.h
+++ b/arm9/lib/NitroSDK/include/registers.h
@@ -1154,4 +1154,66 @@
#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SIZE 16
#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_MASK 0x0000ffff
+
+// DIF_AMB
+
+#define REG_G3_DIF_AMB_AMBIENT_BLUE_SHIFT 26
+#define REG_G3_DIF_AMB_AMBIENT_BLUE_SIZE 5
+#define REG_G3_DIF_AMB_AMBIENT_BLUE_MASK 0x7c000000
+
+#define REG_G3_DIF_AMB_AMBIENT_GREEN_SHIFT 21
+#define REG_G3_DIF_AMB_AMBIENT_GREEN_SIZE 5
+#define REG_G3_DIF_AMB_AMBIENT_GREEN_MASK 0x03e00000
+
+#define REG_G3_DIF_AMB_AMBIENT_RED_SHIFT 16
+#define REG_G3_DIF_AMB_AMBIENT_RED_SIZE 5
+#define REG_G3_DIF_AMB_AMBIENT_RED_MASK 0x001f0000
+
+#define REG_G3_DIF_AMB_C_SHIFT 15
+#define REG_G3_DIF_AMB_C_SIZE 1
+#define REG_G3_DIF_AMB_C_MASK 0x00008000
+
+#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SHIFT 10
+#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SIZE 5
+#define REG_G3_DIF_AMB_DIFFUSE_BLUE_MASK 0x00007c00
+
+#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SHIFT 5
+#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SIZE 5
+#define REG_G3_DIF_AMB_DIFFUSE_GREEN_MASK 0x000003e0
+
+#define REG_G3_DIF_AMB_DIFFUSE_RED_SHIFT 0
+#define REG_G3_DIF_AMB_DIFFUSE_RED_SIZE 5
+#define REG_G3_DIF_AMB_DIFFUSE_RED_MASK 0x0000001f
+
+
+// SPE_EMI
+
+#define REG_G3_SPE_EMI_EMISSION_BLUE_SHIFT 26
+#define REG_G3_SPE_EMI_EMISSION_BLUE_SIZE 5
+#define REG_G3_SPE_EMI_EMISSION_BLUE_MASK 0x7c000000
+
+#define REG_G3_SPE_EMI_EMISSION_GREEN_SHIFT 21
+#define REG_G3_SPE_EMI_EMISSION_GREEN_SIZE 5
+#define REG_G3_SPE_EMI_EMISSION_GREEN_MASK 0x03e00000
+
+#define REG_G3_SPE_EMI_EMISSION_RED_SHIFT 16
+#define REG_G3_SPE_EMI_EMISSION_RED_SIZE 5
+#define REG_G3_SPE_EMI_EMISSION_RED_MASK 0x001f0000
+
+#define REG_G3_SPE_EMI_S_SHIFT 15
+#define REG_G3_SPE_EMI_S_SIZE 1
+#define REG_G3_SPE_EMI_S_MASK 0x00008000
+
+#define REG_G3_SPE_EMI_SPECULAR_BLUE_SHIFT 10
+#define REG_G3_SPE_EMI_SPECULAR_BLUE_SIZE 5
+#define REG_G3_SPE_EMI_SPECULAR_BLUE_MASK 0x00007c00
+
+#define REG_G3_SPE_EMI_SPECULAR_GREEN_SHIFT 5
+#define REG_G3_SPE_EMI_SPECULAR_GREEN_SIZE 5
+#define REG_G3_SPE_EMI_SPECULAR_GREEN_MASK 0x000003e0
+
+#define REG_G3_SPE_EMI_SPECULAR_RED_SHIFT 0
+#define REG_G3_SPE_EMI_SPECULAR_RED_SIZE 5
+#define REG_G3_SPE_EMI_SPECULAR_RED_MASK 0x0000001f
+
#endif //POKEDIAMOND_ARM9_REGISTERS_H