DMA and sprites (not working yet)
[mdlife] / src / main.c
1 #include <stdio.h>
2 #include "z80.h"
3 #include "vdp.h"
4 #include "sprite.h"
5 #include "debug.h"
6
7 #define SPRITE_BASE             0x8000
8 extern uint16_t cellspr_data[], cellspr_data_end[];
9
10 int main(void)
11 {
12         uint16_t *src;
13         int tile;
14
15         z80_init();
16         vdp_init();
17         dbg_init();
18
19         vdp_setcolor(0, 0, 2, 2, 2);
20         vdp_setcolor(0, 15, 15, 15, 15);
21
22         /* upload sprite tiles */
23         src = cellspr_data;
24         vdp_setup_addr(VDP_VRAM, SPRITE_BASE);
25         while(src < cellspr_data_end) {
26                 VDP_DATA = *src++;
27         }
28
29         for(;;) {
30                 spr_begin();
31                 tile = SPRITE_BASE / 32 + 2;
32                 spr_add(160, 100, VDP_TILENAME(tile, 0, VDP_TILE_FG), SPR_SIZE(1,1));
33
34                 vdp_wait_vblank();
35                 spr_submit();
36         }
37
38         return 0;
39 }