Jump to content

FFLiResourceHeader

From Mii Technical Wiki
Revision as of 20:00, 23 September 2025 by Jo (talk | contribs) (Header format)

FFLResMiddle.dat and FFLResHigh.dat are Mii resource files that specify both vertex and texture data.

On the Wii U, the location of these at MLC are at: /sys/title/0005001b/10056000/content/FFLRes.... There are also "LG" variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)

Header format

This sample is in the ImHex Pattern[1] format.

struct ResourcePartsInfo {
    u32 dataPos;
    u32 dataSize;
    u32 compressedSize;
    u8 compressLevel;
    u8 windowBits;
    u8 memoryLevel;
    u8 strategy;
};

struct ResourceShapeHeader {
    u32 maxSize[12];
    ResourcePartsInfo beard[4];
    ResourcePartsInfo hatNormal[132];
    ResourcePartsInfo hatCap[132];
    ResourcePartsInfo faceline[12];
    ResourcePartsInfo glass[1];
    ResourcePartsInfo mask[12];
    ResourcePartsInfo noseline[18];
    ResourcePartsInfo nose[18];
    ResourcePartsInfo hairNormal[132];
    ResourcePartsInfo hairCap[132];
    ResourcePartsInfo foreheadNormal[132];
    ResourcePartsInfo foreheadCap[132];
};

struct ResourceTextureHeader {
    u32 maxSize[11];
    ResourcePartsInfo beard[3];
    ResourcePartsInfo hat[132];
    ResourcePartsInfo eye[62];     // [80] in AFL
    ResourcePartsInfo eyebrow[24]; // [28] in AFL
    ResourcePartsInfo faceline[12];
    ResourcePartsInfo faceMakeup[12];
    ResourcePartsInfo glass[9]; // [20] in AFL
    ResourcePartsInfo mole[2];
    ResourcePartsInfo mouth[37]; // [52] in AFL
    ResourcePartsInfo mustache[6];
    ResourcePartsInfo noseline[18];
};

struct ResourceHeader { 
    u32 signature; // "FFRA"
    u32 version;
    u32 uncompressedBufferSize;
    u32 expandedBufferSize;
    u32 expanded;
    ResourceTextureHeader textureHeader;
    ResourceShapeHeader shapeHeader;
    u32 unknown[12]; // Always 0x0?
};

Vertex data format

...

Texture data format

...