From db4af549fdf13cdaca6654f7bb9ef54ecef14359 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Mon, 29 Jul 2019 20:44:18 -0500 Subject: resolve some Emerald differences --- include/gba/types.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'include/gba/types.h') diff --git a/include/gba/types.h b/include/gba/types.h index 4d6c24a6c..0e652a0df 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -87,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + struct BgAffineSrcData { s32 texX; -- cgit v1.2.3