IFF
| Dan Tobias  (Talk | contribs) m |  (→FORM type cross-reference:  typo) | ||
| (72 intermediate revisions by 9 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {| | + | {{FormatInfo | 
| − | | | + | |formattype=electronic | 
| − | |  | + | |subcat=Metaformats | 
| − | | | + | |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]].'' | |
| − | + | '''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.  | + | |
| − | + | == Format details == | |
| − | + | 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]]. | |
| − | + | ||
| − | + | ||
| − | == | + | 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 </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>FANT</code> || [[Fantavision]] || | ||
| + | |- | ||
| + | | <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>MLDF</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/ | + | ** [http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com] | 
| − | *  | + | * [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 14:39, 23 July 2025
- 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 | |
| FANT | Fantavision | |
| 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 | 
| MLDF | 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 (FOR1instead ofFORM)
-  Microsoft's RIFF and RIFX formats are based on IFF (RIFF uses little-endian byte order instead, and the root chunk is called RIFFinstead ofFORM)
- Apple's AIFF and AIFC formats are similar to IFF/RIFF as well
- Maya IFF
- IFF (The Sims)
[edit] Specifications
-  The EA IFF-85 Repository
- EA IFF 85 - January 14, 1985 (Updated Oct, 1988 Commodore-Amiga, Inc.)
- A Quick Introduction to IFF
- IFF Retrospective by Jerry Morrison, 2013
- 64-bit IFF (abandoned)
 
- EA IFF 85 (Updated October, 1988 Amiga, Inc.) - From AmigaOS Documentation Wiki
- The original EA spec
- IFF.TXT - A concatenation of about a dozen IFF-related documents, from FileFormat.Info

