diff options
Diffstat (limited to 'include/gba')
-rw-r--r-- | include/gba/defines.h | 3 | ||||
-rw-r--r-- | include/gba/macro.h | 10 | ||||
-rw-r--r-- | include/gba/syscall.h | 4 |
3 files changed, 16 insertions, 1 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 |