Jump to content

Nn::mii::CharInfo: Difference between revisions

From Mii Technical Wiki
No edit summary
No edit summary
Tags: Manual revert Visual edit
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is the [[Mii Character Data|Mii data format]] used on [[nn::mii|Nintendo Switch]] and later.
This is the [[Mii Character Data|Mii data format]] used on [[nn::mii|Nintendo Switch]] and later.
== Struct Pattern ==
== Struct Pattern ==
This sample is in the ImHex Pattern<ref>https://imhex.werwolv.net/</ref> format.<syntaxhighlight lang="c">
{| class="wikitable mw-collapsible"
|+
!Offset
!Data Type
!Name
!Notes
|-
|0x0
|u8[16]
|create_id
|UUIDv4, needs [[rfc:4122|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_color
|[[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<ref>https://imhex.werwolv.net/</ref> format.
 
<syntaxhighlight lang="c">
struct Mii {
struct Mii {
     u8 create_id[16];
     u8 create_id[16];
Line 61: Line 325:


== In codebases ==
== In codebases ==
# [https://github.com/Genwald/MiiPort/blob/4ee38bbb8aa68a2365e9c48d59d7709f760f9b5d/include/mii_ext.h#L4-L57 MiiPort]
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_parse/src/nx.rs#L37 Vee Face Library (Unofficial)]
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_parse/src/nx.rs#L37 Vee Face Library (Unofficial)]
 
== References ==
...{{Format-Navbox}}
[[Category:Data Structures]]
[[Category:Data Structures]]
<references />{{Format-Navbox}}

Latest revision as of 11:21, 24 September 2025

This is the Mii data format used on Nintendo Switch and later.

Struct Pattern

[edit | edit source]
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_color 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;

In codebases

[edit | edit source]
  1. MiiPort
  2. Vee Face Library (Unofficial)

References

[edit | edit source]