Skip to content

Creature Animations

All 162 LMRF animation-frame resources (res32/ani2.res, res32/ani3.res, one in extra.res) decode cleanly, but the container has no in-file grouping of frames into named animations — it’s just a flat list of {x, y, width, height} rectangles per frame. Recovering which frames make up “idle”, “walk” and “attack” had to be done from frame geometry alone: wofl.exe has no symbol table and a direct byte-pattern search of the executable for every LMRF resource id found only chance-level hits, so this was a purely structural recovery, cross-checked by actually rendering and looking at each candidate.

Two signals turned out to mark real segment boundaries reliably: a sustained width jump (frame width changes by more than 60% and stays changed for 4+ consecutive frames — not a single-frame outlier, which ordinary in-place motion like a sword swing also produces), and an exact cross-resource frame-dimension prefix (one resource’s entire frame sequence matches another’s first N frames exactly — a boundary two independently-addressed resources agree on, not a guess).

// Hand-picked subset for this page – not all 162 (see the corpus-wide // breakdown below). Descriptions are transcribed from actually looking at // the rendered sheet at 4-6x scale (docs/legend/plan.md § “LMRF animation // segments”), not invented.

// Display order: the render/structurally-confirmed multi-segment set, // then the render-confirmed single-segment walk cycles, then a few // explicitly hypothesis-level examples for honesty about the corpus’s // overall state.

Across all 162 resources: 153 single-segment, 8 two-segment, 1 three-segment (the snail creature below). By confidence, across all 172 segments: 22 render-confirmed, 4 structurally-confirmed (an exact cross-resource frame-dimension prefix match, but the pose itself wasn’t individually inspected), and 146 hypothesis (no boundary signal fired at all — mostly the small 2–8-frame “series” family, defaulted to a single generic action label). The badges below each entry’s title show exactly which confidence level applies to which frame range — nothing here claims more certainty than that.

There’s no executable-derived ground truth for which creature owns which resource id — only the segment structure within one resource was recovered, not a creature → resource-id mapping. That’s also why there are no character names on this page the way WIME’s Characters & Mobs gallery has them: Legend has no equivalent of WIME’s entities.json linking a race/sprite-set to a named character.