Jump to content

RFLCharData

From Mii Technical Wiki
Revision as of 11:38, 24 September 2025 by Jo (talk | contribs) (Data format)

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[10];       // 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[10]; // at 0x36
} RFLiCharData;

In codebases