Retro Graphics Viewer & Converter — C64 (.KOA, .ART) & ZX Spectrum (.SCR)
Bidirectional client-side C64 Koala (.KOA), Art Studio (.ART), ZX Spectrum (.SCR) & Font ROM viewer + PNG/JPG to 8-bit binary converter with Floyd-Steinberg dithering
Bidirectional Retro Graphics Viewer & Native Binary Converter
Switch between Viewer / Decoder Mode (inspect & export .koa, .art, .scr, and .bin files as PNG) and Converter / Encoder Mode (quantize & dither modern PNG/JPG/WebP images into authentic 8-bit .koa, .art, and .scr binaries).
.KOA / .PRG / .ART, ZX Spectrum .SCR, or Font .BIN here
.PNG, .JPG, or .WEBP Image to Encode into 8-Bit Binary
.koa / .art / .scr bytesHow to Use the Bidirectional Retro Graphics Viewer & Converter
This utility operates 100% inside your browser using HTML5 Canvas and typed JavaScript ArrayBuffer views. Whether you are inspecting raw binary dumps from a vintage floppy disk or encoding modern artwork into native 8-bit video RAM formats, no files are ever uploaded to a server.
A. Viewing & Decoding Retro Files (.KOA, .ART, .SCR, .BIN)
- Select 1. Viewer / Decoder Mode in the top mode bar.
- Drag and drop a Commodore 64 KoalaPaint (
.koa,.kla,.prg), C64 Art Studio (.art), ZX Spectrum screen dump (.scr), or raw 8×8 character ROM (.bin,.rom) onto the dropzone — or click one of the four built-in hardware test cards. - Switch between hardware colour profiles (VIC-II Pepto/Colodore PAL, VICE NTSC, ZX Spectrum ULA, or P31/P134 CRT Phosphor) and toggle 1x, 2x, or 4x integer scaling.
- Click Download Scaled PNG or Download 1x Native Pixel PNG to save a crisp, artifact-free modern PNG.
B. Converting Modern Images (PNG/JPG/WebP) to Native 8-Bit Formats
- Select 2. Converter / Encoder Mode in the top mode bar.
- Drop any modern
.png,.jpg, or.webpimage onto the converter dropzone (or click a built-in synth test image). - Choose your target binary format: C64 Koala (
.koa, 10,003 B), C64 Art Studio (.art, 9,002 B), or ZX Spectrum (.scr, 6,912 B). - Tune Floyd-Steinberg Error Dithering, Contrast, and Brightness while watching the live cell-constrained hardware preview update in real time, then click Download Encoded .KOA / .ART / .SCR File.
Hardware Limits & Binary Memory Maps
- Commodore 64 Multicolor KoalaPaint (
.KOA— 160×200 Double-Wide Pixels, 10,003 Bytes): Driven by the MOS 6567/6569 VIC-II. Bytes$0000–$0001store the$6000load address;$0002–$1F41(8,000 B) store the 2-bit-per-pixel bitmap;$1F42–$2329(1,000 B) store Screen Matrix RAM;$232A–$2711(1,000 B) store 2114 Colour SRAM nybbles; and$2712(1 B) stores the global background colour ($D021). Each 4×8 multicolor cell can display at most 3 unique cell colours plus the shared global background colour. - Commodore 64 Art Studio Hi-Res (
.ART— 320×200 Pixels, 9,002 Bytes): Uses a$2000load address header (2 B), an 8,000-byte 1-bit high-resolution bitmap, and 1,000 bytes of Screen RAM allowing 2 unique colours (1 foreground, 1 background) per 8×8 character cell. - Sinclair ZX Spectrum Screen Dump (
.SCR— 256×192 Pixels, 6,912 Bytes): Addressed by the ZX Spectrum ULA. Bytes$0000–$17FF(6,144 B) store the non-linear interleaved 1-bit pixel bitmap, followed by$1800–$1AFF(768 B) for the 32×24 colour attribute grid. Each 8×8 cell supports 2 colours (INKbits 0–2 andPAPERbits 3–5) sharing a singleBRIGHTbit (bit 6) andFLASHbit (bit 7).
Pro Tips for Best 8-Bit Conversion Results
- Boost Contrast Before Dithering: 8-bit palettes like the VIC-II Pepto/Colodore LUT have muted mid-tones. Adding
+10to+20contrast separates foreground subjects from background cells and reduces colour clash. - When to Use Floyd-Steinberg Dithering: Enable Floyd-Steinberg dithering (around
75%–90%strength) for photographic portraits, gradients, and painted artwork. Disable dithering (0%) for pixel art, logos, or text where crisp solid colour cells are preferred. - Locking C64 Background Register (
$D021): Because every 4×8 Koala cell shares colour00($D021), locking the background dropdown to$00 Blackor$0B Dark Greyoften preserves dark outlines across the entire 40×25 screen matrix.
Comments (0)
No comments yet. Be the first to share your thoughts on this tool!
Leave a Comment