03930b11e2ee7db5c32013ec2aee5421b79e72d8
[gbajam21] / src / main.c
1 #include <math.h>
2 #include "gbaregs.h"
3 #include "intr.h"
4 #include "debug.h"
5
6 #include "AAS.h"
7 #include "data.h"
8
9 #define RGB15(r, g, b) \
10         (((uint16_t)(r) & 0x1f) | \
11          (((uint16_t)(g) & 0x1f) << 5) | \
12          (((uint16_t)(b) & 0x1f) << 10))
13
14 int main(void)
15 {
16         int i, j;
17         uint16_t *vptr;
18
19         emuprint("\nStarting GBAJAM21\n-----------------\n");
20
21         intr_init();
22
23         interrupt(INTR_TIMER1, AAS_Timer1InterruptHandler);
24         AAS_SetConfig(AAS_CONFIG_MIX_24KHZ, AAS_CONFIG_CHANS_8, AAS_CONFIG_SPATIAL_STEREO, AAS_CONFIG_DYNAMIC_ON);
25         unmask(INTR_TIMER1);
26         intr_enable();
27
28
29         REG_DISPCNT = 3 | DISPCNT_BG2;
30
31         vptr = (uint16_t*)VRAM_START_ADDR;
32         for(i=0; i<160; i++) {
33                 for(j=0; j<240; j++) {
34                         int xor = i ^ j;
35                         int r = xor >> 2;
36                         int g = xor >> 1;
37                         int b = xor;
38
39                         *vptr++ = RGB15(r, g, b);
40                 }
41         }
42
43         AAS_MOD_Play(AAS_DATA_MOD_popcorn);
44
45         for(;;);
46         return 0;
47 }