Skip to content

Instantly share code, notes, and snippets.

@ariankordi
Last active April 9, 2026 02:40
Show Gist options
  • Select an option

  • Save ariankordi/674d413176fdf4d226c32fd062307a7c to your computer and use it in GitHub Desktop.

Select an option

Save ariankordi/674d413176fdf4d226c32fd062307a7c to your computer and use it in GitHub Desktop.
(WIP) ImHex hexpat file for Tomodachi Life: Living the Dream Mii data format, partially reversed from Switch CharInfo format.
#pragma endian little
struct CharInfoEx {
u8 createId[16];
char16 name[11];
u8 fontRegion;
u8 gender;
u8 height;
u8 build;
u8 regionMove;
u8 derivedFromMouthType;
u8 facelineType;
u8 facelineColor;
u8 wrinkle0;
u8 wrinkle1;
u8 wrinkle2;
u8 wrinkle3;
u8 derivedFromFacelineWrinkle1;
u8 field15_0x33;
u8 field16_0x34;
u8 field17_0x35;
u8 field18_0x36;
u8 field19_0x37;
u8 make0;
u8 make1;
u8 field22_0x3a;
u8 field23_0x3b;
u8 field24_0x3c;
u8 field25_0x3d;
u8 field26_0x3e;
u8 derivedFromFacelineMake1Default25;
u8 field28_0x40;
u8 field29_0x41;
u8 field30_0x42;
u8 field31_0x43;
u16 hairType;
u8 hairColor0;
u8 hairColor1;
u16 field35_0x48;
u8 field36_0x4a;
u16 unkDefault512;
u8 field38_0x4d;
u8 eyeType;
u8 eyeColor;
u8 eyeScale;
u8 eyeAspect;
u8 eyeRotate;
u8 eyeX;
u8 field45_0x54;
u8 unkDefault64;
u8 field47_0x56;
u8 derivedFromEyeAspect1;
u8 derivedFromEyeAspect0;
u8 field50_0x59;
u16 field51_0x5a;
u8 derivedFromFacelineMake2;
u8 field53_0x5d;
u8 field54_0x5e;
u8 field55_0x5f;
u16 field56_0x60;
u8 field57_0x62;
u8 field58_0x63;
u8 field59_0x64;
u8 field60_0x65;
u8 field61_0x66;
u8 field62_0x67;
u8 field63_0x68;
u8 field64_0x69;
u8 field65_0x6a;
u8 field66_0x6b;
u8 field67_0x6c;
u8 field68_0x6d;
u8 field69_0x6e;
u8 field70_0x6f;
u8 field71_0x70;
u8 field72_0x71;
u8 field73_0x72;
u8 field74_0x73;
u8 eyebrowType;
u8 eyebrowColor;
u8 eyebrowScale;
u8 eyebrowAspect;
u8 eyebrowRotate;
u8 field80_0x79;
u8 eyebrowY;
u8 noseType;
u8 noseScale;
u8 noseY;
u8 mouthType;
u8 mouthColor;
u8 mouthScale;
u8 mouthAspect;
u8 __maybe_mouthRotate;
u8 mouthY;
u8 field91_0x84;
u8 field92_0x85;
u8 field93_0x86;
u8 __maybe_mustacheColor;
u8 mustacheType;
u8 beardColor;
u8 mustacheScale;
u8 field98_0x8b;
u8 mustacheY;
u8 glassType1;
u8 glassColor;
u8 glassScale;
u8 __maybe_glassAspect;
u8 glassY;
u8 glassType0;
u8 field106_0x93;
u8 moleScale;
u8 moleX;
u8 moleY;
u8 unkDefault45;
};
CharInfoEx info @ 0x0;
// By McSpazzy: https://github.com/McSpazzy
// Based on Arian's attempt: https://gist.github.com/ariankordi/674d413176fdf4d226c32fd062307a7c
#pragma endian little
bitfield FaceFlags {
unknown : 1;
bangsSide : 1;
backDualColor : 1;
bangsDualColor : 1;
eyeShadowEnabled : 1;
mouthInvert : 1;
mustacheInverted : 1;
moleHigh : 1;
};
bitfield HairStyleFlags {
leftSide : 1;
rightSide : 1;
reserved : 6;
};
struct CharInfoEx {
u8 uuidv4[16]; // "createId"
char16 name[11];
u8 fontRegion;
u8 gender;
u8 height;
u8 build;
u8 regionMove;
FaceFlags faceFlags;
u8 facelineType;
u8 facelineColor;
u8 wrinkle0;
u8 wrinkle0Scale;
u8 wrinkle0Aspect;
u8 wrinkle0X;
u8 wrinkle0Y;
u8 wrinkle1;
u8 wrinkle1Scale;
u8 wrinkle1Aspect;
u8 wrinkle1X;
u8 wrinkle1Y;
u8 makeup0;
u8 makeup0Color;
u8 makeup0Scale;
u8 makeup0Aspect;
u8 makeup0X;
u8 makeup0Y;
u8 makeup1;
u8 makeup1Color;
u8 makeup1Scale;
u8 makeup1Aspect;
u8 makeup1X;
u8 makeup1Y;
u16 hairType;
u8 hairColor0;
u8 hairColor1;
u8 hairTypeFront;
u8 hairTypeBack;
HairStyleFlags hairStyle;
u8 earType;
u8 earScale;
u8 earY;
u8 eyeType;
u8 eyeColor;
u8 eyeScale;
u8 eyeAspect;
u8 eyeRotate;
u8 eyeX;
u8 eyeY;
u8 eyeShadowColor;
u8 eyePupilType;
u8 eyePupilScale;
u8 eyePupilAspect;
u8 eyePupilRotate;
u8 eyePupilX;
u8 eyePupilY;
u8 eyelashUpperType;
u8 eyelashUpperScale;
u8 eyelashUpperAspect;
u8 eyelashUpperRotate;
u8 eyelashUpperX;
u8 eyelashUpperY;
u8 eyelashLowerType;
u8 eyelashLowerScale;
u8 eyelashLowerAspect;
u8 eyelashLowerRotate;
u8 eyelashLowerX;
u8 eyelashLowerY;
u8 eyeStrokeUpperType;
u8 eyeStrokeUpperScale;
u8 eyeStrokeUpperAspect;
u8 eyeStrokeUpperRotate;
u8 eyeStrokeUpperX;
u8 eyeStrokeUpperY;
u8 eyeStrokeLowerType;
u8 eyeStrokeLowerScale;
u8 eyeStrokeLowerAspect;
u8 eyeStrokeLowerRotate;
u8 eyeStrokeLowerX;
u8 eyeStrokeLowerY;
u8 eyebrowType;
u8 eyebrowColor;
u8 eyebrowScale;
u8 eyebrowAspect;
u8 eyebrowRotate;
u8 eyebrowX;
u8 eyebrowY;
u8 noseType;
u8 noseScale;
u8 noseY;
u8 mouthType;
u8 mouthColor;
u8 mouthScale;
u8 mouthAspect;
u8 mouthRotate;
u8 mouthY;
u8 beardType;
u8 beardColor;
u8 stubbleType;
u8 stubbleColor;
u8 mustacheType;
u8 mustacheColor;
u8 mustacheScale;
u8 mustacheAspect;
u8 mustacheY;
u8 glassType1;
u8 glassColor1;
u8 glassScale;
u8 glassAspect;
u8 glassY;
u8 glassType2;
u8 glassColor2;
u8 moleScale;
u8 moleX;
u8 moleY;
u8 unkDefault45;
};
CharInfoEx info @ 0x0;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment