summaryrefslogtreecommitdiff
path: root/include/gba
diff options
context:
space:
mode:
Diffstat (limited to 'include/gba')
-rw-r--r--include/gba/m4a_internal.h5
-rw-r--r--include/gba/macro.h2
-rw-r--r--include/gba/syscall.h2
-rw-r--r--include/gba/types.h21
4 files changed, 30 insertions, 0 deletions
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index f5d44de99..572b77711 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -1,3 +1,6 @@
+#ifndef GUARD_M4A_INTERNAL_H
+#define GUARD_M4A_INTERNAL_H
+
#include "gba/gba.h"
// ASCII encoding of 'Smsh' in reverse
@@ -460,3 +463,5 @@ void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+
+#endif // GUARD_M4A_INTERNAL_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 62d3e73fa..230fb4383 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -25,6 +25,8 @@
CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
}
+#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size))
+
#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
#define DmaSet(dmaNum, src, dest, control) \
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 9576f7e99..e47f964d1 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -31,6 +31,8 @@ void CpuSet(const void *src, void *dest, u32 control);
void CpuFastSet(const void *src, void *dest, u32 control);
+void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count);
+
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
void LZ77UnCompWram(const void *src, void *dest);
diff --git a/include/gba/types.h b/include/gba/types.h
index be7390d5a..fd8a20a4c 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -74,6 +74,27 @@ struct OamData
#define ST_OAM_H_RECTANGLE 1
#define ST_OAM_V_RECTANGLE 2
+struct BgAffineSrcData
+{
+ s32 texX;
+ s32 texY;
+ s16 scrX;
+ s16 scrY;
+ s16 sx;
+ s16 sy;
+ u16 alpha;
+};
+
+struct BgAffineDstData
+{
+ s16 pa;
+ s16 pb;
+ s16 pc;
+ s16 pd;
+ s32 dx;
+ s32 dy;
+};
+
struct ObjAffineSrcData
{
s16 xScale;