diff options
author | Bad Diode <bd@badd10de.dev> | 2023-04-21 17:01:34 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-04-21 17:01:34 +0200 |
commit | 3568b731edd1dddd821bd83d6475572a9c1eeb94 (patch) | |
tree | 87f46a72525bb651a6f16494ab239a1d1531c9b3 | |
parent | a2f30f050fc5cd61d1b927e3c0eea102ec8603ae (diff) | |
download | uxngba-3568b731edd1dddd821bd83d6475572a9c1eeb94.tar.gz uxngba-3568b731edd1dddd821bd83d6475572a9c1eeb94.zip |
Fix OBJ appearing on top left when keyboard is off
-rw-r--r-- | src/ppu.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -773,12 +773,22 @@ KeyboardChar keyboard[] = { | |||
773 | {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}, | 773 | {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}, |
774 | }; | 774 | }; |
775 | 775 | ||
776 | bool keyboard_on = false; | ||
777 | |||
776 | void | 778 | void |
777 | toggle_keyboard(void) { | 779 | toggle_keyboard(void) { |
780 | DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; | ||
778 | for (size_t i = 0; i < LEN(keyboard); ++i) { | 781 | for (size_t i = 0; i < LEN(keyboard); ++i) { |
779 | OBJ_ATTR_0(i) ^= OBJ_HIDDEN; | 782 | OBJ_ATTR_0(i) ^= OBJ_HIDDEN; |
780 | } | 783 | } |
781 | OBJ_ATTR_0(127) ^= OBJ_HIDDEN; | 784 | OBJ_ATTR_0(127) ^= OBJ_HIDDEN; |
785 | if (keyboard_on) { | ||
786 | keyboard_on = false; | ||
787 | DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1; | ||
788 | } else { | ||
789 | keyboard_on = true; | ||
790 | DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; | ||
791 | } | ||
782 | } | 792 | } |
783 | 793 | ||
784 | void | 794 | void |
@@ -793,10 +803,10 @@ update_cursor(u8 pos) { | |||
793 | void | 803 | void |
794 | video_init() { | 804 | video_init() { |
795 | // Clear VRAM. | 805 | // Clear VRAM. |
796 | // dma_fill((u32*)MEM_VRAM, 0, KB(96), 3); | 806 | dma_fill((u32*)MEM_VRAM, 0, KB(96), 3); |
797 | 807 | ||
798 | // Initialize display mode and bg palette. | 808 | // Initialize display mode and bg palette. |
799 | DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1 | DISP_OBJ; | 809 | DISP_CTRL = DISP_MODE_0 | DISP_BG_0 | DISP_BG_1; |
800 | 810 | ||
801 | // Initialize backgrounds. | 811 | // Initialize backgrounds. |
802 | u8 cb_fg = 0; | 812 | u8 cb_fg = 0; |