The Longest Journey ISN

From XentaxWiki
Jump to: navigation, search

ISN/ISS/SSN


Format Specifications

Note: This file type can only be found in the original 4 CD-release of The Longest Journey. Newer variants (such as the 2 CD- or 1 DVD-version) use the OVS type instead.

An ISN, ISS or SSN file contains sound that can be stored by means of one of several codecs, regardless of the file extension. Its header structure is a bit unusual, as it is a collection of space-delimited (!) strings. It starts with the codec description:

// ISN/ISS/SSN header
char {X} - Codec

The codec value determines the procedure for the rest of the file. After the delimiting space character (0x20), the specialized header for the codec follows. Currently, the codec types "Sound" and "IMA_ADPCM_Sound" are known. No others have been observed up to now.

Sound codec

The codec-specific header in this case is structured as follows:

// Sound header
char {X} - Unknown
char {X} - Data size
char {X} - Channels
char {X} - Unknown
char {X} - Frequency
char {X} - Unknown
char {X} - Unknown

Notes:

  • The channel value has to be increased by 1 to get the correct value.
  • The frequency value is only saved indirectly. The real frequency in Hertz can be computed by dividing 44100 by the read value.

The actual data that follows is comprised of simple raw 16 bit PCM samples.

IMA_ADPCM_Sound codec

The codec-specific header in this case is structured as follows:

// IMA_ADPCM_Sound header
char {X} - Block size
char {X} - Unknown
char {X} - Unknown
char {X} - Channels
char {X} - Unknown
char {X} - Frequency
char {X} - Unknown
char {X} - Data size

As with the Sound codec explained above, the channels and frequency values have to be post-processed.

The following data is stored in 4-bit ADPCM coding, where each byte is expanded to two 16 bit PCM samples. The decompression algorithm is actually identical to the one described here [1]. If you are new to ADPCM coding, you should read this page [2] first.

MultiEx BMS

Not written yet

Supported Programs

Unknown