diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml
index cc8f986713..a9f2df6969 100644
--- a/assets/xml/objects/gameplay_keep.xml
+++ b/assets/xml/objects/gameplay_keep.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/assets/xml/objects/object_sd.xml b/assets/xml/objects/object_sd.xml
index 66324bf55f..c72efeae10 100644
--- a/assets/xml/objects/object_sd.xml
+++ b/assets/xml/objects/object_sd.xml
@@ -4,17 +4,17 @@
-
+
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_spot00_break.xml b/assets/xml/objects/object_spot00_break.xml
index 6726685e5b..d3be88315f 100644
--- a/assets/xml/objects/object_spot00_break.xml
+++ b/assets/xml/objects/object_spot00_break.xml
@@ -5,8 +5,8 @@
-
-
+
+
diff --git a/assets/xml/overlays/ovl_Arrow_Fire.xml b/assets/xml/overlays/ovl_Arrow_Fire.xml
index 6a701847c9..3f740fe657 100644
--- a/assets/xml/overlays/ovl_Arrow_Fire.xml
+++ b/assets/xml/overlays/ovl_Arrow_Fire.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/overlays/ovl_Arrow_Ice.xml b/assets/xml/overlays/ovl_Arrow_Ice.xml
index 07d73628b8..ca9c7cbc5d 100644
--- a/assets/xml/overlays/ovl_Arrow_Ice.xml
+++ b/assets/xml/overlays/ovl_Arrow_Ice.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/overlays/ovl_Arrow_Light.xml b/assets/xml/overlays/ovl_Arrow_Light.xml
index dd8e0fbf96..e235f83c21 100644
--- a/assets/xml/overlays/ovl_Arrow_Light.xml
+++ b/assets/xml/overlays/ovl_Arrow_Light.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/assets/xml/overlays/ovl_Magic_Dark.xml b/assets/xml/overlays/ovl_Magic_Dark.xml
index 30cfda6bc6..cd8d455921 100644
--- a/assets/xml/overlays/ovl_Magic_Dark.xml
+++ b/assets/xml/overlays/ovl_Magic_Dark.xml
@@ -1,9 +1,11 @@
+
+
diff --git a/include/command_macros_base.h b/include/command_macros_base.h
index b6154b8632..3f1a1a0d0f 100644
--- a/include/command_macros_base.h
+++ b/include/command_macros_base.h
@@ -16,6 +16,12 @@
#define CMD_W(a) (a)
+#ifdef __GNUC__
+#define CMD_F(a) {.f = (a)}
+#else
+#define CMD_F(a) {(a)}
+#endif
+
#define CMD_PTR(a) (u32)(a)
#endif
diff --git a/include/macros.h b/include/macros.h
index c1a1c0e028..a47fd9a83b 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -164,4 +164,10 @@ extern GraphicsContext* __gfxCtx;
((height)-1) << G_TEXTURE_IMAGE_FRAC); \
} while (0)
+#ifdef __GNUC__
+#define ALIGNED8 __attribute__ ((aligned (8)))
+#else
+#define ALIGNED8
+#endif
+
#endif
diff --git a/include/z64cutscene_commands.h b/include/z64cutscene_commands.h
index de3ad2fea0..77ebb9e18c 100644
--- a/include/z64cutscene_commands.h
+++ b/include/z64cutscene_commands.h
@@ -33,7 +33,7 @@
* size = 0x10
*/
#define CS_CAM_POS(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -55,7 +55,7 @@
* size = 0x10
*/
#define CS_CAM_FOCUS_POINT(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -122,7 +122,7 @@
* size = 0x10
*/
#define CS_CAM_POS_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -144,7 +144,7 @@
* size = 0x10
*/
#define CS_CAM_FOCUS_POINT_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -167,7 +167,7 @@
* size = 0x10
*/
#define CS_CMD_07(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -190,7 +190,7 @@
* size = 0x10
*/
#define CS_CMD_08(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \
- CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
+ CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused)
/**
* ARGS
@@ -257,7 +257,7 @@
CMD_HH(npcAction, startFrame), CMD_HH(endFrame, rotX), CMD_HH(rotY, rotZ), \
CMD_W(startX), CMD_W(startY), CMD_W(startZ), \
CMD_W(endX), CMD_W(endY), CMD_W(endZ), \
- CMD_W(normX), CMD_W(normY), CMD_W(normZ)
+ CMD_F(normX), CMD_F(normY), CMD_F(normZ)
/**
* ARGS