From Just Solve the File Format Problem
Jump to: navigation, search
File Format
Name AIN
Extension(s) .ain
Released ≤1993

AIN is a compressed archive format, produced by a DOS shareware program of the same name. It was developed by InfoService Ltd., later Transas Marine Ltd.


Format details

The v2.2 documentation says "AIN version 2.2 archive format is incompatible with that of AIN version 2.0." But, no versions before 2.1 have been found.

None of the compression methods used in AIN seem to be publicly known.

An AIN file consists of an archive header, then a segment for the file data, then an index at the end of the file. The index is evidently compressed.

Archive header

[Incomplete information, based on reverse engineering. Written for the wiki.]

The first 24 bytes of the file are the archive header. Byte order is little-endian.

Offset Size Description
0 1 Unknown, observed to be 0x21.
1 1 /u setting (high 4 bits), /m setting (low 4 bits)
2 1 Unknown, observed to be 0.
3 1 Flags: 0x80=garbled, 0x40=more fragments follow
4 2 Data related to garbled archives. 0 if not garbled.
6 2 Volume number (0=first)
8 2 Number of member files
10 4 Archive timestamp
14 4 Location of index
18 2 Index checksum: low 16 bits of {sum of bytes from {location of index} through EOF}.
20 2 Unknown, observed to be 0.
22 2 Header checksum: {sum the first 22 bytes} xor 0x5555.


AIN also includes an executable compression utility named AINEXE. It compresses DOS EXE files.

Self-extracting archives

Some versions support self-extracting archives, in DOS EXE format.

Version 2.23: The distribution includes an AINSFX.EXE file, which seems to be undocumented, but can be prepended to an AIN archive to create a self-extracting archive.

Version 2.32: The included AINEXT.EXE extraction utility doubles as the self-extractor module. You can prepend it to an AIN archive to create a self-extracting archive. Or you can use AIN's -e option to create a self-extracting archive instead of an .AIN archive (this requires that AINEXT.EXE be present). Note that AINEXT.EXE may report its version number to be 2.31.


Robust identification of AIN format is nontrivial. The software itself uses the header checksum and index checksum.

An AIN file with default settings starts with (hex bytes) 21, has 00 00 00 00 00 00 at offset 2, and 00 00 at offset 20.

Some of the bits at the end of the file might also help to identify AIN, but they are not byte-aligned.

AINEXE-compressed EXE files most likely have ASCII "AIN" at offset 32.


Sample files

Personal tools