Skip to content

Epic Mickey Display List format

Candoran2 edited this page Jun 9, 2023 · 6 revisions

Nif files from Epic Mickey for the Wii can contain NiMeshes that have their geometry data stored in a non-standard way.

Regular NiMeshes typically store the triangles in one datastream (either strips or loose triangles), and store the vertex information in one or more other datastreams, where there is an equal number of vertex positions, normals, vertex colors, UV coordinates or bone weights. So if there are 200 vertices, there are 200 position entries, 200 vertex normal entries, 200 color entries etc.

However, when there is a displaylist datastream (component semantics "DISPLAYLIST"), these are not guaranteed to be the same length and there is no triangle datastream. The displaylist datastream instead defines how each piece of information is linked and how the triangles are laid out. The displaylist is a series of bytes, which are all structured as command bytes followed by the associated information. Which commands are used and their content has two variations depending on whether the mesh is weighted or not.

Common definitions

Non-weighted mesh

Weighted mesh

Clone this wiki locally