789e63e4e23daa266799d1b24b566ae10b67eba7
[gbajam22] / src / util.h
1 #ifndef UTIL_H_
2 #define UTIL_H_
3
4 #include <stdint.h>
5
6 #define wait_vblank() \
7         do { \
8                 while(REG_DISPSTAT & DISPSTAT_VBLANK); \
9                 while(!(REG_DISPSTAT & DISPSTAT_VBLANK)); \
10         } while(0)
11
12 #define present(x) \
13         do { \
14                 REG_DISPCNT = DISPCNT_BG2 | DISPCNT_OBJ | 4 | ((x) << 4); \
15         } while(0)
16
17
18 #define set_bg_color(idx, r, g, b) \
19         do { \
20                 ((uint16_t*)CRAM_BG_ADDR)[idx] = (uint16_t)(r) | ((uint16_t)(g) << 5) | ((uint16_t)(b) << 10); \
21         } while(0)
22
23 extern int16_t sinlut[];
24
25 #define SIN(x)  sinlut[(x) & 0xff]
26 #define COS(x)  sinlut[((x) + 64) & 0xff]
27
28 int iwram_brk(void *addr);
29 void *iwram_sbrk(intptr_t delta);
30
31 void fillblock_16byte(void *dest, uint32_t val, int count);
32
33 void *get_pc(void);
34 void *get_sp(void);
35
36 #endif  /* UTIL_H_ */