IFF
Line 5: | Line 5: | ||
|locfdd={{LoCFDD|fdd000115}} | |locfdd={{LoCFDD|fdd000115}} | ||
|pronom={{PRONOM|x-fmt/157}} | |pronom={{PRONOM|x-fmt/157}} | ||
+ | |released=1985 | ||
}} | }} | ||
:''This article is about the generic IFF metaformat. For the IFF '''image format''', see [[ILBM]].'' | :''This article is about the generic IFF metaformat. For the IFF '''image format''', see [[ILBM]].'' | ||
− | '''IFF''' (Interchange File Format) is a file format introduced by Electronic Arts on the Commodore Amiga computer | + | '''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'''. |
− | + | == 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 [[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 == | == Identification == | ||
− | Most IFF files begin with the ASCII characters "<code>FORM</code>". | + | 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>". |
+ | |||
+ | == IFF-based formats == | ||
+ | Formats based on IFF include: | ||
+ | * [[ILBM]]: Bitmap image | ||
+ | * [[8-Bit Sampled Voice|8SVX]]: Audio sample data | ||
+ | * [[ANIM]] | ||
+ | |||
+ | See [[:Category:IFF based file formats]] for more. | ||
+ | |||
+ | == 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]] | ||
+ | |||
+ | == Specifications == | ||
* [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec] ([http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com]) | * [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec] ([http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com]) | ||
+ | |||
+ | == Links == | ||
* [http://wiki.amigaos.net/wiki/IFF_FORM_and_Chunk_Registry IFF chunk registry], defining all known chunks | * [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://wiki.amigaos.net/wiki/IFF_Source_Code IFF Source Code] | ||
* [http://rewiki.regengedanken.de/wiki/.IFF REWiki: .IFF] | * [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.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://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:IFF based file formats]] |
Revision as of 13:02, 15 February 2015
- This article is about the generic IFF metaformat. For the IFF image format, see ILBM.
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 |
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.
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
".
IFF-based formats
Formats based on IFF include:
See Category:IFF based file formats for more.
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 ofFORM
) - 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 ofFORM
) - Apple's AIFF and AIFC formats are similar to IFF/RIFF as well
- Maya IFF