15 September 2026
Converting Truevision VDA to PNG: Historical TARGA Video Graphics Decoding
Converting Truevision VDA to PNG: Historical TARGA Video Graphics Decoding
In 1984, AT&T and Truevision introduced the world's first truecolor video capture and display hardware for IBM PC compatibles. Alongside the famous TARGA (Truevision Advanced Raster Graphics Adapter) standard, Truevision shipped specialized imaging boards named VDA (Video Display Adapter), ICB (Image Capture Board), and VST (Video Solid State).
Each hardware product used its own file extension (.vda, .icb, .vst), though they all conformed to the foundational 18-byte Truevision binary header specification. Because modern photo viewers and web browsers rarely recognize the .vda or .icb extensions, converting them into standard transparent 32-bit RGBA PNG files is critical for retro preservation and game modding.
1. The Truevision 18-Byte Header Specification
All Truevision raster formats share an identical 18-byte header:
| Offset | Field | Description |
|---|---|---|
| 0x00 | ID Length | Length of arbitrary text metadata preceding the image pixels |
| 0x01 | Color Map Type | 0 = No palette, 1 = Indexed color palette present |
| 0x02 | Image Type | 1 = Colormapped, 2 = Truecolor RGB, 3 = Grayscale, 9/10/11 = RLE compressed |
| 0x03 | Color Map Spec | 5 bytes: start index, palette length, and palette bit depth |
| 0x08 | Image Spec | 10 bytes: X/Y origin, width, height, pixel depth, and image descriptor |
2. Supported Color Depths and Orientations
Truevision images store pixels in little-endian order across diverse color configurations:
- 8-bit Indexed: 256 color map palette entries in 15-bit, 24-bit, or 32-bit formats.
- 15-bit & 16-bit Highcolor: 5 bits per RGB component plus 1 overlay or alpha bit.
- 24-bit Truecolor: Raw Blue-Green-Red (BGR) byte triplets.
- 32-bit RGBA: BGR channels accompanied by an 8-bit linear alpha channel.
The image descriptor byte at offset 17 flags whether scanlines are ordered bottom-up (the traditional Truevision hardware convention) or top-down. convrtr transparently flips bottom-up rasters to match standard PNG scanline coordinates.
3. Run-Length Encoding (RLE) Decompression
For compressed types (9, 10, and 11), pixels are encoded using byte-oriented packets:
- Run-Length Packet (Bit 7 = 1): Repeat the following pixel
(count & 0x7F) + 1times. - Raw Packet (Bit 7 = 0): Read the next
count + 1distinct pixels uncompressed.
convrtr inflates RLE runs directly into a continuous 32-bit RGBA pixel array before encoding with its pure in-browser PNG encoder.
4. Zero-Server Private Conversion
All Truevision header inspection, color map indexing, RLE decompression, and PNG compression occur 100% locally within your browser sandbox. No graphics or sensitive video frames ever leave your device.
Related reading
Converting Quite OK Image (QOI) to PNG: Fast Lossless Compression Architecture
Explore Dominic Szablewski's Quite OK Image (.qoi) specification. Understand 14-byte headers, 64-color hash indexing, byte-aligned opcodes, and browser-based PNG rendering.
Converting Radiance HDR (RGBE) to PNG: Floating-Point Tone Mapping Architecture
Explore Greg Ward's Radiance 32-bit RGBE (.hdr) architecture. Learn how shared exponents, adaptive RLE scanlines, Reinhard tone reproduction, and sRGB gamma curves decode in browser memory.
Converting Amiga ACBM to PNG: Continuous Planar Bitmaps and Blitter DMA
Explore the Commodore Amiga Continuous Bitmap (ACBM) format. Learn how non-interleaved planar memory, ByteRun1 RLE decompression, and 24-bit TrueColor planes convert into lossless modern PNG images.
Converting Better Portable Graphics (BPG) to PNG: HEVC-Derived Image Decoding
Discover Fabrice Bellard's Better Portable Graphics (.bpg) format. Learn how HEVC intra-frame compression, LEB128 variable headers, and YCbCr color spaces convert to standard PNG.
Converting Blizzard BLP Textures to PNG: Warcraft III & WoW Asset Decoding
Decode Blizzard Entertainment's BLP1 and BLP2 texture formats from Warcraft III and World of Warcraft into transparent 32-bit RGBA PNG images 100% in your browser.
Converting Quake II WAL Textures to PNG: id Tech 2 Mipmapped Raster Decoding
Explore id Software's Quake II WAL texture format. Learn how 100-byte headers, 4-level precomputed mipmaps, and 256-color colormaps convert into 32-bit RGBA PNG graphics.
Converting MNG Animated Graphics to PNG: Unpacking Multi-Image PNG Containers
Explore Multiple-image Network Graphics (MNG), PNG's ambitious animated sibling. Learn how MHDR, IHDR, and IDAT chunk streams extract into standalone 32-bit RGBA PNGs.
Converting Kodak Photo CD PCD to PNG: Rescuing 1990s Film Scans
Learn how Kodak Photo CD (.pcd) Image Pac archives store multi-resolution 35mm film scans. Discover PhotoYCC color space decoding to 32-bit RGBA PNG.
Converting Camera RAW and DNG to PNG: Extracting Lossless Sensor Previews
Discover how digital camera RAW and Adobe DNG files encapsulate sensor data and high-resolution previews. Learn how to convert RAW to PNG directly in the browser.