From 3568b731edd1dddd821bd83d6475572a9c1eeb94 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 21 Apr 2023 17:01:34 +0200 Subject: Fix OBJ appearing on top left when keyboard is off --- src/ppu.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/ppu.c') diff --git a/src/ppu.c b/src/ppu.c index adf837c..4dcc5be 100644 --- a/src/ppu.c +++ b/src/ppu.c @@ -773,12 +773,22 @@ KeyboardChar keyboard[] = { {0, 0, 'u'}, {0, 0, 'v'}, {0, 0, 'w'}, {0, 0, 'x'}, {0, 0, 'y'}, {0, 0, 'z'}, {0, 0, ','}, {0, 0, '.'}, {0, 0, ';'}, {0, 0, ':'}, {0, 0, ' '}, {0, 0, 0x1a}, }; +bool keyboard_on = false; + void toggle_keyboard(void) { + DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; for (size_t i = 0; i < LEN(keyboard); ++i) { OBJ_ATTR_0(i) ^= OBJ_HIDDEN; } OBJ_ATTR_0(127) ^= OBJ_HIDDEN; + if (keyboard_on) { + keyboard_on = false; + DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1; + } else { + keyboard_on = true; + DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; + } } void @@ -793,10 +803,10 @@ update_cursor(u8 pos) { void video_init() { // Clear VRAM. - // dma_fill((u32*)MEM_VRAM, 0, KB(96), 3); + dma_fill((u32*)MEM_VRAM, 0, KB(96), 3); // Initialize display mode and bg palette. - DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; + DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1; // Initialize backgrounds. u8 cb_fg = 0; -- cgit v1.2.1