Mirai's Miscellaneous Misadventures

M53 / models / homura.c

1/* license: AGPLv3 or later */
2/* copyright 2024 zamfofex */
3
4#include "models.h"
5
6static struct mimimi_layer mimimi_homura_head_value =
7{
8    0, 11, 0, 12, 32, 12,
9    {
10        {6, 6, 1, {0xC6}},
11        {8, 8, 1, {0xC6}},
12        {10, 10, 1, {0xC6}},
13        {12, 12, 1, {0xC6}},
14        {12, 12, 1, {0xC6}},
15        {12, 12, 1, {0xC6}},
16        {12, 12, 1, {0xC6}},
17        {12, 12, 1, {0xC6}},
18        {12, 12, 1, {0xC6}},
19        {10, 10, 1, {0xC6}},
20        {8, 8, 1, {0xC6}},
21        {6, 6, 1, {0xC6}},
22    },
23};
24
25static struct mimimi_layer mimimi_homura_torso_value =
26{
27    0, 23, 0, 10, 32, 12,
28    {
29        {6, 4, 1, {0xC6}},
30        {8, 4, 1, {0xC6}},
31        {10, 6, 1, {0xC6}},
32        {10, 6, 1, {0xC6}},
33        {10, 6, 1, {0xC6}},
34        {10, 6, 1, {0xC6}},
35        {10, 6, 1, {0xC6}},
36        {10, 6, 1, {0xC6}},
37        {10, 6, 1, {0xC6}},
38        {10, 6, 1, {0xC6}},
39        {10, 6, 1, {0xC6}},
40        {10, 6, 1, {0xC6}},
41        {10, 6, 1, {0xC6}},
42        {8, 4, 1, {0xC6}},
43        {6, 4, 1, {0xC6}},
44    },
45};
46
47static struct mimimi_layer mimimi_homura_left_arm_value =
48{
49    0, -1, -5, 4, 128, 12,
50    {
51        {2, 2, 1, {0xC6}},
52        {4, 4, 1, {0xC6}},
53        {4, 4, 1, {0xC6}},
54        {4, 4, 1, {0xC6}},
55        {4, 4, 1, {0xC6}},
56        {4, 4, 1, {0xC6}},
57        {4, 4, 1, {0xC6}},
58        {4, 4, 1, {0xC6}},
59        {4, 4, 1, {0xC6}},
60        {4, 4, 1, {0xC6}},
61        {4, 4, 1, {0xC6}},
62        {2, 2, 1, {0xC6}},
63    },
64};
65
66static struct mimimi_layer mimimi_homura_right_arm_value =
67{
68    0, -1, 5, 4, 128, 12,
69    {
70        {2, 2, 1, {0xC6}},
71        {4, 4, 1, {0xC6}},
72        {4, 4, 1, {0xC6}},
73        {4, 4, 1, {0xC6}},
74        {4, 4, 1, {0xC6}},
75        {4, 4, 1, {0xC6}},
76        {4, 4, 1, {0xC6}},
77        {4, 4, 1, {0xC6}},
78        {4, 4, 1, {0xC6}},
79        {4, 4, 1, {0xC6}},
80        {4, 4, 1, {0xC6}},
81        {2, 2, 1, {0xC6}},
82    },
83};
84
85static struct mimimi_layer mimimi_homura_left_leg_value =
86{
87    0, -11, -3, 4, 32, 12,
88    {
89        {2, 2, 1, {0xC6}},
90        {4, 4, 1, {0xC6}},
91        {4, 4, 1, {0xC6}},
92        {4, 4, 1, {0xC6}},
93        {4, 4, 1, {0xC6}},
94        {4, 4, 1, {0xC6}},
95        {4, 4, 1, {0xC6}},
96        {4, 4, 1, {0xC6}},
97        {4, 4, 1, {0xC6}},
98        {4, 4, 1, {0xC6}},
99        {4, 4, 1, {0xC6}},
100        {2, 2, 1, {0xC6}},
101    },
102};
103
104static struct mimimi_layer mimimi_homura_right_leg_value =
105{
106    0, -11, 3, 4, 32, 12,
107    {
108        {2, 2, 1, {0xC6}},
109        {4, 4, 1, {0xC6}},
110        {4, 4, 1, {0xC6}},
111        {4, 4, 1, {0xC6}},
112        {4, 4, 1, {0xC6}},
113        {4, 4, 1, {0xC6}},
114        {4, 4, 1, {0xC6}},
115        {4, 4, 1, {0xC6}},
116        {4, 4, 1, {0xC6}},
117        {4, 4, 1, {0xC6}},
118        {4, 4, 1, {0xC6}},
119        {2, 2, 1, {0xC6}},
120    },
121};
122
123static struct mimimi_layer mimimi_homura_face_value =
124{
125    0, -6, 0, 12, 32, 2,
126    {
127        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x00, 0x00, 0x2B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
128        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x00, 0x00, 0x2B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
129    },
130};
131
132static struct mimimi_layer mimimi_homura_hair_value =
133{
134    0, 1, 0, 20, 32, 13,
135    {
136        {4, 4, 1, {0x03}},
137        {8, 8, 1, {0x03}},
138        {10, 10, 1, {0x03}},
139        {12, 12, 1, {0x03}},
140        {14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
141        {14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
142        {14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
143        {14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
144        {14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
145        {14, 14, 28, {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03}},
146        {14, 14, 28, {0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00}},
147        {14, 14, 28, {0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00}},
148        {14, 14, 28, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
149    },
150};
151
152static struct mimimi_layer mimimi_homura_ponytail_value =
153{
154    10, 2, 0, 12, 32, 32,
155    {
156        {4, 4, 1, {0x03}},
157        {6, 6, 1, {0x03}},
158        {8, 8, 16, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
159        {10, 10, 20, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
160        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
161        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
162        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
163        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
164        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
165        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
166        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
167        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
168        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
169        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
170        {12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
171        {12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
172        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
173        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
174        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
175        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00}},
176        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
177        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
178        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
179        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00}},
180        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
181        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
182        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
183        {12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
184        {12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
185        {12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
186        {12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
187        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
188    },
189};
190
191static struct mimimi_layer mimimi_homura_hair_lace_value =
192{
193    4, 5, 0, 8, 32, 5,
194    {
195        {8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
196        {8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
197        {8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
198        {6, 6, 16, {0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x00}},
199        {4, 4, 1, {0x0E}},
200    },
201};
202
203static struct mimimi_layer mimimi_homura_flash_shirt_value =
204{
205    0, -1, 0, 10, 32, 11,
206    {
207        {8, 4, 16, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
208        {10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
209        {10, 6, 1, {0x0E}},
210        {10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x03, 0x0E, 0x03, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
211        {10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x03, 0x03, 0x0E, 0x03, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
212        {10, 6, 1, {0x0E}},
213        {10, 6, 1, {0x0E}},
214        {10, 6, 1, {0x0E}},
215        {10, 6, 1, {0x0E}},
216        {10, 6, 1, {0x0E}},
217        {10, 6, 1, {0x0E}},
218    },
219};
220
221static struct mimimi_layer mimimi_homura_flash_jean_value =
222{
223    0, 0, 0, 4, 32, 9,
224    {
225        {2, 2, 1, {0x4A}},
226        {4, 4, 1, {0x4A}},
227        {4, 4, 1, {0x4A}},
228        {4, 4, 1, {0x4A}},
229        {4, 4, 1, {0x4A}},
230        {4, 4, 1, {0x4A}},
231        {4, 4, 1, {0x4A}},
232        {4, 4, 1, {0x4A}},
233        {4, 4, 1, {0x4A}},
234    },
235};
236
237static struct mimimi_layer mimimi_homura_flash_shirt_sleeve_value =
238{
239    0, 0, 0, 4, 32, 5,
240    {
241        {2, 2, 1, {0x0E}},
242        {4, 4, 1, {0x0E}},
243        {4, 4, 1, {0x0E}},
244        {4, 4, 1, {0x0E}},
245        {4, 4, 1, {0x0E}},
246    },
247};
248
249static struct mimimi_layer mimimi_homura_flash_shoe_value =
250{
251    0, -9, 0, 10, 32, 3,
252    {
253        {4, 4, 8, {0x02, 0x02, 0x02, 0x88, 0x88, 0x02, 0x02, 0x02}},
254        {4, 4, 1, {0x02}},
255        {2, 2, 6, {0x88, 0x02, 0x02, 0x02, 0x02, 0x88}},
256    },
257};
258
259/* todo */
260static struct mimimi_model mimimi_homura_flash_value =
261{
262    17,
263    {
264        {0, &mimimi_homura_torso_value},
265        {0, &mimimi_homura_head_value},
266        {0, &mimimi_homura_left_arm_value},
267        {0, &mimimi_homura_right_arm_value},
268        {0, &mimimi_homura_left_leg_value},
269        {0, &mimimi_homura_right_leg_value},
270
271        {0, &mimimi_homura_flash_shirt_value},
272        {1, &mimimi_homura_face_value},
273        {1, &mimimi_homura_hair_value},
274        {1, &mimimi_homura_ponytail_value},
275        {1, &mimimi_homura_hair_lace_value},
276        {2, &mimimi_homura_flash_shirt_sleeve_value},
277        {3, &mimimi_homura_flash_shirt_sleeve_value},
278        {4, &mimimi_homura_flash_jean_value},
279        {4, &mimimi_homura_flash_shoe_value},
280        {5, &mimimi_homura_flash_jean_value},
281        {5, &mimimi_homura_flash_shoe_value},
282    },
283};
284
285struct mimimi_model *mimimi_homura_flash = &mimimi_homura_flash_value;