#include #include #include #include #include "common.h" //#link "rasterirq.ca65" #include "rasterirq.h" //#link "sprites.c" #include "sprites.h" /*{w:24,h:21,bpp:1,brev:1}*/ const char spriteshape[3*21] = { 0x00,0x7F,0x00,0x01,0xFF,0xC0,0x03,0xFF,0xE0, 0x03,0xE7,0xE0,0x07,0xD9,0xF0,0x07,0xDF,0xF0, 0x07,0xD9,0xF0,0x03,0xE7,0xE0,0x03,0xFF,0xE0, 0x03,0xFF,0xE0,0x02,0xFF,0xA0,0x01,0x7F,0x40, 0x01,0x3E,0x40,0x00,0x9C,0x80,0x00,0x9C,0x80, 0x00,0x49,0x00,0x00,0x49,0x00,0x00,0x3E,0x00, 0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x1C,0x00 }; void dlist_example(void) { static byte i = 0; VIC.bordercolor = 6; VIC.bordercolor = 5; VIC.ctrl1 = 0x18; DLIST_NEXT(150); // VIC.ctrl1 = 5 | 0x18; VIC.bordercolor = 2; DLIST_NEXT(0xf9); VIC.ctrl1 = 0x10; VIC.bordercolor = 3; DLIST_NEXT(0xfc); VIC.ctrl1 = 0x18; VIC.bordercolor = 4; DLIST_RESTART(30); } void main(void) { byte i; clrscr(); sprite_clear(); sprite_shape((void*)0x400, 32/2, spriteshape); // set colors sprshad.spr_exp_x = 0xff; for (i=0; i<8; i++) { sprshad.spr_color[i] = i+3; sprite_draw(i, i*38+24, 248, 32); } // TODO: can't do in IRQ DLIST_SETUP(dlist_example); while (1) { sprshad.spr_pos[0].y += 1; sprite_update(DEFAULT_SCREEN); printf("Hello World! "); } }