# ILBM/IFF files

Most 2D interface graphics of UA are stored in ILBM files (InterLeaved BitMap). This format was common on Amiga systems which were used by the UA developers.

The ILBM format itself follows the EA85/IFF Interchangeable File Format.

The files often have different filename extensions:

ILB is used for interface objects, icons and so on. Note that definition files may contain references to “ilbm” although the file name extension is “ilb”.

IFF is used for background images, level masks and so on.

It should be noted that ilbm extension is also used to refer to VBMP chunks which are stored inside BAS files. These are NOT ILBM files, they are simple, stripped-down bitmaps with custom headers and pre-defined color map stored elsewhere. Editing these files requires special procedures.

the to-do list:

the contents of data\fonts and data\set46 should be listed and explained file by file, somewhere (here, or unit icons article??)

## File locations

### In-game interface objects

Extension: ilb
Contents: In-game interface objects, unit icons, map and squadron manager parts, in-game text etc.

See FON files for information on how to define the interface elements.
See Unit icons for an in-depth example.

### Other interface objects

Extension: ilb
Contents: Mission briefing icons and some interface objects.

See FON files for information on how to define the interface elements.

### Mission briefing maps

Location: \<leveldir>\mbpix\
Alternative location: \<mbpix-dir>\
Extension: iff (usually; not necessarily)
Contents: Mission briefing and debriefing maps

See the level files article for information on how to set briefing maps for levels.

Location: \<leveldir>\bg\
Extension: iff (usually; not necessarily)
Contents: Menu backgrounds, mission briefing backgrounds and level selection screen

Most of these files are defined in world.ini. Some files may be unused by the game.

Extension: ilb

### Mouse pointers

Extension: ilb
Contents: Mouse pointers

### Remapping files

Extension: ilb
Contents: Unknown

This folder contains two files but only one of them is an ILBM file - the other is a VBMP file. The files should have identical content. These files are related to shading or something. Edit these at your own risk.

### Fix Me!

Related to 3D model effects

## Editing

Most image editors do not support ILBM files natively. A recommended way to edit them is to convert them to BMP first, then edit, and finally convert them back to ILBM.

ILBM files support RLE compression but it's not well-known if UA supports it as well. It's recommended to save them without compression.

### Software

XnView can open and convert ILBM files into other formats.

ImageMagick can be used to view and convert ILBM files on Linux. It requires the Netpbm tools for ILBM support.

IrfanView should also be able to open ILBM files but may require additional plugins.

GIMP is a good image editor for many purposes. Direct support for ILBM might be possible via a plugin.

Ultimate Paint can edit ILBM files natively but it may have problems with the color palette.

## Handling the color palette

confirmation needed.

The ILBM files used by UA have 256 indexed colors. The files contain their own 256-color palette but it is apparently only used in hardware rendering mode. In software rendering mode, the default palette is used instead.

To make sure that the graphics look the same and are displayed properly in both hardware and software rendering mode, the files should always be edited according to the default palette. If needed, the default palette can be loaded from the stock image files. It's also stored separately in the Standard.pal file. See color palettes article for more information about palettes.

It's important to make sure that the file is saved with the correct palette after editing. Additionally, if the image is converted into another color mode, special care should be taken when converting it back to 256-color mode.

The transparent color used in many interface graphic files is apparently recognized by its RGB value which is 0xFFFF00. It's not known if it's also recognized by its index under certain circumstances.

The level selection mask (e.g. MASKE.iff) is a special case. It uses color indices as level identifiers and the palette is only used to aid in editing.

## Notes

Some interface files have a specific size which is either hard-coded or defined elsewhere (e.g. in world.ini). It's important to keep the images in correct size.

Even though the in-game interface object files (data\fonts) do not seem to have fixed sizes, they should not be enlarged too much (at all?). UA may crash if the files are too large.