Skip to content

Animation Gallery

Every FRML animation-frame resource from ANIM32.RES, ANIS32.RES and INTFM32.RES, decoded by the same src/assets/formats/frml.ts code path Spirit of Excalibur’s type-0x05 FRMLs use. All 101 resources decode — see docs/conan/amiga/engine.md § “FRML Format” for the two generalized decoder fixes (a PackBits/LZSS tie-break, and a bounded depth search) that closed the last 14 of them.

Conan has no confirmed per-character recolor mechanism the way War in Middle Earth’s FRMLs do (no remap tables or color-permutation code survive in either disassembly — see docs/conan/amiga/engine.md § “Color Remapping”), so there’s no FrmlCharacterGallery-style “known characters, correctly recolored” view here. What is shown for every resource is its real rendered frame sheet, plus a raw indexed debug view (palette index in the red channel) — and, for each one, this project’s best current answer to “which frames are which named animation.”

Animation-frame segmentation: 23 confirmed, 78 best-effort

Section titled “Animation-frame segmentation: 23 confirmed, 78 best-effort”

The FRML container itself carries no idle/walk/attack/death metadata — just {x, y, width, height} per frame. This project found exactly one avenue for recovering that split with code-level confidence, and it only reaches 23 of the 101 resources:

  • 23 ANIS32.RES ids are cross-referenced by SCENES.RES’s own decoded SCEN objects as scene-decoration sprites (torches, fire, a dripping chain) — never as combat sprites. These are labelled confidence: 'confirmed' below: a single repeating clip, not a multi-pose animation.
  • The remaining 78 — mostly combat sprites in ANIS32.RES #55–89 and ANIM32.RES — have no code-level frame-range table in either the Amiga or DOS executable (four distinct search approaches came up short — direct id-immediate scans, tracing the scene-FRML renderer itself, a whole-file data-table census, and following the combatMoveNames string table’s own cross-references; see docs/conan/amiga/engine.md § “Paths tried for a code-level frame-range table” for why each one structurally couldn’t answer this). Instead, a render-derived geometric heuristic (classifyConanFrmlAnimations()) proposes an actiondeath split wherever a resource’s trailing 1–2 frames are both much shorter and about as wide as the rest — the visual signature of a standing figure collapsing to the ground. This is explicitly labelled confidence: 'hypothesis' everywhere it fires (marked in italic below), including two known false negatives the render evidence itself catches (see the doc section above for the specifics — a reclining pose that doesn’t quite reach the height cutoff, and a colour-dissolve death animation no width/height rule could ever detect). This is genuinely open — see docs/conan/TODO.md, item conan-frml-combat-animation-ranges.