LHA

From Just Solve the File Format Problem
Revision as of 17:02, 10 July 2017 by Jsummers (Talk | contribs)

Jump to: navigation, search
File Format
Name LHA
Ontology
Extension(s) .lha, .lzh
MIME Type(s) application/x-lzh-compressed
PRONOM fmt/626
Kaitai Struct Spec lzh.ksy
Released 1988

LHA is an archiving program and file format created by Haruyasu Yoshizaki in 1988. It was originally called LHArc, then was briefly LH before settling on LHA. In the 1990s it was the most popular archiving format on the Amiga platform, and also got some use on the PC platform including in the installers for id Software games such as Doom and Quake, because ZIP compression was inferior until the release of PKZIP 2.0, which brought the formats to parity. At present, it is mostly used in Japan.

The file format is also known as LZH.

Contents

Format details

LHA consists of a sequence of elements, each representing a member file or directory. There is no global archive-level header.

There are at least four different formats that an element can have. (Note that this is independent of compression schemes.) In LHA jargon, the formats are known as "header levels". The formats are sometimes called "header level 0", "1", "2", and "3".

The format of an element is determined by the byte at offset 20 from the beginning of that element. It is possible for different formats to be used in the same LHA file.

The formats are similar, but infuriatingly different. They don't even follow the same principles with respect to parsing logic.

Identification

Bytes '-' 'l' ?? ?? '-' appear at offset 2. This is not a global file signature, but represents the compression scheme of the first member file of the archive.

Format documentation

Software

Sample files

Other links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox