summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-04-21 10:43:05 +0200
committerBad Diode <bd@badd10de.dev>2021-04-21 10:43:05 +0200
commit77d8c4453555cc4400853cc13312e7dbc51381c9 (patch)
tree22a265a6e9a3215642a9e92d3fb57078f29c0225
parent56f916a7ea2beed167216e23a156754d38957402 (diff)
downloadgba-experiments-77d8c4453555cc4400853cc13312e7dbc51381c9.tar.gz
gba-experiments-77d8c4453555cc4400853cc13312e7dbc51381c9.zip
Profile custom tile loader vs memcpy
Memcpy is much faster and should be preferred.
-rw-r--r--src/gba-buttons.c274
-rw-r--r--src/main.c44
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 @@
1u32 gba_buttons_tiles[224][8] = { 1u32 gba_btn_a_data[112][8] = {
2 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 2 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000},
4 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011},
3 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 5 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
4 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 6 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7 {0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010, 0x11000010, 0x01000010},
8 {0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010, 0x01000011, 0x01000010},
5 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 9 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
6 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 10 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010}, 11 {0x01000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000, 0x11000000, 0x00000000},
8 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001}, 12 {0x01000010, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100, 0x00000011, 0x00000000},
9 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 13 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11 {0x01000010, 0x01000010, 0x11000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000},
12 {0x01000010, 0x01000010, 0x01000001, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100},
13 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 14 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
14 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 15 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 16 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 17 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 18 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 19 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
21 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 20 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 21 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
23 {0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010},
24 {0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010},
25 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 22 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
23 {0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010, 0x11000010},
24 {0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010, 0x01000011},
26 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 25 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27 {0x11000010, 0x01000010, 0x01000010, 0x11000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000},
28 {0x01000001, 0x01000010, 0x01000010, 0x01000001, 0x00100000, 0x00110000, 0x00011100, 0x00001111},
29 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 26 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27 {0x01000010, 0x01000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000, 0x11000000, 0x00000000},
28 {0x01000010, 0x01000010, 0x00100000, 0x00110000, 0x00011100, 0x00001111, 0x00000011, 0x00000000},
30 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 29 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
31 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 30 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
34 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 31 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
35 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 32 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
36 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 33 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
37 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 34 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
35 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
38 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 36 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
39 {0x00000000, 0x10000000, 0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x11000100},
40 {0x00000000, 0x00000000, 0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001},
41 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 37 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
42 {0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
43 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110010},
44 {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x01001100},
45 {0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
46 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 38 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
47 {0x11000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 39 {0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010},
48 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 40 {0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010},
49 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 41 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
50 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000},
51 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000},
52 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
53 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010},
54 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 42 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
55 {0x00000000, 0x00000001, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, 43 {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110010, 0x11000000, 0x00000000},
56 {0x00000000, 0x10000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, 44 {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x01001100, 0x00000011, 0x00000000},
57 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 45 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
58 {0x00000000, 0x00000000, 0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
59 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000},
60 {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100},
61 {0x00000000, 0x00000000, 0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
62 {0x00000000, 0x10000000, 0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
63 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000},
64 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
65 {0x00000000, 0x00000001, 0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
66 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000},
67 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000},
68 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
69 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010},
70 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 46 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
71 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, 47 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
72 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001},
73 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
74 {0x00000000, 0x00000000, 0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
75 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000},
76 {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100},
77 {0x00000000, 0x00000000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
78 {0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000},
79 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000},
80 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
81 {0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000},
82 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000},
83 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000},
84 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 48 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
85 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000},
86 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 49 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
87 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, 50 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x10000000, 0x00000000},
88 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, 51 {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000001},
52 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
53 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001, 0x00000000},
89 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 54 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
90 {0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 55 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010},
91 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, 56 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010},
92 {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100},
93 {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
94 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000},
95 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000},
96 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
97 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000},
98 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 57 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
58 {0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
59 {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
60 {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
61 {0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001},
62 {0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
63 {0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000},
99 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 64 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
65 {0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
66 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000, 0x00000000, 0x00000000},
67 {0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
100 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 68 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
69 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010, 0x00000000, 0x00000000},
101 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 70 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
71 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010},
72 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010},
102 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 73 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
103 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100}, 74 {0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
104 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, 75 {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
76 {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
77 {0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
78 {0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
79 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000},
105 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 80 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
81 {0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
82 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000},
83 {0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
106 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 84 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
107 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000}, 85 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000},
108 {0x01000010, 0x01000001, 0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100},
109 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 86 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
87 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010, 0x01000010},
88 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010},
110 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 89 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
111 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 90 {0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
112 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 91 {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
92 {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
93 {0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
94 {0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
95 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000},
113 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 96 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
97 {0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
114 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 98 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
115 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 99 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
116 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 100 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
@@ -120,114 +104,126 @@ u32 gba_buttons_tiles[224][8] = {
120 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010}, 104 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000010},
121 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 105 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
122 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 106 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
123 {0x11000010, 0x01000010, 0x01000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000}, 107 {0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
124 {0x01000011, 0x01000010, 0x01000010, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100}, 108 {0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
109 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
110 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
111 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
112 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
113 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
114};
115
116u32 gba_btn_b_data[112][8] = {
117 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
118 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x11000000},
119 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011},
120 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
125 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 121 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
122 {0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010, 0x01000010, 0x01000010},
123 {0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001, 0x01000010, 0x01000010},
126 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 124 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
127 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
128 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
129 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 125 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
126 {0x11000010, 0x00000110, 0x00001100, 0x00110100, 0x11001000, 0x00110000, 0x11000000, 0x00000000},
127 {0x01000001, 0x01100000, 0x00110000, 0x00101100, 0x00010011, 0x00001100, 0x00000011, 0x00000000},
130 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 128 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
131 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 129 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
132 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 130 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
133 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 131 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
134 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 132 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
135 {0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100, 0x01000010},
136 {0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010},
137 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 133 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
138 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 134 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
139 {0x01000010, 0x11000010, 0x01000010, 0x01000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000},
140 {0x01000010, 0x01000011, 0x01000010, 0x01000010, 0x00100000, 0x00110000, 0x00011100, 0x00001111},
141 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 135 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
142 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 136 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
143 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
144 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
145 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 137 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
138 {0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010, 0x01000010},
139 {0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001, 0x01000010},
146 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 140 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
147 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 141 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
142 {0x01000010, 0x11000010, 0x00000100, 0x00001100, 0x00111000, 0x11110000, 0x11000000, 0x00000000},
143 {0x01000010, 0x01000001, 0x00100000, 0x00110000, 0x00011100, 0x00001111, 0x00000011, 0x00000000},
148 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 144 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
149 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 145 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
150 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 146 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
151 {0x00000000, 0x10000000, 0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x10000100},
152 {0x00000000, 0x00000000, 0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001},
153 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 147 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
154 {0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
155 {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110010},
156 {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x01001100},
157 {0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
158 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 148 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
159 {0x11000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
160 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
161 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 149 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
162 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000}, 150 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
163 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000}, 151 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
152 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
153 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
154 {0x00000000, 0x11000100, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010},
155 {0x00000000, 0x00100011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001},
164 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 156 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
165 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010},
166 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 157 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
167 {0x00000000, 0x00000001, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, 158 {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110010, 0x11000000, 0x00000000},
168 {0x00000000, 0x10000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, 159 {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x01001100, 0x00000011, 0x00000000},
169 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 160 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
170 {0x00000000, 0x00000000, 0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 161 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
171 {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, 162 {0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
172 {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100}, 163 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
173 {0x00000000, 0x00000000, 0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 164 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
174 {0x00000000, 0x10000000, 0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 165 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x10000000, 0x00000000},
175 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000}, 166 {0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000001},
176 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 167 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
177 {0x00000000, 0x00000001, 0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 168 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001, 0x00000000},
178 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000}, 169 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
170 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010},
171 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001},
172 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
173 {0x00111000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000},
174 {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
175 {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
176 {0x00011100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001},
177 {0x01000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
178 {0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000},
179 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
180 {0x00000010, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
181 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x01000000, 0x00000000, 0x00000000},
182 {0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
183 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
184 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010, 0x00000000, 0x00000000},
185 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
186 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010},
187 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001},
188 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
189 {0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
190 {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
191 {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
192 {0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
193 {0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
179 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000}, 194 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000, 0x00000000},
180 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 195 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
181 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000010}, 196 {0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
197 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000},
198 {0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
182 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 199 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
183 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, 200 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000},
184 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001},
185 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 201 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
186 {0x00000000, 0x00000000, 0x00001100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 202 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010},
187 {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000}, 203 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001},
188 {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100},
189 {0x00000000, 0x00000000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
190 {0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00010000, 0x00000000, 0x00000000, 0x00000000},
191 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000, 0x00000000},
192 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
193 {0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00001000, 0x00000000, 0x00000000, 0x00000000},
194 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000},
195 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000},
196 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 204 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
197 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000}, 205 {0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
206 {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
207 {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
208 {0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
209 {0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
210 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000},
198 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 211 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
199 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, 212 {0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
200 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001},
201 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 213 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
202 {0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
203 {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000},
204 {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100},
205 {0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
206 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000},
207 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000},
208 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
209 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000},
210 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 214 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
211 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 215 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
212 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 216 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
213 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 217 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
218 {0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x11000100, 0x01000010, 0x11000010},
219 {0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001, 0x01000010, 0x01000001},
214 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 220 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
215 {0x00000000, 0x00000000, 0x00000000, 0x11000000, 0x00110000, 0x00001000, 0x00000100, 0x10000100}, 221 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
216 {0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00001100, 0x00010000, 0x00100000, 0x00100001}, 222 {0x01000010, 0x01000010, 0x11000100, 0x00000100, 0x00001000, 0x00110000, 0x11000000, 0x00000000},
223 {0x01000010, 0x01000010, 0x00100001, 0x00100000, 0x00010000, 0x00001100, 0x00000011, 0x00000000},
217 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 224 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
218 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 225 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
219 {0x01000010, 0x01000010, 0x11000010, 0x01000010, 0x01000100, 0x00000100, 0x00001000, 0x00110000},
220 {0x01000010, 0x01000010, 0x01000011, 0x01000010, 0x00100010, 0x00100000, 0x00010000, 0x00001100},
221 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 226 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
222 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 227 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
223 {0x11000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
224 {0x00000011, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
225 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 228 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
226}; 229};
227
228// u16 palette[16] = {
229// 0x7fff, 0x0000, 0x7fff, 0x7fff,
230// 0x7fff, 0x7fff, 0x7fff, 0x7fff,
231// 0x7fff, 0x7fff, 0x7fff, 0x7fff,
232// 0x7fff, 0x7fff, 0x7fff, 0x7fff,
233// };
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 {
482 u32 pal_bank; 482 u32 pal_bank;
483} ButtonSprite; 483} ButtonSprite;
484 484
485void
486load_sprite_data(Tile *tile_ptr, u32 *sprite_data, size_t n_tiles) {
487 for (size_t i = 0; i < n_tiles; ++i) {
488 for (size_t j = 0; j < 8; ++j) {
489 tile_ptr->data[j] = *sprite_data++;
490 }
491 tile_ptr++;
492 }
493}
494
485int main(void) { 495int main(void) {
486 // Configure the display in mode 0 to show OBJs, where tile memory is 496 // Configure the display in mode 0 to show OBJs, where tile memory is
487 // sequential. 497 // sequential.
@@ -503,11 +513,33 @@ int main(void) {
503 Tile *tile_mem = &TILE_MEM[4][initial_tile]; 513 Tile *tile_mem = &TILE_MEM[4][initial_tile];
504 514
505 // Test copying the exported tiles. 515 // Test copying the exported tiles.
506 for (size_t i = 0; i < 224; ++i) { 516 profile_start();
507 for (size_t j = 0; j < 8; ++j) { 517 load_sprite_data(tile_mem, &gba_btn_b_data, 112);
508 (tile_mem + i)->data[j] = gba_buttons_tiles[i][j]; 518 tile_mem += 112;
509 } 519 load_sprite_data(tile_mem, &gba_btn_a_data, 112);
510 } 520 tile_mem += 112;
521 u32 perf_a_clk = profile_stop();
522 //
523 profile_start();
524 memcpy(tile_mem, &gba_btn_b_data, sizeof(gba_btn_b_data));
525 tile_mem += 112;
526 memcpy(tile_mem, &gba_btn_a_data, sizeof(gba_btn_a_data));
527 tile_mem += 112;
528 u32 perf_b_clk = profile_stop();
529
530 char perf_a[240] = {0};
531 char perf_b[240] = {0};
532 sprintf(perf_a, "A: %d", perf_a_clk);
533 sprintf(perf_b, "B: %d", perf_b_clk);
534
535 put_text(0, 0, COLOR_WHITE, perf_a);
536 put_text(0, 16, COLOR_WHITE, perf_b);
537
538 char msg[240] = {0};
539 sprintf(msg, "size[a]: %d", sizeof(gba_btn_a_data) / 8 / sizeof(u32));
540 put_text(0, 32, COLOR_RED, msg);
541 sprintf(msg, "size[b]: %d", sizeof(gba_btn_b_data) / 8 / sizeof(u32));
542 put_text(0, 32 + 16, COLOR_RED, msg);
511 543
512 // Initialize the A/B button sprites. 544 // Initialize the A/B button sprites.
513 int buttons_x = SCREEN_WIDTH - 64 - 10; 545 int buttons_x = SCREEN_WIDTH - 64 - 10;
@@ -528,7 +560,7 @@ int main(void) {
528 .y = buttons_y - 16, 560 .y = buttons_y - 16,
529 .frame = 0, 561 .frame = 0,
530 .n_frames = 6, 562 .n_frames = 6,
531 .tile_index = initial_tile + 16 * 7, 563 .tile_index = initial_tile + 112,
532 .pal_bank = 0, 564 .pal_bank = 0,
533 }; 565 };
534 OBJ_ATTR_0(1) = btn_a.y; 566 OBJ_ATTR_0(1) = btn_a.y;