Nn::mii::CharInfo
Appearance
This is the Mii data format used on Nintendo Switch and later.
Struct Pattern
| Offset | Data Type | Name | Notes |
|---|---|---|---|
| 0x0 | u8[16] | create_id | UUIDv4, needs RFC 4122 validity |
| 0x10 | u16[11] | nickname | Null terminated |
| 0x26 | u8 | font_region | JP/US/EU, China, Korea, Taiwan |
| 0x27 | u8 | favorite_color | Favorite Color Table index |
| 0x28 | u8 | gender | 0 = male
1 = female |
| 0x29 | u8 | height | |
| 0x2A | u8 | build | "weight" |
| 0x2B | u8 | type | 1 if it is a Special Mii. |
| 0x2C | u8 | region_move | AKA "region lock" |
| 0x2D | u8 | faceline_type | Faceline type index |
| 0x2E | u8 | faceline_color | Common Color Table index(?) |
| 0x2F | u8 | faceline_wrinkle | Faceline wrinkle index |
| 0x30 | u8 | faceline_make | Faceline makeup index |
| 0x31 | u8 | hair_type | Hair type index |
| 0x32 | u8 | hair_color | Common Color Table index(?) |
| 0x33 | u8 | hair_flip | Boolean, Hair y-flip |
| 0x34 | u8 | eye_type | Eye type index |
| 0x35 | u8 | eye_type | Common Color Table index(?)
Main indices are [x,y,z, etc] |
| 0x36 | u8 | eye_scale | Eye x and y scale |
| 0x37 | u8 | eye_aspect | Eye y scale |
| 0x38 | u8 | eye_rotate | Eye rotation |
| 0x39 | u8 | eye_x | Eye x position |
| 0x3A | u8 | eye_y | Eye y position |
| .. | u8 | eyebrow_type | |
| .. | u8 | eyebrow_color | |
| .. | u8 | eyebrow_scale | |
| .. | u8 | eyebrow_aspect | |
| .. | u8 | eyebrow_rotate | |
| .. | u8 | nose_type | |
| .. | u8 | nose_scale | |
| .. | u8 | nose_y | |
| .. | u8 | mouth_type | |
| .. | u8 | mouth_color | |
| .. | u8 | mouth_scale | |
| .. | u8 | mouth_aspect | |
| .. | u8 | mouth_y | |
| .. | u8 | beard_color | |
| .. | u8 | beard_type | |
| .. | u8 | mustache_type | |
| .. | u8 | mustache_scale | |
| .. | u8 | mustache_y | |
| .. | u8 | glass_type | Glass |
| .. | u8 | glass_color | Glass |
| .. | u8 | glass_scale | Glass |
| .. | u8 | glass_y | Glass |
| .. | u8 | mole_type | |
| .. | u8 | mole_scale | |
| .. | u8 | mole_x | |
| .. | u8 | mole_y | |
| .. | u8 | reverved | Unused padding |
Above table is derived from below sample.
This sample is in the ImHex Pattern[1] format.
struct Mii {
u8 create_id[16];
u16 nick[11];
u8 font;
u8 col;
u8 gend;
u8 height;
u8 build;
u8 type; // Special or not
u8 region_move;
u8 faceline_type;
u8 faceline_color;
u8 faceline_wrinkle;
u8 faceline_make;
u8 hair_type;
u8 hair_color;
u8 hair_flip;
u8 eye_type;
u8 eye_color;
u8 eye_scale;
u8 eye_aspect;
u8 eye_rotate;
u8 eye_x;
u8 eye_y;
u8 eyebrow_type;
u8 eyebrow_color;
u8 eyebrow_scale;
u8 eyebrow_aspect;
u8 eyebrow_rotate;
u8 eyebrow_x;
u8 eyebrow_y;
u8 nose_type;
u8 nose_scale;
u8 nose_y;
u8 mouth_type;
u8 mouth_color;
u8 mouth_scale;
u8 mouth_aspect;
u8 mouth_y;
u8 beard_color;
u8 beard_type;
u8 mustache_type;
u8 mustache_scale;
u8 mustache_y;
u8 glass_type;
u8 glass_color;
u8 glass_scale;
u8 glass_y;
u8 mole_type;
u8 mole_scale;
u8 mole_x;
u8 mole_y;
u8 reserved; /* always zero */
};
Mii mii_at_0x00 @ 0x00;