initial commit
[gbajam22] / src / main.c
1 #include <math.h>
2 #include "gbaregs.h"
3 #include "intr.h"
4 #include "debug.h"
5 #include "game.h"
6 #include "maxmod.h"
7
8 static void vblank(void);
9 static void nopfunc(void);
10
11 int main(void)
12 {
13         int i;
14         volatile uint16_t *cptr;
15
16         intr_init();
17
18         REG_WAITCNT = WAITCNT_PREFETCH | WAITCNT_ROM_2_1;
19
20         cptr = (uint16_t*)CRAM_BG_ADDR;
21         for(i=0; i<256; i++) {
22                 int c = i >> 3;
23                 *cptr++ = c | ((c >> 1) << 10);
24         }
25
26 #ifndef NOSOUND
27         mmInitDefault(sound_data, 8);
28         mmStart(MOD_POPCORN, MM_PLAY_LOOP);
29 #endif
30
31         screen_vblank = nopfunc;
32
33         intr_disable();
34         interrupt(INTR_VBLANK, vblank);
35         REG_DISPSTAT |= DISPSTAT_IEN_VBLANK;
36         unmask(INTR_VBLANK);
37
38         intr_enable();
39         gamescr();
40
41         for(;;);
42         return 0;
43 }
44
45 static void vblank(void)
46 {
47         vblperf_count++;
48
49         screen_vblank();
50
51 #ifndef NOSOUND
52         mmVBlank();
53         mmFrame();
54 #endif
55 }
56
57 static void nopfunc(void)
58 {
59 }