IFF

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Overview: add Erlang)
(FORM type cross-reference)
 
(67 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{FormatInfo
 
{{FormatInfo
 
|formattype=electronic
 
|formattype=electronic
|subcat=Graphics
+
|subcat=Metaformats
|extensions={{ext|iff}}
+
|extensions={{ext|iff}}, many others
 +
|locfdd={{LoCFDD|fdd000115}}
 +
|pronom={{PRONOM|x-fmt/157}}
 +
|released=1985
 
}}
 
}}
 +
:''This article is about the generic IFF metaformat. For the IFF '''image format''', see [[ILBM]]. For Sun IFF, see [[Sun TAAC image]].''
  
==Overview==
+
'''IFF''' ('''Interchange File Format''') is a general-purpose binary file format introduced by Electronic Arts on the Commodore Amiga computer in 1985. It is sometimes known as '''IFF 85'''.
'''IFF''' (Interchange File Format) is a file format introduced by Electronic Arts on the Commodore Amiga computer. Its structure is similar to [[RIFF]] or [[PNG]], using various self-contained chunks to contain different data.
+
  
Although ''IFF'' is most commonly used as an image format (using the file extension <code>.iff</code>), it can actually hold a lot of different data types. Some examples of IFF files are
+
== Format details ==
*[[LBM]] images
+
An IFF file is composed of elements called "chunks". Each chunk consists of a [[FourCC|4-byte type identifier]] (represented by four ASCII characters), a 4-byte length, and the chunk's payload data. Some types of chunks contain a sequence of nested chunks. Multi-byte numeric values are [[Endianness|big-endian]].
*[[XMI]] XMidi music files
+
*[[8-Bit Sampled Voice|8SVX]] audio sample data
+
* Erlang BEAM compiled modules [http://www.erlang.org/doc/man/beam_lib.html]
+
  
==Resources==
+
IFF defines a number of standard chunks types. Additional types are invented as needed by IFF-based formats.
 +
 
 +
Of particular significance is chunk type <code>FORM</code>. Most IFF-based files are formatted as a single <code>FORM</code> chunk. A <code>FORM</code> chunk's data contains a four-byte "FORM type" code, indicating the data type, followed by a sequence of nested chunks.
 +
 
 +
An IFF-based format whose FORM type is ''xxxx'' might be referred to as "FORM ''xxxx''". FORM types may also be used as filename extensions.
 +
 
 +
== Identification ==
 +
Most IFF files begin with the ASCII characters "<code>FORM</code>". The file type is then indicated by the 4-byte ASCII code beginning at offset 8.
 +
 
 +
There are also aggregate formats that begin with "<code>LIST</code>" or "<code>CAT&nbsp;</code>".
 +
 
 +
== FORM type cross-reference ==
 +
Selected FORM types, and related articles, are listed below. See also [[:Category:IFF based file formats]].
 +
 
 +
{| class="wikitable"
 +
! FORM type
 +
! Refer to
 +
! Remarks
 +
|-
 +
| <code>8SVX</code> || [[8-Bit Sampled Voice]] || 8-bit sampled sound voice; listed in the original IFF spec.
 +
|-
 +
| <code>ACBM</code> || [[ILBM#ACBM]] ||
 +
|-
 +
| <code>AIFC</code> || [[AIFC]] ||
 +
|-
 +
| <code>AIFF</code> || [[AIFF]] ||
 +
|-
 +
| <code>AMFF</code> || [[Amiga Metafile]] ||
 +
|-
 +
| <code>ANBM</code> || || Animated bitmap; listed in the original IFF spec.
 +
|-
 +
| <code>ANIM</code> || [[ANIM]] ||
 +
|-
 +
| <code>CMUS</code> || [[DeLuxe Music Score]] ||
 +
|-
 +
| <code>CTLG</code> || || Amiga Catalog translaton format
 +
|-
 +
| <code>D3TV</code> || [[D3TV]] ||
 +
|-
 +
| <code>DEEP</code> || [[IFF-DEEP]] ||
 +
|-
 +
| <code>DR2D</code> || [[DR2D]] ||
 +
|-
 +
| <code>FAXX</code> || [[FAXX]] ||
 +
|-
 +
| <code>FNTR</code> || || Raster font; listed in the original IFF spec.
 +
|-
 +
| <code>FNTV</code> || || Vector font; listed in the original IFF spec.
 +
|-
 +
| <code>FTXT</code> || [[FTXT]] || Formatted text; listed in the original IFF spec.
 +
|-
 +
| <code>GSCR</code> || || General-use musical score; listed in the original IFF spec.
 +
|-
 +
| <code>ICON</code> || [[GlowIcons]] ||
 +
|-
 +
| <code>IFRS</code> || [[Blorb]] ||
 +
|-
 +
| <code>ILBM</code> || [[ILBM]] || Interleaved raster bitmap image; listed in the original IFF spec.
 +
|-
 +
| <code>IMAG</code> || [[CD-I IFF IMAG]] ||
 +
|-
 +
| <code>LWLO</code>, <code>LWOB</code>, <code>LWO2</code> || [[LightWave Object]]
 +
|-
 +
| <code>MAUD</code> || [[IFF-MAUD]] || Amiga sound format
 +
|-
 +
| <code>MAUD</code> || [[MLDF]] || Unknown graphics format
 +
|-
 +
| <code>PBM</code> || [[ILBM#PBM]] ||
 +
|-
 +
| <code>PDEF</code> || || Deluxe Print page definition; listed in the original IFF spec.
 +
|-
 +
| <code>PICS</code> || || Macintosh picture; listed in the original IFF spec.
 +
|-
 +
| <code>PLBM</code> || || (obsolete); listed in the original IFF spec.
 +
|-
 +
| <code>RGFX</code> || [[RGFX]] ||
 +
|-
 +
| <code>SCDH</code> || || Sim City 2000 saved city (*.sc2)
 +
|-
 +
| <code>SMUS</code> || [[SMUS]] || Simple musical score; listed in the original IFF spec. [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/SMUS.pdf]
 +
|-
 +
| <code>SSA </code> || [[IFF-SSA]] || ClariSSA Super smooth Animation
 +
|-
 +
| <code>TDDD</code> || [[TDDD]], [[Imagine Object File]]
 +
|-
 +
| <code>USCR</code> || || Uhuru Sound Software musical score; listed in the original IFF spec.
 +
|-
 +
| <code>UVOX</code> || || Uhuru Sound Software Macintosh voice; listed in the original IFF spec.
 +
|-
 +
| <code>VAXL</code> || [[VAXL]] || Unknown animation format
 +
|-
 +
| <code>VDEO</code> || [[VDEO]] || Deluxe Video Construction Set video; listed in the original IFF spec.
 +
|}
 +
 
 +
== Variant formats ==
 +
Some other formats are largely or heavily influenced by the IFF standard, but are not compatible. These include, for example:
 +
* Erlang [[BEAM]] compiled modules: Uses 4 byte alignment instead of 2 byte, and the root chunk has a different ID (<code>FOR1</code> instead of <code>FORM</code>)
 +
* Microsoft's [[RIFF]] and [[RIFX]] formats are based on IFF (RIFF uses [[Endianness|little-endian]] byte order instead, and the root chunk is called <code>RIFF</code> instead of <code>FORM</code>)
 +
* Apple's [[AIFF]] and [[AIFC]] formats are similar to IFF/RIFF as well
 +
* [[Maya IFF]]
 +
* [[IFF (The Sims)]]
 +
 
 +
== Specifications ==
 +
* [http://1fish2.github.io/IFF/ The EA IFF-85 Repository]
 +
** [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/EA%20IFF%2085.pdf EA IFF 85] - January 14, 1985 (Updated Oct, 1988 Commodore-Amiga, Inc.)
 +
** [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/IFF%20Quick%20Intro.pdf A Quick Introduction to IFF]
 +
** [https://github.com/1fish2/IFF/blob/master/IFF%20retrospective.md IFF Retrospective] by Jerry Morrison, 2013
 +
** [https://github.com/1fish2/IFF/blob/master/64-bit%20IFF.md 64-bit IFF] (abandoned)
 +
* [http://wiki.amigaos.net/wiki/EA_IFF_85_Standard_for_Interchange_Format_Files EA IFF 85] (Updated October, 1988 Amiga, Inc.) - From AmigaOS Documentation Wiki
 
* [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec]
 
* [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec]
* [http://wiki.amigaos.net/index.php/IFF_FORM_and_Chunk_Registry IFF chunk registry], defining all known chunks
+
** [http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com]
* ReWiki has a [http://rewiki.regengedanken.de/wiki/.IFF page] on IFF, including some details on the rare PBM variant of LBM
+
* [http://www.fileformat.info/format/iff/spec/7866a9f0e53c42309af667c5da3bd426/view.htm IFF.TXT] - A concatenation of about a dozen IFF-related documents, from FileFormat.Info
 +
 
 +
== Sample files ==
 +
* CTLG: {{DexvertSamples|other/iffCTLG}}
 +
 
 +
== Links ==
 +
* [http://wiki.amigaos.net/wiki/IFF_FORM_and_Chunk_Registry IFF chunk registry], defining all known chunks
 +
* [http://wiki.amigaos.net/wiki/IFF_Source_Code IFF Source Code]
 +
* [http://rewiki.regengedanken.de/wiki/.IFF REWiki: .IFF]
 +
* {{EGFF|iff|IFF File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]]
 +
* [http://www.textfiles.com/programming/FORMATS/admusfmt.pro 1994 "advanced music formats" discussion that covers some IFF formats]
 +
* [http://www.ibm.com/developerworks/library/pa-spec16/ IBM developerWorks: The Interchange File Format]
 +
* [http://sandervanderburg.blogspot.com/2012/06/iff-file-format-experiments.html IFF file format experiments]
 +
 
 +
[[Category:IFF based file formats| ]]
 +
[[Category:Audio and Music]]
 +
[[Category:Graphics]]
 +
[[Category:Video]]
 +
[[Category:Amiga]]
 +
[[Category:Electronic Arts]]

Latest revision as of 18:08, 28 December 2023

File Format
Name IFF
Ontology
Extension(s) .iff, many others
LoCFDD fdd000115
PRONOM x-fmt/157
Released 1985
This article is about the generic IFF metaformat. For the IFF image format, see ILBM. For Sun IFF, see Sun TAAC image.

IFF (Interchange File Format) is a general-purpose binary file format introduced by Electronic Arts on the Commodore Amiga computer in 1985. It is sometimes known as IFF 85.

Contents

[edit] Format details

An IFF file is composed of elements called "chunks". Each chunk consists of a 4-byte type identifier (represented by four ASCII characters), a 4-byte length, and the chunk's payload data. Some types of chunks contain a sequence of nested chunks. Multi-byte numeric values are big-endian.

IFF defines a number of standard chunks types. Additional types are invented as needed by IFF-based formats.

Of particular significance is chunk type FORM. Most IFF-based files are formatted as a single FORM chunk. A FORM chunk's data contains a four-byte "FORM type" code, indicating the data type, followed by a sequence of nested chunks.

An IFF-based format whose FORM type is xxxx might be referred to as "FORM xxxx". FORM types may also be used as filename extensions.

[edit] Identification

Most IFF files begin with the ASCII characters "FORM". The file type is then indicated by the 4-byte ASCII code beginning at offset 8.

There are also aggregate formats that begin with "LIST" or "CAT ".

[edit] FORM type cross-reference

Selected FORM types, and related articles, are listed below. See also Category:IFF based file formats.

FORM type Refer to Remarks
8SVX 8-Bit Sampled Voice 8-bit sampled sound voice; listed in the original IFF spec.
ACBM ILBM#ACBM
AIFC AIFC
AIFF AIFF
AMFF Amiga Metafile
ANBM Animated bitmap; listed in the original IFF spec.
ANIM ANIM
CMUS DeLuxe Music Score
CTLG Amiga Catalog translaton format
D3TV D3TV
DEEP IFF-DEEP
DR2D DR2D
FAXX FAXX
FNTR Raster font; listed in the original IFF spec.
FNTV Vector font; listed in the original IFF spec.
FTXT FTXT Formatted text; listed in the original IFF spec.
GSCR General-use musical score; listed in the original IFF spec.
ICON GlowIcons
IFRS Blorb
ILBM ILBM Interleaved raster bitmap image; listed in the original IFF spec.
IMAG CD-I IFF IMAG
LWLO, LWOB, LWO2 LightWave Object
MAUD IFF-MAUD Amiga sound format
MAUD MLDF Unknown graphics format
PBM ILBM#PBM
PDEF Deluxe Print page definition; listed in the original IFF spec.
PICS Macintosh picture; listed in the original IFF spec.
PLBM (obsolete); listed in the original IFF spec.
RGFX RGFX
SCDH Sim City 2000 saved city (*.sc2)
SMUS SMUS Simple musical score; listed in the original IFF spec. [1]
SSA IFF-SSA ClariSSA Super smooth Animation
TDDD TDDD, Imagine Object File
USCR Uhuru Sound Software musical score; listed in the original IFF spec.
UVOX Uhuru Sound Software Macintosh voice; listed in the original IFF spec.
VAXL VAXL Unknown animation format
VDEO VDEO Deluxe Video Construction Set video; listed in the original IFF spec.

[edit] Variant formats

Some other formats are largely or heavily influenced by the IFF standard, but are not compatible. These include, for example:

  • Erlang BEAM compiled modules: Uses 4 byte alignment instead of 2 byte, and the root chunk has a different ID (FOR1 instead of FORM)
  • Microsoft's RIFF and RIFX formats are based on IFF (RIFF uses little-endian byte order instead, and the root chunk is called RIFF instead of FORM)
  • Apple's AIFF and AIFC formats are similar to IFF/RIFF as well
  • Maya IFF
  • IFF (The Sims)

[edit] Specifications

[edit] Sample files

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox