Krrios File Format Reference

Colors
Index Files
Anim.mul
Anim.idx
AnimData.mul
Art.mul
ArtIdx.mul
Fonts.mul
GumpArt.mul
GumpIdx.mul
Hues.mul
Light.mul
LightIdx.mul
Map<n>.mul
MultiMap.rle
Multi.mul
Multi.idx
Palette.mul
RadarCol.mul
SJIS2Uni.mul
SkillGrp.mul
Skills.mul
Skills.idx
Sound.mul
SoundIdx.mul
Speech.mul
StaIdx<n>.mul
Statics<n>.mul
TexIdx.mul
TexMaps.mul
TileData.mul
UniFont[n].mul
VerData.mul

Back to Reference

Animations

Data File: Anim.mul
Index File: Anim.idx

Data:

short[0x100] palette;
int frameCount;
int[frameCount] lookupTable;
Frame Data...

To find the data for a frame, seek to 0x200 + lookupTable[frame].

Frame Data:

short centerX;
short centerY;
short width;
short height;
Pixel Data...

Pixel data comes in chunks. If the current chunk header is 0x7FFF7FFF, the image is completed.

Chunks:

int header;
byte[XRun] palettePixels; // See description below for XRun

Header Bit Masks:

1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
YOffset XOffset XRun

XOffset and YOffset are relative to centerX and centerY.
XRun indicates how many pixels are contained in this line.
XOffset and YOffset are signed, so we need to compensate for that:
XOffset = (XOffset ^ 0x200) - 0x200
YOffset = (YOffset ^ 0x200) - 0x200

See Also:
 - UO Color Format
 - Index Files