Interleaf File: Difference between revisions

From LEGO Island Wiki
Jump to navigation Jump to search
(Created page with "An Interleaf file (extension '''.SI''') is a general purpose asset archive format designed for streaming from CD-ROM. It was developed by Mindscape for use throughout...")
 
No edit summary
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
An [[Interleaf file]] (extension '''.SI''') is a general purpose asset archive format designed for streaming from CD-ROM. It was developed by [[Mindscape]] for use throughout [[LEGO Island]].
An '''Interleaf File''' (extension '''.SI''') is a general-purpose asset archive format designed for streaming from CD-ROM. It was developed by [[Mindscape]] for use throughout [[LEGO Island]].


== Overview ==
== Overview ==
The Interleaf file format is exclusive to LEGO Island, and therefore was never officially documented publicly. All information known about this format has been through reverse engineering or interviews with game developers.
The Interleaf file format was originally thought to be exclusive to ''[[LEGO Island]]'', but has since also been discovered in earlier [[Mindscape]] games called ''{{Wikipedia|Warhammer: Shadow of the Horned Rat}}'' and ''{{Wikipedia|Chessmaster 5000}}''. Regardless, it remains an extremely obscure format and therefore is not well documented. All information known about this format has been through reverse engineering or interviews with game developers.


Interleaf files are derived from the {{Wikipedia|Resource Interchange File Format}} standard (best known as the basis of {{Wikipedia|Audio Video Interleave}} and {{Wikipedia|WAV}} files). They are comprised of various LEGO Island-specific structures (such as [[MxDa]] and [[MxCh]]), however these structures usually contain standard format file data (such as PCM WAV audio and Windows BMP images).
Interleaf files are derived from the {{Wikipedia|Resource Interchange File Format}} standard (best known as the basis of {{Wikipedia|Audio Video Interleave}} and {{Wikipedia|WAV}} files). They are comprised of various LEGO Island-specific structures (such as [[MxDa]] and [[MxCh]]), however these structures usually contain standard format file data (such as PCM WAV audio and Windows BMP images).
Line 8: Line 8:
The primary purpose of Interleaf files is to split various file formats into smaller chunks that are interleaved together so they can all be read as one continuous stream. For example, a chunk of voice data may be followed by a chunk of matching animation data or a bitmapped graphic. This is done to reduce the amount of seeking around the disc for assets since CD-ROM speeds of the era were generally very slow and end-user hard drive space was usually too limited to store much game data.
The primary purpose of Interleaf files is to split various file formats into smaller chunks that are interleaved together so they can all be read as one continuous stream. For example, a chunk of voice data may be followed by a chunk of matching animation data or a bitmapped graphic. This is done to reduce the amount of seeking around the disc for assets since CD-ROM speeds of the era were generally very slow and end-user hard drive space was usually too limited to store much game data.


Interleaf files were produced internally with a tool called '''The Weaver''', however this tool has never been publicly released.
Interleaf files were produced internally with a tool called [[Weaver]], however this tool has never been publicly released or leaked.
 
== Version ==
Interleaf files went through a number of revisions, as indicated by this error message that's thrown if an SI version doesn't match:
 
<center>[[File:WrongSIVersion.png]]</center>
 
The SI version is set in an SI file's [[MxHd]] section. The version used in both retail versions is 2.2.


== Modification ==
== Modification ==
Line 15: Line 22:
When working with Interleaf files, this interleaving needs to be taken account as it will dictate how the data is both extracted and inserted. One file stream may be separated into several chunks with chunks of other files interleaved between them.
When working with Interleaf files, this interleaving needs to be taken account as it will dictate how the data is both extracted and inserted. One file stream may be separated into several chunks with chunks of other files interleaved between them.


Since audio is stored in PCM, Interleaf files can be crudely listened to using Audacity's "Import Raw Data" feature. SI audio is always uncompressed mono PCM and is either 11025 Hz and 16-bit or 22050 Hz and 8-bit. Unfortunately due to the aforementioned chunked/interleaved nature of SI files, the audio retrieved through this method will be noticeably glitchy and will require further processing (removal of chunk headers and any non-audio chunks) to extract clean PCM data.
Since audio is stored in PCM, Interleaf files can be crudely listened to using Audacity's "Import Raw Data" feature. SI audio is always uncompressed mono PCM and is either 11025 Hz and 16-bit or 22050 Hz and 8-bit. Unfortunately, due to the aforementioned chunked/interleaved nature of SI files, the audio retrieved through this method will be noticeably glitchy and will require further processing (removal of chunk headers and any non-audio chunks) to extract clean PCM data.


== See also ==
== See also ==
* [[JUKEBOX.SI]]
* [[JUKEBOX.SI]]
* [[NOCD.SI]]

Latest revision as of 06:48, 20 April 2024

An Interleaf File (extension .SI) is a general-purpose asset archive format designed for streaming from CD-ROM. It was developed by Mindscape for use throughout LEGO Island.

Overview

The Interleaf file format was originally thought to be exclusive to LEGO Island, but has since also been discovered in earlier Mindscape games called Warhammer: Shadow of the Horned Rat and Chessmaster 5000. Regardless, it remains an extremely obscure format and therefore is not well documented. All information known about this format has been through reverse engineering or interviews with game developers.

Interleaf files are derived from the Resource Interchange File Format standard (best known as the basis of Audio Video Interleave and WAV files). They are comprised of various LEGO Island-specific structures (such as MxDa and MxCh), however these structures usually contain standard format file data (such as PCM WAV audio and Windows BMP images).

The primary purpose of Interleaf files is to split various file formats into smaller chunks that are interleaved together so they can all be read as one continuous stream. For example, a chunk of voice data may be followed by a chunk of matching animation data or a bitmapped graphic. This is done to reduce the amount of seeking around the disc for assets since CD-ROM speeds of the era were generally very slow and end-user hard drive space was usually too limited to store much game data.

Interleaf files were produced internally with a tool called Weaver, however this tool has never been publicly released or leaked.

Version

Interleaf files went through a number of revisions, as indicated by this error message that's thrown if an SI version doesn't match:

WrongSIVersion.png

The SI version is set in an SI file's MxHd section. The version used in both retail versions is 2.2.

Modification

As aforementioned, no official documentation of Interleaf files has ever been released. There are a handful of tools for working with them (e.g. LEGO Island Rebuilder), but none with a complete implementation. Therefore, manual hex editing is often used to replace or extract assets.

When working with Interleaf files, this interleaving needs to be taken account as it will dictate how the data is both extracted and inserted. One file stream may be separated into several chunks with chunks of other files interleaved between them.

Since audio is stored in PCM, Interleaf files can be crudely listened to using Audacity's "Import Raw Data" feature. SI audio is always uncompressed mono PCM and is either 11025 Hz and 16-bit or 22050 Hz and 8-bit. Unfortunately, due to the aforementioned chunked/interleaved nature of SI files, the audio retrieved through this method will be noticeably glitchy and will require further processing (removal of chunk headers and any non-audio chunks) to extract clean PCM data.

See also