Chris Collins

Tools · retro

IFF ILBM pictures and 8SVX sounds

View Amiga IFF pictures — ILBM with HAM6, HAM8, EHB, hires and interlace, masks and pixel aspect — play 8SVX samples, browse the chunk tree of any IFF file, export PNG, and convert your own images to ILBM.

Added

Works with

How to use it

View — drop any IFF file (or click to choose). Nothing is uploaded.

  • ILBM pictures are decoded and shown at 1×–4× zoom; Correct pixel aspect stretches them by the BMHD aspect ratio so a lowres PAL screen looks the way it did on a monitor. The panel lists size, bitplanes, display modes from CAMG, compression, masking, and the palette. Download PNG saves what you see.

  • 8SVX samples show their header and waveform, with a Play button (Web Audio).

  • Every file shows its chunk tree — FORM, LIST, CAT ` and `PROP containers and their chunks, with sizes and offsets — so you can inspect anims, fonts, or anything else in IFF.

Convert to ILBM — drop a PNG, JPEG, GIF or WebP. Choose 2–32 colours, or EHB for 64, lowres or hires, a maximum size, dithering, and ByteRun1 compression. The preview is made by decoding the file that will be downloaded.

Format notes

  • IFF ("EA IFF 85") is big-endian chunks: a 4-character ID, a 32-bit length, data, and a pad byte to keep lengths even. FORM holds a 4-character type and nested chunks.

  • BMHD (20 bytes): width, height, x, y, bitplanes, masking (0 none, 1 mask plane, 2 transparent colour, 3 lasso), compression (0 none, 1 ByteRun1), transparent colour, x/y aspect, page size.

  • CMAP is RGB triplets. Old 12-bit writers stored only the high nibble ($F0); those values are scaled up to $FF.

  • CAMG is the Amiga display mode: $0800 HAM, $0080 EHB, $8000 hires, $0004 interlace, $0020 super hires. Files without CAMG are guessed: 6 planes with 16 colours is HAM, with 32 it is EHB.

  • BODY stores each row as one row of every bitplane in turn (then the mask plane), each padded to a 16-bit word. ByteRun1: control byte n = 0…127 copies n + 1 literal bytes; −1…−127 repeats the next byte −n + 1 times; −128 is a no-op.

  • HAM6: the top two bits of a pixel choose palette (00) or modify blue (01), red (10) or green (11) by the low four bits, holding the other components from the pixel to the left. HAM8 is the same with six data bits. EHB: colours 32–63 are 0–31 at half brightness.

  • 8SVX: VHDR gives one-shot and repeat lengths, the sample rate, octaves, compression (Fibonacci-delta is decoded), and volume; BODY is signed 8-bit samples.

Runs entirely in your browser; nothing you type leaves this page.