IFF Dateiformat

Aufbau einer IFF Datei

IFF Header
Block 1
...
Block N

Der IFF-Header

Die Angabe der Länge ist erforderlich
OffsetLängeWert, Beschreibung
0x004'FORM' - Signatur
0x044Dateigrösse in Bytes (Big-Endian Format)
0x084Dateityp (z.B. 'ILBM')

Aufbau eines IFF-Blocks (Chunk)

Ein Block beginnt stets an einer geraden Adresse. Wenn ein Block eine ungerade Länge aufweist, wird ein Füllbyte (0) angehängt. Dieses wird in der Längenangabe natürlich nicht berücksichtigt (sonst könnte man ja ein echtes Nullbyte nicht von einem Füllbyte unterscheiden).
LängeWert, Beschreibung
4Blockname
4Blocklänge in Bytes (Big-Endian Format)
variabelDaten

Verschiedene IFF-Dateitypen und Ihre Blocks

SignaturTyp, Beschreibung
ILBMGrafikdatei (Interleaved Bitmap)
8SVX8-Bit Audio Sample
SMUSMusikdaten

Blocks von ILBM-Grafikdateien

SignaturTyp, Beschreibung
BMHDBitmap Header
CMAPColor Map
CRNGColor Cycle CHUNK von DPaint
CCRTColor Cycle CHUNK von Graphicraft
BODYBitmapdaten der Grafik
Aufbau BMHD-Block:
Offset	Bytes	Bemerkung
0	4	'BMHD'
4	4	Länge des Blocks = 20 (0x14)
8	2	Breite des Bilds in Pixeln
0x0a	2	Höhe des Bilds in Pixeln
0x0c	2	X-Koordinate obere linke Bildecke (meist 0)
0x0e	2	Y-Koordinate obere linke Bildecke (meist 0)
0x10	1	Anzahl Bitplanes
0x11	1	reserviert
0x12	1	Codierung (0=ungepackt, 1=komprimiert)
0x13	3	reserviert
0x16	1	Breite eines Pixels (x-aspect ratio)
0x17	1	Höhe eines Pixels (y-aspect ratio)
0x18	2	Maximale Bildbreite (x-max)
0x1A	2	Maximale Bildhöhe (y-max)
Aufbau CMAP-Block:
Offset	Bytes	Bemerkung
0	4	'CMAP'
4	4	Länge des Blocks in Byte (3*n, n=Anzahl Farben)
8	3*n	Farbtabelle für n Farben (je 1 Byte für Rot,Grün,Blau-Anteil)

Blocks von 8SVX-Tondateien

SignaturTyp, Beschreibung
BODYSample-Daten
ATAKHüllkurve Einschwinginfo
RLSEHüllkurve Ausschwinginfo
NAMEName des Klangs
AUTHName des Autors
(C) Copyright-Vermerk