LIF (Knowledge Dynamics)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Format details)
Line 27: Line 27:
 
|16 || 8 || 4 || Original size
 
|16 || 8 || 4 || Original size
 
|-
 
|-
|24 || 4 || 2 || 16-bit checksum or CRC (unidentified)
+
|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 || 16-bit checksum or CRC (unidentified)
+
|28 || 4 || 2 || CRC of uncompressed data
 
|-
 
|-
|32 || 2 || 1 || Compression method(?). Values "01", "02", and "03" have been observed, with "01" meaning uncompressed.
+
|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 ===
At least one of the compression methods appears to be a form of [[LZW]]. (TODO: Check if it could be the one described at [https://moddingwiki.shikadi.net/wiki/CC_Format], via [https://moddingwiki.shikadi.net/wiki/Knowledge_Dynamics_LZW_COMPRESSOR].)
+
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

File Format
Name LIF (Knowledge Dynamics)
Ontology
Extension(s) .lif
Released ≤1989

.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

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox