From 77d8c4453555cc4400853cc13312e7dbc51381c9 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Wed, 21 Apr 2021 10:43:05 +0200 Subject: Profile custom tile loader vs memcpy Memcpy is much faster and should be preferred. --- src/gba-buttons.c | 274 +++++++++++++++++++++++++++--------------------------- src/main.c | 44 +++++++-- 2 files changed, 173 insertions(+), 145 deletions(-) diff --git a/src/gba-buttons.c b/src/gba-buttons.c index d9553a5..0f6218a 100644 --- a/src/gba-buttons.c +++ b/src/gba-buttons.c @@ -1,116 +1,100 @@ -u32 gba_buttons_tiles[224][8] = { +u32 gba_btn_a_data[112][8] = { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010, 0x11000010, 0x01000010}, + {0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010, 0x01000011, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, - {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100, 0x00000011, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000}, - {0x01000010, 0x01000010, 0x01000001, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {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, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010}, - {0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010, 0x11000010}, + {0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010, 0x01000011}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000010, 0x01000010, 0x01000010, 0x11000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000}, - {0x01000001, 0x01000010, 0x01000010, 0x01000001, 0x00100000, 0x00110000, 0x00011100, 0x00001111}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100000, 0x00110000, 0x00011100, 0x00001111, 0x00000011, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {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, 0x10000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x10000000, 0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110010}, - {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x01001100}, - {0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010}, + {0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010}, {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000001, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, - {0x00000000, 0x10000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110010, 0x11000000, 0x00000000}, + {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x01001100, 0x00000011, 0x00000000}, {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x10000000, 0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000001, 0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 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, 0x00000100, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x10000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001}, + {0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 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, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, @@ -120,114 +104,126 @@ u32 gba_buttons_tiles[224][8] = { {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000010, 0x01000010, 0x01000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000}, - {0x01000011, 0x01000010, 0x01000010, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100}, + {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 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}, +}; + +u32 gba_btn_b_data[112][8] = { + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010, 0x01000010, 0x01000010}, + {0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001, 0x01000010, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000001, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100, 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, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010}, - {0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000}, - {0x01000010, 0x01000011, 0x01000010, 0x01000010, 0x00100000, 0x00110000, 0x00011100, 0x00001111}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010, 0x01000010}, + {0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001, 0x01000010}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x11000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000001, 0x00100000, 0x00110000, 0x00011100, 0x00001111, 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, 0x10000000, 0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110010}, - {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x01001100}, - {0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 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, 0x10000000, 0x10000000, 0x10000000}, + {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, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, + {0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010}, {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000001, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, - {0x00000000, 0x10000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110010, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x01001100, 0x00000011, 0x00000000}, {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x10000000, 0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000001, 0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000}, + {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, 0x01000000, 0x10000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000}, + {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001}, + {0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010}, + {0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000}, + {0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, + {0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100}, - {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 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, 0x00000000, 0x00000000}, + {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, + {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, - {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, + {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, + {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000}, + {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, - {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, - {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, }; - -// u16 palette[16] = { -// 0x7fff, 0x0000, 0x7fff, 0x7fff, -// 0x7fff, 0x7fff, 0x7fff, 0x7fff, -// 0x7fff, 0x7fff, 0x7fff, 0x7fff, -// 0x7fff, 0x7fff, 0x7fff, 0x7fff, -// }; diff --git a/src/main.c b/src/main.c index d78dbe0..d7e54d8 100644 --- a/src/main.c +++ b/src/main.c @@ -482,6 +482,16 @@ typedef struct ButtonSprite { u32 pal_bank; } ButtonSprite; +void +load_sprite_data(Tile *tile_ptr, u32 *sprite_data, size_t n_tiles) { + for (size_t i = 0; i < n_tiles; ++i) { + for (size_t j = 0; j < 8; ++j) { + tile_ptr->data[j] = *sprite_data++; + } + tile_ptr++; + } +} + int main(void) { // Configure the display in mode 0 to show OBJs, where tile memory is // sequential. @@ -503,11 +513,33 @@ int main(void) { Tile *tile_mem = &TILE_MEM[4][initial_tile]; // Test copying the exported tiles. - for (size_t i = 0; i < 224; ++i) { - for (size_t j = 0; j < 8; ++j) { - (tile_mem + i)->data[j] = gba_buttons_tiles[i][j]; - } - } + profile_start(); + load_sprite_data(tile_mem, &gba_btn_b_data, 112); + tile_mem += 112; + load_sprite_data(tile_mem, &gba_btn_a_data, 112); + tile_mem += 112; + u32 perf_a_clk = profile_stop(); + // + profile_start(); + memcpy(tile_mem, &gba_btn_b_data, sizeof(gba_btn_b_data)); + tile_mem += 112; + memcpy(tile_mem, &gba_btn_a_data, sizeof(gba_btn_a_data)); + tile_mem += 112; + u32 perf_b_clk = profile_stop(); + + char perf_a[240] = {0}; + char perf_b[240] = {0}; + sprintf(perf_a, "A: %d", perf_a_clk); + sprintf(perf_b, "B: %d", perf_b_clk); + + put_text(0, 0, COLOR_WHITE, perf_a); + put_text(0, 16, COLOR_WHITE, perf_b); + + char msg[240] = {0}; + sprintf(msg, "size[a]: %d", sizeof(gba_btn_a_data) / 8 / sizeof(u32)); + put_text(0, 32, COLOR_RED, msg); + sprintf(msg, "size[b]: %d", sizeof(gba_btn_b_data) / 8 / sizeof(u32)); + put_text(0, 32 + 16, COLOR_RED, msg); // Initialize the A/B button sprites. int buttons_x = SCREEN_WIDTH - 64 - 10; @@ -528,7 +560,7 @@ int main(void) { .y = buttons_y - 16, .frame = 0, .n_frames = 6, - .tile_index = initial_tile + 16 * 7, + .tile_index = initial_tile + 112, .pal_bank = 0, }; OBJ_ATTR_0(1) = btn_a.y; -- cgit v1.2.1