From 579942ed5500bc9155649201708ffb925139d172 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Wed, 21 Apr 2021 17:24:32 +0200 Subject: Add more buttons to input test --- src/gba-buttons.c | 690 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.c | 207 ++++++++++++++-- 2 files changed, 877 insertions(+), 20 deletions(-) diff --git a/src/gba-buttons.c b/src/gba-buttons.c index de62212..cc53c01 100644 --- a/src/gba-buttons.c +++ b/src/gba-buttons.c @@ -228,6 +228,696 @@ u32 gba_btn_b_data[112][8] = { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, }; +u32 gba_btn_up_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000, 0x10001000, 0x10001000}, + {0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x00011000, 0x11101000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001100, 0x00001011, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000, 0x10001000}, + {0x00000000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x00011000, 0x11110000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001100, 0x00000111, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000010, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000}, + {0x00000000, 0x00100000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x10001000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001000, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000}, + {0x01000000, 0x00000000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x10001000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001000, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000}, + {0x00000000, 0x00000000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x10001000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001000, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000}, + {0x00000000, 0x00000000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x10001000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001000, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x10001000}, + {0x00000000, 0x00000000, 0x00001111, 0x00001000, 0x00001000, 0x00001001, 0x00001011, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x10001000, 0x10001000, 0x00010000, 0x11100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001000, 0x00001000, 0x00000100, 0x00000011, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + +u32 gba_btn_down_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000, 0x10001000, 0x11101000}, + {0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00001000, 0x11111000, 0x00000000, 0x00000000}, + {0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00001000, 0x00001111, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x11111000, 0x00000000, 0x00000000}, + {0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00001111, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000010, 0x00000000}, + {0x00001000, 0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00100000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000001}, + {0x00001000, 0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11100000, 0x00010000, 0x10001000, 0x10001000, 0x10001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000100, 0x00001000, 0x00001000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000}, + {0x00001000, 0x00001011, 0x00001001, 0x00001000, 0x00001000, 0x00001111, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + +u32 gba_btn_left_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000, 0x11001000}, + {0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000, 0x00101111, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10001000, 0x00001000, 0x11111000, 0x00001000, 0x11111000, 0x00000000, 0x00000000, 0x00000000}, + {0x00100000, 0x00110000, 0x00101111, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000, 0x11101000}, + {0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000, 0x00101111}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x11111000, 0x00000000, 0x00000000, 0x00000000}, + {0x00100000, 0x00100000, 0x00110000, 0x00011111, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101001, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000100, 0x00000000}, + {0x00101111, 0x00100000, 0x00100000, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000010, 0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000, 0x00000010}, + {0x00101111, 0x00100000, 0x00100000, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000, 0x00000000}, + {0x00101111, 0x00100000, 0x00100000, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000, 0x00000000}, + {0x00101111, 0x00100000, 0x00100000, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111000, 0x00001000, 0x10001000, 0x11001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001111, 0x00010000, 0x00100000, 0x00100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11101000, 0x11001000, 0x10001000, 0x00001000, 0x11111000, 0x00000000, 0x00000000, 0x00000000}, + {0x00101111, 0x00100000, 0x00100000, 0x00010000, 0x00001111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + +u32 gba_btn_right_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100, 0x11110100, 0x00000100}, + {0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011, 0x00010111, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000100, 0x00001100, 0x11110100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010001, 0x00010000, 0x00011111, 0x00010000, 0x00011111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100, 0x11110100}, + {0x00000000, 0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011, 0x00010111}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000100, 0x00000100, 0x00001100, 0x11111000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00011111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100}, + {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11110100, 0x00000100, 0x00000100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x10010111, 0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00000000, 0x00100000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100}, + {0x10000000, 0x01000000, 0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11110100, 0x00000100, 0x00000100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010111, 0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00000000, 0x00000000, 0x01000000}, + {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11110100, 0x00000100, 0x00000100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010111, 0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11110100, 0x00000100, 0x00000100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010111, 0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00000000, 0x00000000, 0x00000000}, + {0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11110000, 0x00001000, 0x00000100, 0x00000100}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00011111, 0x00010000, 0x00010001, 0x00010011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11110100, 0x00000100, 0x00000100, 0x00001000, 0x11110000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010111, 0x00010011, 0x00010001, 0x00010000, 0x00011111, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + +u32 gba_btn_l_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000111}, + {0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x11111111, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11111111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000011, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x11111111, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000111, 0x00000000, 0x11111111, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000011, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00100000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110000}, + {0x00010000, 0x00010000, 0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00011000}, + {0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111100, 0x00000010, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x00000001, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000010, 0x00000010, 0x00000010}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000001, 0x00000001, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000001, 0x00000111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000010, 0x00000010, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + +u32 gba_btn_r_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000, 0x01100000, 0x10100000}, + {0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000000, 0x11000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11111111, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x11111111, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000, 0x01100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000000, 0x01000000, 0x11000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10100000, 0x00000000, 0x11111111, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x11111111, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000}, + {0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000010}, + {0x01000000, 0x01000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x10100000, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000}, + {0x00001000, 0x00001000, 0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000}, + {0x00000000, 0x00000100, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001100}, + {0x01000000, 0x01000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x10100000, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000}, + {0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000}, + {0x00001000, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00011000}, + {0x01000000, 0x01000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x10100000, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000}, + {0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000}, + {0x01000000, 0x01000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x10100000, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x01000000, 0x01000000, 0x01000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11111111, 0x00000000, 0x01100000, 0x10100000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111111, 0x01000000, 0x10000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000000, 0x01000000, 0x01000000, 0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01100000, 0x10100000, 0x00000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x10000000, 0x10000000, 0x10000000, 0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +}; + typedef struct SpriteAnimation { size_t *tile_offsets; size_t n_frames; diff --git a/src/main.c b/src/main.c index 2015ee0..563340e 100644 --- a/src/main.c +++ b/src/main.c @@ -491,7 +491,7 @@ load_sprite_data(u32 *sprite_data, size_t n_tiles, size_t n_frames) { int main(void) { // Configure the display in mode 0 to show OBJs, where tile memory is // sequential. - DISP_CTRL = DISP_MODE_3 | DISP_ENABLE_SPRITES | DISP_BG_2; + DISP_CTRL = DISP_MODE_0 | DISP_ENABLE_SPRITES | DISP_BG_2; // Add colors to the sprite color palette. Tiles with color number 0 are // treated as transparent. @@ -505,16 +505,16 @@ int main(void) { OBJ_ATTR_0(i) = (1 << 9); } - sprite_tile_counter = 512; + sprite_tile_counter = 0; sprite_memory = &TILE_MEM[4][sprite_tile_counter]; // Initialize the A/B button sprites. - int buttons_x = SCREEN_WIDTH - 64 - 10; - int buttons_y = 120; + int buttons_x = SCREEN_WIDTH / 2; + int buttons_y = SCREEN_HEIGHT / 2; ButtonSprite btn_b = { .id = load_sprite_data(&gba_btn_b_data, 16, 7), - .x = buttons_x, - .y = buttons_y, + .x = buttons_x + 32, + .y = buttons_y + 32, .frame = 0, .state = BTN_STATE_IDLE, }; @@ -524,8 +524,8 @@ int main(void) { ButtonSprite btn_a = { .id = load_sprite_data(&gba_btn_a_data, 16, 7), - .x = buttons_x + 20, - .y = buttons_y - 16, + .x = buttons_x + 32 + 20, + .y = buttons_y + 32 - 16, .frame = 0, .state = BTN_STATE_IDLE, }; @@ -533,22 +533,79 @@ int main(void) { OBJ_ATTR_1(btn_a.id) = btn_a.x | (1 << 0xF); OBJ_ATTR_2(btn_a.id) = sprites[btn_a.id].tile_start; - draw_logo(); + ButtonSprite btn_down = { + .id = load_sprite_data(&gba_btn_down_data, 16, 7), + .x = buttons_x - 64 - 16, + .y = buttons_y + 32, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_down.id) = btn_down.y; + OBJ_ATTR_1(btn_down.id) = btn_down.x | (1 << 0xF); + OBJ_ATTR_2(btn_down.id) = sprites[btn_down.id].tile_start; + + ButtonSprite btn_up = { + .id = load_sprite_data(&gba_btn_up_data, 16, 7), + .x = buttons_x - 64 - 16, + .y = buttons_y + 32 - 18, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_up.id) = btn_up.y; + OBJ_ATTR_1(btn_up.id) = btn_up.x | (1 << 0xF); + OBJ_ATTR_2(btn_up.id) = sprites[btn_up.id].tile_start; + + ButtonSprite btn_left = { + .id = load_sprite_data(&gba_btn_left_data, 16, 7), + .x = buttons_x - 64 - 16 - 12, + .y = buttons_y + 32 - 10, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_left.id) = btn_left.y; + OBJ_ATTR_1(btn_left.id) = btn_left.x | (1 << 0xF); + OBJ_ATTR_2(btn_left.id) = sprites[btn_left.id].tile_start; + + ButtonSprite btn_right = { + .id = load_sprite_data(&gba_btn_right_data, 16, 7), + .x = buttons_x - 64 - 16 + 11, + .y = buttons_y + 32 - 10, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_right.id) = btn_right.y; + OBJ_ATTR_1(btn_right.id) = btn_right.x | (1 << 0xF); + OBJ_ATTR_2(btn_right.id) = sprites[btn_right.id].tile_start; + + ButtonSprite btn_l = { + .id = load_sprite_data(&gba_btn_l_data, 16, 7), + .x = buttons_x - 64 - 28, + .y = buttons_y - 32 - 20, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_l.id) = btn_l.y; + OBJ_ATTR_1(btn_l.id) = btn_l.x | (1 << 0xF); + OBJ_ATTR_2(btn_l.id) = sprites[btn_l.id].tile_start; + + ButtonSprite btn_r = { + .id = load_sprite_data(&gba_btn_r_data, 16, 7), + .x = buttons_x + 32 + 20, + .y = buttons_y - 32 - 20, + .frame = 0, + .state = BTN_STATE_IDLE, + }; + OBJ_ATTR_0(btn_r.id) = btn_r.y; + OBJ_ATTR_1(btn_r.id) = btn_r.x | (1 << 0xF); + OBJ_ATTR_2(btn_r.id) = sprites[btn_r.id].tile_start; + + // draw_logo(); int frame_counter = 0; while(true) { wait_vsync(); poll_keys(); - // Toggle frame counter when we press down. - if (key_pressed(KEY_DOWN) || key_hold(KEY_DOWN)) { - } - if (key_pressed(KEY_UP) || key_hold(KEY_UP)) { - } - if (key_pressed(KEY_LEFT) || key_hold(KEY_LEFT)) { - } - if (key_pressed(KEY_RIGHT) || key_hold(KEY_RIGHT)) { - } if (key_pressed(KEY_B)) { btn_b.frame = 0; btn_b.state = BTN_STATE_PRESSED; @@ -558,8 +615,8 @@ int main(void) { btn_b.frame++; } } else { - size_t n_frames = animation_states[btn_b.state]->n_frames; // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_b.state]->n_frames; if (btn_b.frame > 0 && btn_b.frame < n_frames - 1) { btn_b.frame++; } else { @@ -576,8 +633,8 @@ int main(void) { btn_a.frame++; } } else { - size_t n_frames = animation_states[btn_a.state]->n_frames; // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_a.state]->n_frames; if (btn_a.frame > 0 && btn_a.frame < n_frames - 1) { btn_a.frame++; } else { @@ -585,13 +642,123 @@ int main(void) { btn_a.state = BTN_STATE_IDLE; } } + if (key_pressed(KEY_DOWN)) { + btn_down.frame = 0; + btn_down.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_DOWN)) { + size_t n_frames = animation_states[btn_down.state]->n_frames; + if (btn_down.frame < n_frames - 1) { + btn_down.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_down.state]->n_frames; + if (btn_down.frame > 0 && btn_down.frame < n_frames - 1) { + btn_down.frame++; + } else { + btn_down.frame = 0; + btn_down.state = BTN_STATE_IDLE; + } + } + if (key_pressed(KEY_UP)) { + btn_up.frame = 0; + btn_up.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_UP)) { + size_t n_frames = animation_states[btn_up.state]->n_frames; + if (btn_up.frame < n_frames - 1) { + btn_up.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_up.state]->n_frames; + if (btn_up.frame > 0 && btn_up.frame < n_frames - 1) { + btn_up.frame++; + } else { + btn_up.frame = 0; + btn_up.state = BTN_STATE_IDLE; + } + } + if (key_pressed(KEY_LEFT)) { + btn_left.frame = 0; + btn_left.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_LEFT)) { + size_t n_frames = animation_states[btn_left.state]->n_frames; + if (btn_left.frame < n_frames - 1) { + btn_left.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_left.state]->n_frames; + if (btn_left.frame > 0 && btn_left.frame < n_frames - 1) { + btn_left.frame++; + } else { + btn_left.frame = 0; + btn_left.state = BTN_STATE_IDLE; + } + } + if (key_pressed(KEY_RIGHT)) { + btn_right.frame = 0; + btn_right.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_RIGHT)) { + size_t n_frames = animation_states[btn_right.state]->n_frames; + if (btn_right.frame < n_frames - 1) { + btn_right.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_right.state]->n_frames; + if (btn_right.frame > 0 && btn_right.frame < n_frames - 1) { + btn_right.frame++; + } else { + btn_right.frame = 0; + btn_right.state = BTN_STATE_IDLE; + } + } if (key_pressed(KEY_L)) { + btn_l.frame = 0; + btn_l.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_L)) { + size_t n_frames = animation_states[btn_l.state]->n_frames; + if (btn_l.frame < n_frames - 1) { + btn_l.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_l.state]->n_frames; + if (btn_l.frame > 0 && btn_l.frame < n_frames - 1) { + btn_l.frame++; + } else { + btn_l.frame = 0; + btn_l.state = BTN_STATE_IDLE; + } } if (key_pressed(KEY_R)) { + btn_r.frame = 0; + btn_r.state = BTN_STATE_PRESSED; + } else if (key_hold(KEY_R)) { + size_t n_frames = animation_states[btn_r.state]->n_frames; + if (btn_r.frame < n_frames - 1) { + btn_r.frame++; + } + } else { + // Finish the animation and reset idle state. + size_t n_frames = animation_states[btn_r.state]->n_frames; + if (btn_r.frame > 0 && btn_r.frame < n_frames - 1) { + btn_r.frame++; + } else { + btn_r.frame = 0; + btn_r.state = BTN_STATE_IDLE; + } } OBJ_ATTR_2(btn_b.id) = sprites[btn_b.id].tile_start + animation_states[btn_b.state]->tile_offsets[btn_b.frame]; OBJ_ATTR_2(btn_a.id) = sprites[btn_a.id].tile_start + animation_states[btn_a.state]->tile_offsets[btn_a.frame]; + OBJ_ATTR_2(btn_up.id) = sprites[btn_up.id].tile_start + animation_states[btn_up.state]->tile_offsets[btn_up.frame]; + OBJ_ATTR_2(btn_down.id) = sprites[btn_down.id].tile_start + animation_states[btn_down.state]->tile_offsets[btn_down.frame]; + OBJ_ATTR_2(btn_left.id) = sprites[btn_left.id].tile_start + animation_states[btn_left.state]->tile_offsets[btn_left.frame]; + OBJ_ATTR_2(btn_right.id) = sprites[btn_right.id].tile_start + animation_states[btn_right.state]->tile_offsets[btn_right.frame]; + OBJ_ATTR_2(btn_l.id) = sprites[btn_l.id].tile_start + animation_states[btn_l.state]->tile_offsets[btn_l.frame]; + OBJ_ATTR_2(btn_r.id) = sprites[btn_r.id].tile_start + animation_states[btn_r.state]->tile_offsets[btn_r.frame]; frame_counter++; }; -- cgit v1.2.1