Skip to content

IMC Files (*.IMC)

Combat animation sprite files. Each IMC contains all animation frames for one character body type and animation type. IMC files are accessed through the catalog system (e.g. A00C.CAT contains alchemist IMC files).

Extension
*.IMC
Location
Via CAT archives (e.g. A00C.CAT, E00C.CAT)
Byte order
Little-endian (16-bit) — decompressed layout
Size
Variable — frame-based; CB: 72 frames, WK: 72, DY: 16
Compression
Darklands DRLE — applied to the whole file; offsets below are post-decompress
Magic
None
Status
Partial
Source
Wendigo — X.imc.xml; Olemars — imcfile.cpp

Canonical source: X.imc.xml (Wendigo’s Darklands repo)

Compression

The entire .IMC file on disk is compressed with the Darklands DL-RLE variant. All offsets below describe the decompressed content.

Animation Types

Each filename encodes body type and animation:

SuffixFramesDescription
CB72Combat animations (multiple weapon variants)
WK72Walking animations
DY16Dying / dead animation

Decompressed File Layout

Header

Offset (non-DY)Offset (DY)SizeFieldDescription
0x000x0024(unknown)Pairs of words; possibly Y/X frame offsets
0x180x181(unknown)0xFF for DY files, 0x00 for others
0x1920(unknown)Motion-related; all zeroes for static monsters. Present only in non-DY files
0x260x1a2sprite_heightHeight (same for all frames)
0x280x1c16sprite_widths[8]Width per direction (word); all frames in a direction share the same width
0x480x3c2frame_countFrames per direction; file contains 8 × frame_count total images
0x4a0x3e2data_lengthSize of remaining file data after frame offset table
0x4c0x40variesframe_data_offsets[]Word offsets to frame data

Frame Format

OffsetSizeFieldDescription
+0x001widthWidth of this frame in pixels
+0x011heightHeight of this frame in pixels
+0x02variesimage_dataRow-encoded pixel data (see below)

Row Encoding

Each row:

  1. byte — count of defined (non-transparent) pixels
  2. byte — count of leading transparent pixels to skip
  3. N bytes — palette index values (0 = transparent)

Confidence

Medium-high. Documented in X.imc.xml and corroborated by Olemars’s imcfile.cpp.