DMA and sprites (not working yet)
[mdlife] / src / main.c
index 66efdda..9b02e61 100644 (file)
@@ -1,9 +1,17 @@
+#include <stdio.h>
 #include "z80.h"
 #include "vdp.h"
+#include "sprite.h"
 #include "debug.h"
 
+#define SPRITE_BASE            0x8000
+extern uint16_t cellspr_data[], cellspr_data_end[];
+
 int main(void)
 {
+       uint16_t *src;
+       int tile;
+
        z80_init();
        vdp_init();
        dbg_init();
@@ -11,7 +19,21 @@ int main(void)
        vdp_setcolor(0, 0, 2, 2, 2);
        vdp_setcolor(0, 15, 15, 15, 15);
 
-       dbg_printstr(0, 0, "Mindlapse");
+       /* upload sprite tiles */
+       src = cellspr_data;
+       vdp_setup_addr(VDP_VRAM, SPRITE_BASE);
+       while(src < cellspr_data_end) {
+               VDP_DATA = *src++;
+       }
+
+       for(;;) {
+               spr_begin();
+               tile = SPRITE_BASE / 32 + 2;
+               spr_add(160, 100, VDP_TILENAME(tile, 0, VDP_TILE_FG), SPR_SIZE(1,1));
+
+               vdp_wait_vblank();
+               spr_submit();
+       }
 
        return 0;
 }