LIF (Knowledge Dynamics)
(→Format details) |
|||
Line 27: | Line 27: | ||
|16 || 8 || 4 || Original size | |16 || 8 || 4 || Original size | ||
|- | |- | ||
− | |24 || 4 || 2 || 16- | + | |24 || 4 || 2 || CRC of compressed data. The CRC algorithm seems to be the one named "CRC-16/IBM-3740" by the [https://reveng.sourceforge.io/crc-catalogue/16.htm CRC RevEng catalogue] (a slight variant of [[CRC-16#CRC-16/XMODEM|CRC-16/XMODEM]]). |
|- | |- | ||
− | |28 || 4 || 2 || | + | |28 || 4 || 2 || CRC of uncompressed data |
|- | |- | ||
− | |32 || 2 || 1 || Compression method | + | |32 || 2 || 1 || Compression method |
|- | |- | ||
|34 ||colspan="2"| 20 || Filename, NUL-padded. This 20-byte field might use as little as 12 bytes for the filename, with the remaining bytes having an undetermined purpose. | |34 ||colspan="2"| 20 || Filename, NUL-padded. This 20-byte field might use as little as 12 bytes for the filename, with the remaining bytes having an undetermined purpose. | ||
Line 37: | Line 37: | ||
=== Compression methods === | === Compression methods === | ||
− | + | Method 1 is uncompressed. Method 2 is [[LZW]], possibly the same as [[Zoo]]. Method 3 has been observed, but is unidentified. | |
+ | |||
+ | FWIW, there is a "Knowledge Dynamics LZW COMPRESSOR" format that was used in some video games: [https://moddingwiki.shikadi.net/wiki/CC_Format], via [https://moddingwiki.shikadi.net/wiki/Knowledge_Dynamics_LZW_COMPRESSOR]. However, it seems different from the LZW compression used in LIF. | ||
== Sample files == | == Sample files == |
Revision as of 17:11, 9 December 2023
.LIF is an installer-archive format, apparently associated with INSTALL for DOS, by Knowledge Dynamics Corporation. See RED (Knowledge Dynamics) for more information about INSTALL.
This article covers the LIF format that begins with a string of ASCII-encoded hex digits. Note that the presumed successor format, RED, also sometimes uses the .LIF filename extension.
Contents |
Format details
File structure
A LIF file consists of a sequence of member file segments. Each member consists of a 54-byte header, then the file data, which is usually compressed.
The header starts with 34 bytes of ASCII-encoded hex digits. A filename follows. The bytes at offset 8 through 15 encode the compressed data size, which is needed to locate the next member.
Header structure
The 54-byte member header seems to have the following structure:
Offset | Size (in file) | Size (decoded) | Description |
---|---|---|---|
0 | 8 | 4 | DOS date, time |
8 | 8 | 4 | Compressed size |
16 | 8 | 4 | Original size |
24 | 4 | 2 | CRC of compressed data. The CRC algorithm seems to be the one named "CRC-16/IBM-3740" by the CRC RevEng catalogue (a slight variant of CRC-16/XMODEM). |
28 | 4 | 2 | CRC of uncompressed data |
32 | 2 | 1 | Compression method |
34 | 20 | Filename, NUL-padded. This 20-byte field might use as little as 12 bytes for the filename, with the remaining bytes having an undetermined purpose. |
Compression methods
Method 1 is uncompressed. Method 2 is LZW, possibly the same as Zoo. Method 3 has been observed, but is unidentified.
FWIW, there is a "Knowledge Dynamics LZW COMPRESSOR" format that was used in some video games: [1], via [2]. However, it seems different from the LZW compression used in LIF.
Sample files
- dosdrvrs.zip → *.LIF
- FINDEMO1.ZIP → *.LIF
- ORIGINWM.ZIP → *.LIF