summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-05-21 15:15:29 -0700
committerYamaArashi <shadow962@live.com>2016-05-21 15:15:29 -0700
commit5cbdc23e7e4cd1d4826d7589dfbdb5004e560d71 (patch)
treec8017cf53416cd04248fe0e6802b6d6f9ca7c00b /include
parentc0203de808a98d27446e01c6b7e9f9311a5ad3bf (diff)
FreeAllSpriteTiles() to ClearSpriteTileRanges()
Diffstat (limited to 'include')
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/gba/macro.h10
-rw-r--r--include/gba/syscall.h4
-rw-r--r--include/sprite.h2
4 files changed, 17 insertions, 2 deletions
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 005efb079..a8df0c1c2 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -27,13 +27,14 @@
// alignment would be if the variable were uninitialized.
#define COMM(decl, n) IWRAM_DATA ALIGNED(1 << n) decl = {0};
#define COMM_2(decl) COMM(decl, 2)
+#define COMM_3(decl) COMM(decl, 3)
#define COMM_4(decl) COMM(decl, 4)
#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)
#define INTR_CHECK (*(u16 *)0x3007FF8)
#define INTR_VECTOR (*(void **)0x3007FFC)
-#define OBJ_VRAM0 0x6010000 // when BG is in tilemap mode
+#define OBJ_VRAM0 0x6010000 // when BG is in tiled mode
#define OBJ_VRAM1 0x6014000 // when BG is in bitmap mode
#define OAM 0x7000000
diff --git a/include/gba/macro.h b/include/gba/macro.h
index a886d12d4..991841396 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -17,6 +17,16 @@
#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
+#define CpuFastFill(dest, value, size) \
+{ \
+ vu32 tmp = (vu32)(value); \
+ CpuFastSet((void *)&tmp, \
+ dest, \
+ CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
+}
+
+#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
+
#define DmaSet(dmaNum, src, dest, control) \
{ \
vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 8ef82c0e4..2008128d3 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -23,6 +23,10 @@ void VBlankIntrWait(void);
void CpuSet(void *src, void *dest, u32 control);
+#define CPU_FAST_SET_SRC_FIXED 0x01000000
+
+void CpuFastSet(void *src, void *dest, u32 control);
+
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/sprite.h b/include/sprite.h
index 27b3222ee..184d75791 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -223,7 +223,7 @@ void AllocTilesForSpriteSheets(struct SpriteSheet *sheets);
void LoadTilesForSpriteSheet(struct SpriteSheet *sheet);
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets);
void FreeSpriteTilesByTag(u16 tag);
-void FreeAllSpriteTiles(void);
+void ClearSpriteTileRanges(void);
u16 GetSpriteTileStartByTag(u16 tag);
u16 GetSpriteTileTagByTileStart(u16 start);
void RequestSpriteSheetCopy(struct SpriteSheet *sheet);