diff --git a/apps/plugins/varvara/varvara.c b/apps/plugins/varvara/varvara.c index a5c856806c..ebc192f87c 100644 --- a/apps/plugins/varvara/varvara.c +++ b/apps/plugins/varvara/varvara.c @@ -19,6 +19,7 @@ TODO clean up #include "uxn.h" #include "devices/ppu.h" #include "plugin.h" +#include "lib/pluginlib_actions.h" #include #include #include @@ -178,9 +179,10 @@ const Uint8 vector_rom[] = { // screen vector test ROM }; + static Uxn u; static Ppu ppu; -static Device *devsystem, *devconsole, *devscreen; +static Device *devctrl, *devsystem, *devconsole, *devscreen; unsigned int palette[3]; static Uint8 framebuffer[LCD_HEIGHT * LCD_WIDTH * 4]; @@ -212,7 +214,7 @@ inspect(Stack *s, char *name) static void set_palette(Uint8 *addr) { - #if LCD_HAS_COLOR + #if LCD_DEPTH > 4 int i; for(i = 0; i < 4; ++i) { Uint8 @@ -221,14 +223,6 @@ set_palette(Uint8 *addr) b = (*(addr + 4 + i / 2) >> (!(i % 2) << 2)) & 0x0f; palette[i] = LCD_RGBPACK(r*8,g*8,b*8); } - #elif LCD_DEPTH > 1 // greyscale - int i; - for(i = 0; i < 4; ++i) { - Uint8 sum = (*(addr + i / 2) >> (!(i % 2) << 2)) & 0x0f; - sum += (*(addr + 2 + i / 2) >> (!(i % 2) << 2)) & 0x0f; - sum += (*(addr + 4 + i / 2) >> (!(i % 2) << 2)) & 0x0f; - palette[i] = sum; - } #else int i; for(i = 0; i < 4; ++i) { @@ -336,10 +330,7 @@ static void redraw(void) Uint16 x, y; for(y = 0; y < ppu.height; ++y) for(x = 0; x < ppu.width; ++x) { - #if LCD_HAS_COLOR - rb->lcd_set_foreground(palette[ppu_read(&ppu, x, y)]); - rb->lcd_drawpixel(x, y); - #elif LCD_DEPTH > 1 + #if LCD_DEPTH > 4 rb->lcd_set_foreground(palette[ppu_read(&ppu, x, y)]); rb->lcd_drawpixel(x, y); #else @@ -398,7 +389,7 @@ enum plugin_status plugin_start(const void* parameter) /* audio2 */ uxn_port(&u, 0x5, nil_talk); /* audio3 */ uxn_port(&u, 0x6, nil_talk); /* empty */ uxn_port(&u, 0x7, nil_talk); - /* control */ uxn_port(&u, 0x8, nil_talk); + /* control */ devctrl = uxn_port(&u, 0x8, nil_talk); /* mouse */ uxn_port(&u, 0x9, nil_talk); /* file */ uxn_port(&u, 0xa, nil_talk); /* datetime */ uxn_port(&u, 0xb, nil_talk);