diff options
author | Bad Diode <bd@badd10de.dev> | 2021-04-23 23:05:06 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-04-23 23:05:06 +0200 |
commit | f652b2a9c76194ee285e001e6b04a7dc585e8993 (patch) | |
tree | cd76eb7c838d57fb5fc54fc89861385a8c67f052 /src/gba-buttons.c | |
parent | 74d6b52636ecdd560995f22dff5b29a59fc62d5d (diff) | |
download | gba-experiments-f652b2a9c76194ee285e001e6b04a7dc585e8993.tar.gz gba-experiments-f652b2a9c76194ee285e001e6b04a7dc585e8993.zip |
First steps to replace the input overlay
VRAM and rom consumption was too big with the previous input overlay.
Trying to separate button sprites into multiple states. Sprites can now
be composed of multiple objects.
Diffstat (limited to 'src/gba-buttons.c')
-rw-r--r-- | src/gba-buttons.c | 616 |
1 files changed, 102 insertions, 514 deletions
diff --git a/src/gba-buttons.c b/src/gba-buttons.c index 7d40031..cbf6f8b 100644 --- a/src/gba-buttons.c +++ b/src/gba-buttons.c | |||
@@ -1,536 +1,66 @@ | |||
1 | // 1bpp packed | 1 | // 1bpp packed |
2 | u32 gba_btn_a_data[] = { | 2 | u32 gba_btn_a_data[] = { |
3 | 0x00000000, 0x00000000, 0x00000000, 0x000000c0, | 3 | 0xc0300804, 0x844242c2, 0x030c1020, 0x21424243, |
4 | 0x00000000, 0x00000003, 0x00000000, 0x00000000, | 4 | 0x42440408, 0x30c00000, 0x42222010, 0x0c030000, |
5 | 0x00000000, 0x00000000, 0x30080484, 0x4242c242, | ||
6 | 0x0c102021, 0x42424342, 0x00000000, 0x00000000, | ||
7 | 0x00000000, 0x00000000, 0x42060c34, 0xc830c000, | ||
8 | 0x4260302c, 0x130c0300, 0x00000000, 0x00000000, | ||
9 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
10 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
11 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
12 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
13 | 0x00000000, 0x00000000, 0xc0300804, 0x844242c2, | ||
14 | 0x030c1020, 0x21424243, 0x00000000, 0x00000000, | ||
15 | 0x00000000, 0x00000000, 0x4242040c, 0x38f0c000, | ||
16 | 0x42422030, 0x1c0f0300, 0x00000000, 0x00000000, | ||
17 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
18 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
19 | 0x00000000, 0x00000000, 0x00000000, 0x00000080, | ||
20 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
21 | 0x00000000, 0x00000000, 0x00c43008, 0x04844242, | ||
22 | 0x00230c10, 0x20214242, 0x00000000, 0x00000000, | ||
23 | 0x80000000, 0x00000000, 0xc2424404, 0x0832c000, | ||
24 | 0x43422220, 0x104c0300, 0x01000000, 0x00000000, | ||
25 | 0x00000000, 0x00000000, 0x80000000, 0x00000000, | ||
26 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
27 | 0x00000000, 0x00408000, 0x00000080, 0x80800001, | ||
28 | 0x00000000, 0x00000080, 0x00000000, 0x00020100, | ||
29 | 0x00000000, 0x00000000, 0x00c03008, 0x04844242, | ||
30 | 0x00030c10, 0x20214242, 0x00000000, 0x00000000, | ||
31 | 0x38000000, 0x00000080, 0xc2424404, 0x0830c000, | ||
32 | 0x43422220, 0x100c0300, 0x1c000000, 0x00000001, | ||
33 | 0x40200000, 0x00000000, 0x00008080, 0x80000000, | ||
34 | 0x00000000, 0x00000000, 0x02040000, 0x00000000, | ||
35 | 0x00000000, 0x20400000, 0x00008080, 0x00000000, | ||
36 | 0x00000000, 0x00000000, 0x00000000, 0x04020000, | ||
37 | 0x00000000, 0x00000000, 0x00c03008, 0x04844242, | ||
38 | 0x00030c10, 0x20214242, 0x00000000, 0x00000000, | ||
39 | 0x0c000000, 0x00000000, 0xc2424404, 0x0830c000, | ||
40 | 0x43422220, 0x100c0300, 0x30000000, 0x00000000, | ||
41 | 0x00201000, 0x00000000, 0x00000080, 0x80000000, | ||
42 | 0x00000000, 0x00000000, 0x00040800, 0x00000000, | ||
43 | 0x00000000, 0x20000000, 0x00008000, 0x00000000, | ||
44 | 0x00000000, 0x00000000, 0x00000000, 0x04000000, | ||
45 | 0x00000000, 0x00000000, 0x00c03008, 0x04844242, | ||
46 | 0x00030c10, 0x20214242, 0x00000000, 0x00000000, | ||
47 | 0x04000000, 0x00000000, 0xc2424404, 0x0830c000, | ||
48 | 0x43422220, 0x100c0300, 0x20000000, 0x00000000, | ||
49 | 0x00001000, 0x00000000, 0x00000000, 0x80000000, | ||
50 | 0x00000000, 0x00000000, 0x00000800, 0x00000000, | ||
51 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
52 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
53 | 0x00000000, 0x00000000, 0x00c03008, 0x04844242, | ||
54 | 0x00030c10, 0x20214242, 0x00000000, 0x00000000, | ||
55 | 0x00000000, 0x00000000, 0xc2424404, 0x0830c000, | ||
56 | 0x43422220, 0x100c0300, 0x00000000, 0x00000000, | ||
57 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
58 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
59 | }; | 5 | }; |
60 | 6 | ||
61 | u32 gba_btn_b_data[] = { | 7 | u32 gba_btn_b_data[] = { |
62 | 0x00000000, 0x00000000, 0x00000000, 0x000000c0, | 8 | 0xc0300804, 0xc442c242, 0x030c1020, 0x21424142, |
63 | 0x00000000, 0x00000003, 0x00000000, 0x00000000, | 9 | 0x42c40408, 0x30c00000, 0x42212010, 0x0c030000, |
64 | 0x00000000, 0x00000000, 0x300804c4, 0x42c24242, | ||
65 | 0x0c102021, 0x42414242, 0x00000000, 0x00000000, | ||
66 | 0x00000000, 0x00000000, 0xc2060c34, 0xc830c000, | ||
67 | 0x4160302c, 0x130c0300, 0x00000000, 0x00000000, | ||
68 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
69 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
70 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
71 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
72 | 0x00000000, 0x00000000, 0xc0300804, 0xc442c242, | ||
73 | 0x030c1020, 0x21424142, 0x00000000, 0x00000000, | ||
74 | 0x00000000, 0x00000000, 0x42c2040c, 0x38f0c000, | ||
75 | 0x42412030, 0x1c0f0300, 0x00000000, 0x00000000, | ||
76 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
77 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
78 | 0x00000000, 0x00000000, 0x00000000, 0x00000080, | ||
79 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
80 | 0x00000000, 0x00000000, 0x00c43008, 0x04c442c2, | ||
81 | 0x00230c10, 0x20214241, 0x00000000, 0x00000000, | ||
82 | 0x80000000, 0x00000000, 0x4242c404, 0x0832c000, | ||
83 | 0x42422120, 0x104c0300, 0x01000000, 0x00000000, | ||
84 | 0x00000000, 0x00000000, 0x80000000, 0x00000000, | ||
85 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
86 | 0x00000000, 0x00408000, 0x00000080, 0x80800001, | ||
87 | 0x00000000, 0x00000080, 0x00000000, 0x00020100, | ||
88 | 0x00000000, 0x00000000, 0x00c03008, 0x04c442c2, | ||
89 | 0x00030c10, 0x20214241, 0x00000000, 0x00000000, | ||
90 | 0x38000000, 0x00000080, 0x4242c404, 0x0830c000, | ||
91 | 0x42422120, 0x100c0300, 0x1c000000, 0x00000001, | ||
92 | 0x40200000, 0x00000000, 0x00008080, 0x80000000, | ||
93 | 0x00000000, 0x00000000, 0x02040000, 0x00000000, | ||
94 | 0x00000000, 0x20400000, 0x00808000, 0x00000000, | ||
95 | 0x00000000, 0x00000000, 0x00000000, 0x04020000, | ||
96 | 0x00000000, 0x00000000, 0x00c03008, 0x04c442c2, | ||
97 | 0x00030c10, 0x20214241, 0x00000000, 0x00000000, | ||
98 | 0x0c000000, 0x00000000, 0x4242c404, 0x0830c000, | ||
99 | 0x42422120, 0x100c0300, 0x30000000, 0x00000000, | ||
100 | 0x00201000, 0x00000000, 0x00000000, 0x80800000, | ||
101 | 0x00000000, 0x00000000, 0x00040800, 0x00000000, | ||
102 | 0x00000000, 0x20000000, 0x00800000, 0x00000000, | ||
103 | 0x00000000, 0x00000000, 0x00000000, 0x04000000, | ||
104 | 0x00000000, 0x00000000, 0x00c03008, 0x04c442c2, | ||
105 | 0x00030c10, 0x20214241, 0x00000000, 0x00000000, | ||
106 | 0x04000000, 0x00000000, 0x4242c404, 0x0830c000, | ||
107 | 0x42422120, 0x100c0300, 0x20000000, 0x00000000, | ||
108 | 0x00001000, 0x00000000, 0x00000000, 0x00800000, | ||
109 | 0x00000000, 0x00000000, 0x00000800, 0x00000000, | ||
110 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
111 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
112 | 0x00000000, 0x00000000, 0x00c03008, 0x04c442c2, | ||
113 | 0x00030c10, 0x20214241, 0x00000000, 0x00000000, | ||
114 | 0x00000000, 0x00000000, 0x4242c404, 0x0830c000, | ||
115 | 0x42422120, 0x100c0300, 0x00000000, 0x00000000, | ||
116 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
117 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
118 | }; | 10 | }; |
119 | 11 | ||
120 | u32 gba_btn_up_data[] = { | 12 | u32 gba_btn_updown_data[] = { |
121 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 13 | 0x00f01010, 0x90d01010, 0x001f1011, 0x13171111, |
122 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 14 | 0x101020c0, 0x00000000, 0x11110807, 0x00000000, |
123 | 0x00000000, 0x00000000, 0xf80888c8, 0xe8888888, | ||
124 | 0x0f080809, 0x0b080808, 0x00000000, 0x00000000, | ||
125 | 0x00000000, 0x00000000, 0x8818e810, 0xe0000000, | ||
126 | 0x080c0b04, 0x03000000, 0x00000000, 0x00000000, | ||
127 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
128 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
129 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
130 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
131 | 0x00000000, 0x00000000, 0x00f80888, 0xc8e88888, | ||
132 | 0x000f0808, 0x090b0808, 0x00000000, 0x00000000, | ||
133 | 0x00000000, 0x00000000, 0x888818f0, 0xe0000000, | ||
134 | 0x08080c07, 0x03000000, 0x00000000, 0x00000000, | ||
135 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
136 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
137 | 0x00000000, 0x00000000, 0x00000000, 0x00000080, | ||
138 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
139 | 0x00000000, 0x00000000, 0x0002f808, 0x88c8e888, | ||
140 | 0x00200f08, 0x08090b08, 0x00000000, 0x00000000, | ||
141 | 0x00000000, 0x00000000, 0x88888810, 0xe0000000, | ||
142 | 0x08080804, 0x03000000, 0x00000000, 0x00000000, | ||
143 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
144 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
145 | 0x00000000, 0x00000080, 0x00000000, 0x00808000, | ||
146 | 0x00000000, 0x00000080, 0x00000000, 0x00000000, | ||
147 | 0x00000000, 0x00000000, 0x0100f808, 0x88c8e888, | ||
148 | 0x40000f08, 0x08090b08, 0x00000000, 0x00000000, | ||
149 | 0x00000000, 0x00000000, 0x88888810, 0xe0000000, | ||
150 | 0x08080804, 0x03000000, 0x00000000, 0x00000000, | ||
151 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
152 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
153 | 0x00000000, 0x00004080, 0x00000000, 0x80800000, | ||
154 | 0x00000000, 0x00000080, 0x00000000, 0x00000100, | ||
155 | 0x00000000, 0x00000000, 0x0000f808, 0x88c8e888, | ||
156 | 0x00000f08, 0x08090b08, 0x00000000, 0x00000000, | ||
157 | 0x00000000, 0x00000000, 0x88888810, 0xe0000000, | ||
158 | 0x08080804, 0x03000000, 0x00000000, 0x00000000, | ||
159 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
160 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
161 | 0x00000000, 0x00200000, 0x00000080, 0x00000000, | ||
162 | 0x00000000, 0x00000000, 0x00000000, 0x00020000, | ||
163 | 0x00000000, 0x00000000, 0x0000f808, 0x88c8e888, | ||
164 | 0x00000f08, 0x08090b08, 0x00000000, 0x00000000, | ||
165 | 0x00000000, 0x00000000, 0x88888810, 0xe0000000, | ||
166 | 0x08080804, 0x03000000, 0x00000000, 0x00000000, | ||
167 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
168 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
169 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
170 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
171 | 0x00000000, 0x00000000, 0x0000f808, 0x88c8e888, | ||
172 | 0x00000f08, 0x08090b08, 0x00000000, 0x00000000, | ||
173 | 0x00000000, 0x00000000, 0x88888810, 0xe0000000, | ||
174 | 0x08080804, 0x03000000, 0x00000000, 0x00000000, | ||
175 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
176 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
177 | }; | 15 | }; |
178 | 16 | ||
179 | u32 gba_btn_down_data[] = { | 17 | u32 gba_btn_leftright_data[] = { |
180 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 18 | 0x000000f8, 0x0888c8e8, 0x0000000f, 0x1020202f, |
181 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 19 | 0xc88808f8, 0x00000000, 0x2020100f, 0x00000000, |
182 | 0x00000000, 0x00000000, 0x00e01088, 0x888888e8, | ||
183 | 0x00030408, 0x0808080b, 0x00000000, 0x00000000, | ||
184 | 0x00000000, 0x00000000, 0xc88808f8, 0x08f80000, | ||
185 | 0x0908080f, 0x080f0000, 0x00000000, 0x00000000, | ||
186 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
187 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
188 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
189 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
190 | 0x00000000, 0x00000000, 0x0000e010, 0x88888888, | ||
191 | 0x00000304, 0x08080808, 0x00000000, 0x00000000, | ||
192 | 0x00000000, 0x00000000, 0xe8c88808, 0xf8f80000, | ||
193 | 0x0b090808, 0x0f0f0000, 0x00000000, 0x00000000, | ||
194 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
195 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
196 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
197 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
198 | 0x00000000, 0x00000000, 0x000000e0, 0x10888888, | ||
199 | 0x00000003, 0x04080808, 0x00000000, 0x00000000, | ||
200 | 0x00000000, 0x00000000, 0x88e8c888, 0x08f80200, | ||
201 | 0x080b0908, 0x080f2000, 0x00000000, 0x00000000, | ||
202 | 0x00000000, 0x00000000, 0x80000000, 0x00000000, | ||
203 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
204 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
205 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
206 | 0x00000000, 0x00000000, 0x000000e0, 0x10888888, | ||
207 | 0x00000003, 0x04080808, 0x00000000, 0x00000000, | ||
208 | 0x00000000, 0x00000000, 0x88e8c888, 0x08f80001, | ||
209 | 0x080b0908, 0x080f0040, 0x00000000, 0x00000000, | ||
210 | 0x80000000, 0x00000000, 0x00808000, 0x00000000, | ||
211 | 0x80000000, 0x00000000, 0x00000000, 0x00000000, | ||
212 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
213 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
214 | 0x00000000, 0x00000000, 0x000000e0, 0x10888888, | ||
215 | 0x00000003, 0x04080808, 0x00000000, 0x00000000, | ||
216 | 0x00000000, 0x00000000, 0x88e8c888, 0x08f80000, | ||
217 | 0x080b0908, 0x080f0000, 0x00000000, 0x00000000, | ||
218 | 0x80400000, 0x00000000, 0x00008080, 0x00000000, | ||
219 | 0x80000000, 0x00000000, 0x00010000, 0x00000000, | ||
220 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
221 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
222 | 0x00000000, 0x00000000, 0x000000e0, 0x10888888, | ||
223 | 0x00000003, 0x04080808, 0x00000000, 0x00000000, | ||
224 | 0x00000000, 0x00000000, 0x88e8c888, 0x08f80000, | ||
225 | 0x080b0908, 0x080f0000, 0x00000000, 0x00000000, | ||
226 | 0x00002000, 0x00000000, 0x00000000, 0x80000000, | ||
227 | 0x00000000, 0x00000000, 0x00000200, 0x00000000, | ||
228 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
229 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
230 | 0x00000000, 0x00000000, 0x000000e0, 0x10888888, | ||
231 | 0x00000003, 0x04080808, 0x00000000, 0x00000000, | ||
232 | 0x00000000, 0x00000000, 0x88e8c888, 0x08f80000, | ||
233 | 0x080b0908, 0x080f0000, 0x00000000, 0x00000000, | ||
234 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
235 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
236 | }; | 20 | }; |
237 | 21 | ||
238 | u32 gba_btn_left_data[] = { | 22 | u32 gba_btn_l_data[] = { |
239 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 23 | 0xfc028181, 0x818101ff, 0xff808080, 0x808380ff, |
240 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
241 | 0x00000000, 0x00000000, 0x0000f808, 0x88c8e8c8, | ||
242 | 0x00000f10, 0x20202f20, 0x00000000, 0x00000000, | ||
243 | 0x00000000, 0x00000000, 0x8808f808, 0xf8000000, | ||
244 | 0x20302f10, 0x0f000000, 0x00000000, 0x00000000, | ||
245 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
246 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
247 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
248 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
249 | 0x00000000, 0x00000000, 0x000000f8, 0x0888c8e8, | ||
250 | 0x0000000f, 0x1020202f, 0x00000000, 0x00000000, | ||
251 | 0x00000000, 0x00000000, 0xc88808f8, 0xf8000000, | ||
252 | 0x2020301f, 0x0f000000, 0x00000000, 0x00000000, | ||
253 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
254 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
255 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
256 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
257 | 0x00000000, 0x00000000, 0x00000400, 0xf80888c8, | ||
258 | 0x00000000, 0x0f102020, 0x00000000, 0x00000000, | ||
259 | 0x00000000, 0x00000000, 0xe9c88808, 0xf8000400, | ||
260 | 0x2f202010, 0x0f000000, 0x00000000, 0x00000000, | ||
261 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
262 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
263 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
264 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
265 | 0x00000000, 0x00000000, 0x01020000, 0xf80888c8, | ||
266 | 0x00000000, 0x0f102020, 0x00000000, 0x00000000, | ||
267 | 0xc0000000, 0x00000000, 0xe8c88808, 0xf8000002, | ||
268 | 0x2f202010, 0x0f000000, 0x00000000, 0x00000000, | ||
269 | 0x00000000, 0x00000000, 0x01000000, 0x00000000, | ||
270 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
271 | 0x00000000, 0x00000080, 0x00000000, 0x00000000, | ||
272 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
273 | 0x00000000, 0x00000000, 0x01000000, 0xf80888c8, | ||
274 | 0x00000000, 0x0f102020, 0x00000000, 0x00000000, | ||
275 | 0x60000000, 0x00000000, 0xe8c88808, 0xf8000000, | ||
276 | 0x2f202010, 0x0f000000, 0x00000000, 0x00000000, | ||
277 | 0x00800000, 0x00000000, 0x01000000, 0x00000000, | ||
278 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
279 | 0x00000000, 0x00004000, 0x00000000, 0x00000000, | ||
280 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
281 | 0x00000000, 0x00000000, 0x00000000, 0xf80888c8, | ||
282 | 0x00000000, 0x0f102020, 0x00000000, 0x00000000, | ||
283 | 0x10000000, 0x00000000, 0xe8c88808, 0xf8000000, | ||
284 | 0x2f202010, 0x0f000000, 0x00000000, 0x00000000, | ||
285 | 0x00004000, 0x00000000, 0x00000000, 0x00000000, | ||
286 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
287 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
288 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
289 | 0x00000000, 0x00000000, 0x00000000, 0xf80888c8, | ||
290 | 0x00000000, 0x0f102020, 0x00000000, 0x00000000, | ||
291 | 0x00000000, 0x00000000, 0xe8c88808, 0xf8000000, | ||
292 | 0x2f202010, 0x0f000000, 0x00000000, 0x00000000, | ||
293 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
294 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
295 | }; | 24 | }; |
296 | 25 | ||
297 | u32 gba_btn_right_data[] = { | 26 | u32 gba_btn_r_data[] = { |
298 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 27 | 0xff018181, 0x818101ff, 0x3f408182, 0x818280ff, |
299 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
300 | 0x00000000, 0x00000000, 0x0000f008, 0x0404f404, | ||
301 | 0x00001f10, 0x11131713, 0x00000000, 0x00000000, | ||
302 | 0x00000000, 0x00000000, 0x040cf408, 0xf0000000, | ||
303 | 0x11101f10, 0x1f000000, 0x00000000, 0x00000000, | ||
304 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
305 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
306 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
307 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
308 | 0x00000000, 0x00000000, 0x000000f0, 0x080404f4, | ||
309 | 0x0000001f, 0x10111317, 0x00000000, 0x00000000, | ||
310 | 0x00000000, 0x00000000, 0x04040cf8, 0xf0000000, | ||
311 | 0x1311101f, 0x1f000000, 0x00000000, 0x00000000, | ||
312 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
313 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
314 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
315 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
316 | 0x00000000, 0x00000000, 0x00000000, 0xf0080404, | ||
317 | 0x00002000, 0x1f101113, 0x00000000, 0x00000000, | ||
318 | 0x00000000, 0x00000000, 0xf4040408, 0xf0000000, | ||
319 | 0x97131110, 0x1f002000, 0x00000000, 0x00000000, | ||
320 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
321 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
322 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
323 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
324 | 0x00000000, 0x00000000, 0x00000000, 0xf0080404, | ||
325 | 0x80400000, 0x1f101113, 0x00000000, 0x00000000, | ||
326 | 0x00000000, 0x00000000, 0xf4040408, 0xf0000000, | ||
327 | 0x17131110, 0x1f000040, 0x03000000, 0x00000000, | ||
328 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
329 | 0x80000000, 0x00000000, 0x00000000, 0x00000000, | ||
330 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
331 | 0x00000000, 0x00000000, 0x00000000, 0x00000001, | ||
332 | 0x00000000, 0x00000000, 0x00000000, 0xf0080404, | ||
333 | 0x80000000, 0x1f101113, 0x00000000, 0x00000000, | ||
334 | 0x00000000, 0x00000000, 0xf4040408, 0xf0000000, | ||
335 | 0x17131110, 0x1f000000, 0x06000000, 0x00000000, | ||
336 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
337 | 0x80000000, 0x00000000, 0x00010000, 0x00000000, | ||
338 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
339 | 0x00000000, 0x00000000, 0x00000000, 0x00000200, | ||
340 | 0x00000000, 0x00000000, 0x00000000, 0xf0080404, | ||
341 | 0x00000000, 0x1f101113, 0x00000000, 0x00000000, | ||
342 | 0x00000000, 0x00000000, 0xf4040408, 0xf0000000, | ||
343 | 0x17131110, 0x1f000000, 0x08000000, 0x00000000, | ||
344 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
345 | 0x00000000, 0x00000000, 0x00000200, 0x00000000, | ||
346 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
347 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
348 | 0x00000000, 0x00000000, 0x00000000, 0xf0080404, | ||
349 | 0x00000000, 0x1f101113, 0x00000000, 0x00000000, | ||
350 | 0x00000000, 0x00000000, 0xf4040408, 0xf0000000, | ||
351 | 0x17131110, 0x1f000000, 0x00000000, 0x00000000, | ||
352 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
353 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
354 | }; | 28 | }; |
355 | 29 | ||
356 | u32 gba_btn_l_data[] = { | 30 | u32 gba_btn_ab_shadow_data[] = { |
357 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 31 | 0x00020204, 0x040830c0, 0x00404020, 0x20100c03, |
358 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
359 | 0x00000000, 0x00000000, 0x0000fc02, 0x01010101, | ||
360 | 0x0000ff00, 0x01010107, 0x00000302, 0x02020202, | ||
361 | 0x00000000, 0x00000000, 0x01ff01ff, 0x00000000, | ||
362 | 0x00ff00ff, 0x00000000, 0x02030203, 0x00000000, | ||
363 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
364 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
365 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
366 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
367 | 0x00000000, 0x00000000, 0x000000fc, 0x02010101, | ||
368 | 0x000000ff, 0x00010101, 0x00000003, 0x02020202, | ||
369 | 0x00000000, 0x00000000, 0x0101ffff, 0x00000000, | ||
370 | 0x0700ffff, 0x00000000, 0x02020303, 0x00000000, | ||
371 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
372 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
373 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
374 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
375 | 0x00000080, 0x00000040, 0x00001000, 0xfc020101, | ||
376 | 0x00000000, 0xff000101, 0x00000000, 0x03020202, | ||
377 | 0x00000000, 0x00000000, 0x010101ff, 0x00000000, | ||
378 | 0x010700ff, 0x00000000, 0x02020203, 0x00000000, | ||
379 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
380 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
381 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
382 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
383 | 0x00204000, 0x00000030, 0x10100000, 0xfc020101, | ||
384 | 0x00000000, 0xff000101, 0x00000000, 0x03020202, | ||
385 | 0x00000000, 0x00000000, 0x010101ff, 0x00000000, | ||
386 | 0x010700ff, 0x00000000, 0x02020203, 0x00000000, | ||
387 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
388 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
389 | 0x00000000, 0x00000000, 0x00000000, 0x00000010, | ||
390 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
391 | 0x10200000, 0x00000018, 0x10000000, 0xfc020101, | ||
392 | 0x00000000, 0xff000101, 0x00000000, 0x03020202, | ||
393 | 0x00000000, 0x00000000, 0x010101ff, 0x00000000, | ||
394 | 0x010700ff, 0x00000000, 0x02020203, 0x00000000, | ||
395 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
396 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
397 | 0x00000000, 0x00000000, 0x00000000, 0x00000010, | ||
398 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
399 | 0x10000000, 0x00000004, 0x00000000, 0xfc020101, | ||
400 | 0x00000000, 0xff000101, 0x00000000, 0x03020202, | ||
401 | 0x00000000, 0x00000000, 0x010101ff, 0x00000000, | ||
402 | 0x010700ff, 0x00000000, 0x02020203, 0x00000000, | ||
403 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
404 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
405 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
406 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
407 | 0x00000000, 0x00000000, 0x00000000, 0xfc020101, | ||
408 | 0x00000000, 0xff000101, 0x00000000, 0x03020202, | ||
409 | 0x00000000, 0x00000000, 0x010101ff, 0x00000000, | ||
410 | 0x010700ff, 0x00000000, 0x02020203, 0x00000000, | ||
411 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
412 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
413 | }; | 32 | }; |
414 | 33 | ||
415 | u32 gba_btn_r_data[] = { | 34 | u32 gba_btn_up_shadow_data[] = { |
416 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | 35 | 0x00000010, 0x1020c000, 0x00000010, 0x10080700, |
417 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
418 | 0x0000c040, 0x40404040, 0x0000ff00, 0x60a060a0, | ||
419 | 0x00003f40, 0x80808080, 0x00000000, 0x00000000, | ||
420 | 0x40c040c0, 0x00000000, 0x00ff00ff, 0x00000000, | ||
421 | 0x80ff80ff, 0x00000000, 0x00000000, 0x00000000, | ||
422 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
423 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
424 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
425 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
426 | 0x000000c0, 0x40404040, 0x000000ff, 0x0060a060, | ||
427 | 0x0000003f, 0x40808080, 0x00000000, 0x00000000, | ||
428 | 0x4040c0c0, 0x00000000, 0xa000ffff, 0x00000000, | ||
429 | 0x8080ffff, 0x00000000, 0x00000000, 0x00000000, | ||
430 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
431 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
432 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
433 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
434 | 0x00000000, 0xc0404040, 0x00000000, 0xff0060a0, | ||
435 | 0x00000800, 0x3f408080, 0x00000001, 0x00000002, | ||
436 | 0x404040c0, 0x00000000, 0x60a000ff, 0x00000000, | ||
437 | 0x808080ff, 0x00000000, 0x00000000, 0x00000000, | ||
438 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
439 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
440 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
441 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
442 | 0x00000000, 0xc0404040, 0x00000000, 0xff0060a0, | ||
443 | 0x08080000, 0x3f408080, 0x00040200, 0x0000000c, | ||
444 | 0x404040c0, 0x00000000, 0x60a000ff, 0x00000000, | ||
445 | 0x808080ff, 0x00000000, 0x00000000, 0x00000000, | ||
446 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
447 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
448 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
449 | 0x00000000, 0x00000008, 0x00000000, 0x00000000, | ||
450 | 0x00000000, 0xc0404040, 0x00000000, 0xff0060a0, | ||
451 | 0x08000000, 0x3f408080, 0x08040000, 0x00000018, | ||
452 | 0x404040c0, 0x00000000, 0x60a000ff, 0x00000000, | ||
453 | 0x808080ff, 0x00000000, 0x00000000, 0x00000000, | ||
454 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
455 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
456 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
457 | 0x00000000, 0x00000008, 0x00000000, 0x00000000, | ||
458 | 0x00000000, 0xc0404040, 0x00000000, 0xff0060a0, | ||
459 | 0x00000000, 0x3f408080, 0x08000000, 0x00000020, | ||
460 | 0x404040c0, 0x00000000, 0x60a000ff, 0x00000000, | ||
461 | 0x808080ff, 0x00000000, 0x00000000, 0x00000000, | ||
462 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
463 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
464 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
465 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
466 | 0x00000000, 0xc0404040, 0x00000000, 0xff0060a0, | ||
467 | 0x00000000, 0x3f408080, 0x00000000, 0x00000000, | ||
468 | 0x404040c0, 0x00000000, 0x60a000ff, 0x00000000, | ||
469 | 0x808080ff, 0x00000000, 0x00000000, 0x00000000, | ||
470 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
471 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
472 | }; | 36 | }; |
473 | 37 | ||
474 | u32 gba_btn_start_data[] = { | 38 | u32 gba_btn_down_shadow_data[] = { |
475 | 0x00000000, 0x00000000, 0x00000000, 0x0000f008, | 39 | 0x00000000, 0x10f00000, 0x00000000, 0x101f0000, |
476 | 0x00000000, 0x00001f20, 0x00000000, 0x00000000, | ||
477 | 0x00000080, 0x80008000, 0xf8f000bb, 0x91929300, | ||
478 | 0x3f1f009b, 0x2a1b2a00, 0x00000003, 0x01010100, | ||
479 | 0x00000000, 0x00000000, 0x00000000, 0x000000f0, | ||
480 | 0x00000000, 0x0000001f, 0x00000000, 0x00000000, | ||
481 | 0x00000080, 0x80008000, 0x08f000bb, 0x91929300, | ||
482 | 0x201f009b, 0x2a1b2a00, 0x00000003, 0x01010100, | ||
483 | 0x00000000, 0x00000000, 0x00000000, 0x001000f0, | ||
484 | 0x00000000, 0x0110001f, 0x00000000, 0x00000000, | ||
485 | 0x00000080, 0x80008000, 0x0af000bb, 0x91929300, | ||
486 | 0xa01f009b, 0x2a1b2a00, 0x00000003, 0x01010100, | ||
487 | 0x00000000, 0x00000000, 0x00000004, 0x080000f0, | ||
488 | 0x00000141, 0x2000001f, 0x00000000, 0x00000000, | ||
489 | 0x80000080, 0x80008000, 0x09f000bb, 0x91929300, | ||
490 | 0x201f009b, 0x2a1b2a00, 0x03000003, 0x01010100, | ||
491 | 0x00000000, 0x00000000, 0x00000204, 0x000000f0, | ||
492 | 0x00018140, 0x0000001f, 0x00000000, 0x00000000, | ||
493 | 0xc0000080, 0x80008000, 0x08f000bb, 0x91929300, | ||
494 | 0x201f009b, 0x2a1b2a00, 0x06000003, 0x01010100, | ||
495 | 0x00000000, 0x00000000, 0x00000200, 0x000000f0, | ||
496 | 0x00018000, 0x0000001f, 0x00000000, 0x00000000, | ||
497 | 0x40000080, 0x80008000, 0x08f000bb, 0x91929300, | ||
498 | 0x201f009b, 0x2a1b2a00, 0x04000003, 0x01010100, | ||
499 | 0x00000000, 0x00000000, 0x00000000, 0x000000f0, | ||
500 | 0x00000000, 0x0000001f, 0x00000000, 0x00000000, | ||
501 | 0x00000080, 0x80008000, 0x08f000bb, 0x91929300, | ||
502 | 0x201f009b, 0x2a1b2a00, 0x00000003, 0x01010100, | ||
503 | }; | 40 | }; |
504 | 41 | ||
505 | u32 gba_btn_select_data[] = { | 42 | u32 gba_btn_leftright_shadow_data[] = { |
506 | 0x00000000, 0x00000000, 0x00000000, 0x0000f008, | 43 | 0x00000000, 0x000008f8, 0x00000000, 0x2020100f, |
507 | 0x00000000, 0x00001f20, 0x00000000, 0x00000000, | 44 | }; |
508 | 0x000000e0, 0x6080e000, 0xf8f0002e, 0x2622ee00, | 45 | |
509 | 0x3f1f00ee, 0x2622ee00, 0x0000000e, 0x04040400, | 46 | u32 gba_btn_lr_shadow_data[] = { |
510 | 0x00000000, 0x00000000, 0x00000000, 0x000000f0, | 47 | 0x00000000, 0x000001ff, 0x00000000, 0x000080ff, |
511 | 0x00000000, 0x0000001f, 0x00000000, 0x00000000, | 48 | }; |
512 | 0x000000e0, 0x6080e000, 0x08f0002e, 0x2622ee00, | 49 | |
513 | 0x201f00ee, 0x2622ee00, 0x0000000e, 0x04040400, | 50 | u32 gba_btn_startselect_data[] = { |
514 | 0x00000000, 0x00000000, 0x00000000, 0x001000f0, | 51 | 0x0000f804, 0xfcf80000, 0x00001f20, 0x3f1f0000, |
515 | 0x00000000, 0x0110001f, 0x00000000, 0x00000000, | 52 | 0x000000f8, 0x04f80000, 0x0000001f, 0x201f0000, |
516 | 0x000000e0, 0x6080e000, 0x0af0002e, 0x2622ee00, | 53 | }; |
517 | 0xa01f00ee, 0x2622ee00, 0x0000000e, 0x04040400, | 54 | |
518 | 0x00000000, 0x00000000, 0x00000004, 0x080000f0, | 55 | u32 gba_btn_fx_downup[] = { |
519 | 0x00000141, 0x2000001f, 0x00000000, 0x00000000, | 56 | 0x00000000, 0x00000000, 0x04000000, 0x00000000, |
520 | 0x800000e0, 0x6080e000, 0x09f0002e, 0x2622ee00, | 57 | 0x40000100, 0x00000000, 0x00000000, 0x00000000, |
521 | 0x201f00ee, 0x2622ee00, 0x0300000e, 0x04040400, | 58 | 0x00000000, 0x00000000, 0x00000201, 0x00000000, |
522 | 0x00000000, 0x00000000, 0x00000204, 0x000000f0, | 59 | 0x00008000, 0x01010000, 0x00000001, 0x00000000, |
523 | 0x00018140, 0x0000001f, 0x00000000, 0x00000000, | 60 | 0x00000000, 0x80000000, 0x00000001, 0x00000000, |
524 | 0xc00000e0, 0x6080e000, 0x08f0002e, 0x2622ee00, | 61 | 0x00000000, 0x00010100, 0x00000001, 0x02000000, |
525 | 0x201f00ee, 0x2622ee00, 0x0600000e, 0x04040400, | 62 | 0x00000000, 0x00400000, 0x00000000, 0x00000000, |
526 | 0x00000000, 0x00000000, 0x00000200, 0x000000f0, | 63 | 0x00000000, 0x00000001, 0x00000000, 0x00040000, |
527 | 0x00018000, 0x0000001f, 0x00000000, 0x00000000, | ||
528 | 0x400000e0, 0x6080e000, 0x08f0002e, 0x2622ee00, | ||
529 | 0x201f00ee, 0x2622ee00, 0x0400000e, 0x04040400, | ||
530 | 0x00000000, 0x00000000, 0x00000000, 0x000000f0, | ||
531 | 0x00000000, 0x0000001f, 0x00000000, 0x00000000, | ||
532 | 0x000000e0, 0x6080e000, 0x08f0002e, 0x2622ee00, | ||
533 | 0x201f00ee, 0x2622ee00, 0x0000000e, 0x04040400, | ||
534 | }; | 64 | }; |
535 | 65 | ||
536 | typedef struct SpriteAnimation { | 66 | typedef struct SpriteAnimation { |
@@ -538,10 +68,11 @@ typedef struct SpriteAnimation { | |||
538 | size_t n_frames; | 68 | size_t n_frames; |
539 | } SpriteAnimation; | 69 | } SpriteAnimation; |
540 | 70 | ||
541 | typedef enum {BTN_STATE_IDLE, BTN_STATE_PRESSED} BtnState; | 71 | typedef enum {BTN_STATE_IDLE, BTN_STATE_PRESSED, BTN_STATE_RELEASED, BTN_STATE_HOLD} BtnState; |
542 | 72 | ||
543 | static size_t btn_state_idle[] = {0}; | 73 | static size_t btn_state_idle[] = {0}; |
544 | static size_t btn_state_pressed[] = {16, 16, 32, 32, 48, 48, 64, 64, 80, 96}; | 74 | // static size_t btn_state_pressed[] = {16, 16, 32, 32, 48, 48, 64, 64, 80, 96}; |
75 | static size_t btn_state_pressed[] = {0}; | ||
545 | 76 | ||
546 | static SpriteAnimation *animation_states[] = { | 77 | static SpriteAnimation *animation_states[] = { |
547 | &(SpriteAnimation){ | 78 | &(SpriteAnimation){ |
@@ -553,3 +84,60 @@ static SpriteAnimation *animation_states[] = { | |||
553 | .n_frames = sizeof(btn_state_pressed) / sizeof(size_t), | 84 | .n_frames = sizeof(btn_state_pressed) / sizeof(size_t), |
554 | }, | 85 | }, |
555 | }; | 86 | }; |
87 | |||
88 | typedef struct AnimationEntry { | ||
89 | int x_offset; | ||
90 | int y_offset; | ||
91 | int tile_offset; | ||
92 | // NOTE: Maybe this should be a part of an animation? | ||
93 | // For example, hidden state, h/v flip. | ||
94 | u16 hidden; | ||
95 | // u16 obj_attr_1; | ||
96 | // u16 obj_attr_2; | ||
97 | } AnimationEntry; | ||
98 | |||
99 | typedef struct ObjState { | ||
100 | size_t id; | ||
101 | int x; | ||
102 | int y; | ||
103 | u32 *data; | ||
104 | size_t base_tile; | ||
105 | size_t n_tiles; | ||
106 | size_t frames; | ||
107 | u16 obj_attr_0; | ||
108 | u16 obj_attr_1; | ||
109 | u16 obj_attr_2; | ||
110 | } ObjState; | ||
111 | |||
112 | AnimationEntry *btn_down_animation[] = { | ||
113 | &(AnimationEntry[]){ | ||
114 | {0, 0, 0, 0}, | ||
115 | {0, 0, 0, 0}, | ||
116 | {0, 1, 0, 0}, | ||
117 | {0, 1, 0, 0}, | ||
118 | {0, 2, 0, 0}, | ||
119 | {0, 2, 0, 0}, | ||
120 | {0, 2, 0, 0}, | ||
121 | {0, 2, 0, 0}, | ||
122 | }, | ||
123 | &(AnimationEntry[]){ | ||
124 | {0, 11, 0, 0}, | ||
125 | {0, 11, 0, 0}, | ||
126 | {0, 11, 0, 0}, | ||
127 | {0, 11, 0, 0}, | ||
128 | {0, 11, 0, 0}, | ||
129 | {0, 11, 0, 0}, | ||
130 | {0, 11, 0, 0}, | ||
131 | {0, 11, 0, 0}, | ||
132 | }, | ||
133 | &(AnimationEntry[]){ | ||
134 | {-8, 17, 0, 1}, | ||
135 | {-8, 17, 0, 0}, | ||
136 | {-8, 17, 4, 0}, | ||
137 | {-8, 17, 4, 0}, | ||
138 | {-8, 17, 8, 0}, | ||
139 | {-8, 17, 8, 0}, | ||
140 | {-8, 17, 12, 0}, | ||
141 | {-8, 17, 12, 1}, | ||
142 | }, | ||
143 | }; | ||