fixed 8bit writes to vmem, unaligned data buffers, and started on
[gba_blender] / src / sprites.h
diff --git a/src/sprites.h b/src/sprites.h
new file mode 100644 (file)
index 0000000..3712aba
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+blender for the Gameboy Advance
+Copyright (C) 2021  John Tsiombikas <nuclear@member.fsf.org>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <https://www.gnu.org/licenses/>.
+*/
+#ifndef SPRITES_H_
+#define SPRITES_H_
+
+#include <stdint.h>
+
+enum {
+       SPR_ROTSCL      = 0x0100,
+       SPR_DBLSZ       = 0x0200,
+       SPR_BLEND       = 0x0400,
+       SPR_OBJWIN      = 0x0800,
+       SPR_MOSAIC      = 0x1000,
+       SPR_256COL      = 0x2000,
+       SPR_HRECT       = 0x4000,
+       SPR_VRECT       = 0x8000,
+
+       SPR_HFLIP       = 0x100000,
+       SPR_VFLIP       = 0x200000,
+       SPR_SZ16        = 0x400000,
+       SPR_SZ32        = 0x800000,
+       SPR_SZ64        = 0xc00000
+};
+#define SPR_ROTSCL_PARAM(x)    ((unsigned int)(x) << 17)
+#define SPR_PRIO(x)                    ((unsigned int)(x) & 3)
+
+void init_sprites(void);
+void set_sprite(uint16_t *oam, int idx, int spr, int x, int y, int pal, unsigned int flags);
+
+#endif /* SPRITES_H_ */