aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-04-21 17:01:34 +0200
committerBad Diode <bd@badd10de.dev>2023-04-21 17:01:34 +0200
commit3568b731edd1dddd821bd83d6475572a9c1eeb94 (patch)
tree87f46a72525bb651a6f16494ab239a1d1531c9b3
parenta2f30f050fc5cd61d1b927e3c0eea102ec8603ae (diff)
downloaduxngba-3568b731edd1dddd821bd83d6475572a9c1eeb94.tar.gz
uxngba-3568b731edd1dddd821bd83d6475572a9c1eeb94.zip
Fix OBJ appearing on top left when keyboard is off
-rw-r--r--src/ppu.c14
1 files changed, 12 insertions, 2 deletions
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[] = {
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
776bool keyboard_on = false;
777
776void 778void
777toggle_keyboard(void) { 779toggle_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
784void 794void
@@ -793,10 +803,10 @@ update_cursor(u8 pos) {
793void 803void
794video_init() { 804video_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;