RFLCharData: Difference between revisions
Appearance
| Line 2: | Line 2: | ||
== Data format == | == Data format == | ||
Sorry, it's in | Sorry, it's in C. <<TODO KAITAI OR IMHEX>><syntaxhighlight lang="c"> | ||
typedef struct RFLiCharData { | typedef struct RFLiCharData { | ||
// at 0x0 | // at 0x0 | ||
Revision as of 11:33, 24 September 2025
RFLCharData is the Mii data format used on Wii. This format has big endianness, and it's little endian counterpart is used on DS.
Data format
Sorry, it's in C. <<TODO KAITAI OR IMHEX>>
typedef struct RFLiCharData {
// at 0x0
u16 padding0 : 1;
u16 sex : 1;
u16 birthMonth : 4;
u16 birthDay : 5;
u16 favoriteColor : 4;
u16 favorite : 1;
wchar_t name[RFL_NAME_LEN]; // at 0x2
u8 height; // at 0x16
u8 build; // at 0x17
RFLCreateID createID; // at 0x18
// at 0x20
u16 faceType : 3;
u16 faceColor : 3;
u16 faceTex : 4;
u16 padding2 : 3;
u16 localonly : 1;
u16 type : 2;
// at 0x22
u16 hairType : 7;
u16 hairColor : 3;
u16 hairFlip : 1;
u16 padding3 : 5;
// at 0x24
u16 eyebrowType : 5;
u16 eyebrowRotate : 5;
u16 padding4 : 6;
// at 0x26
u16 eyebrowColor : 3;
u16 eyebrowScale : 4;
u16 eyebrowY : 5;
u16 eyebrowX : 4;
// at 0x28
u16 eyeType : 6;
u16 eyeRotate : 5;
u16 eyeY : 5;
// at 0x2A
u16 eyeColor : 3;
u16 eyeScale : 4;
u16 eyeX : 4;
u16 padding5 : 5;
// at 0x2C
u16 noseType : 4;
u16 noseScale : 4;
u16 noseY : 5;
u16 padding6 : 3;
// at 0x2E
u16 mouthType : 5;
u16 mouthColor : 2;
u16 mouthScale : 4;
u16 mouthY : 5;
// at 0x30
u16 glassType : 4;
u16 glassColor : 3;
u16 glassScale : 4;
u16 glassY : 5;
// at 0x32
u16 mustacheType : 2;
u16 beardType : 2;
u16 beardColor : 3;
u16 beardScale : 4;
u16 beardY : 5;
// at 0x34
u16 moleType : 1;
u16 moleScale : 4;
u16 moleY : 5;
u16 moleX : 5;
u16 padding8 : 1;
wchar_t creatorName[RFL_CREATOR_LEN]; // at 0x36
} RFLiCharData;