Mandelbrot Upic
Mandelbrot Upic v1.2.0 -- live fractal generation and interactive zoom

Mandelbrot Upic

2026-10-03
GitHub

On-device Mandelbrot fractal generator with live Upic display and interactive pan/zoom, for the Ultimate 64, Ultimate 64 Elite and Elite II.

An Ultimate 64 demo that generates a Mandelbrot fractal on-device at 64 MHz turbo, packs it directly into Upic format (a 16-color, 384x256 border-color raster picture technique), displays it live as it renders, and lets you interactively pan around and zoom into any region of the result.

Since v1.1.0 the same program also runs on the original Ultimate 64 and the Ultimate 64 Elite, which top out at 48 MHz. It measures the CPU speed at startup and, on a 48 MHz machine, shows 3 of every 4 pixels per line at the same size and position. v1.2.0 makes every pixel exactly one dot wide on both speeds, adds a choice of live views while a picture is computed (a progress band, the classic build-up, or the full picture), and saves pictures as .upic files for Aleksi Eeben's Upic tools. See the blog post for details, and the video.

Requirements

  • Ultimate 64, Ultimate 64 Elite or Ultimate 64 Elite II with firmware 3.15 or newer
  • C64 Ultimate: not yet supported -- it needs the C64U firmware release that adds palette control (expected to be 1.2)

Installation

  1. Extract the ZIP to the root of an SD card or USB drive. The ZIP contains the idi8b/mandelupic/ folder, including both mandelupic.prg and its matching mandelupic.cfg -- extracting at the drive root creates the correct layout.
  2. In the Ultimate menu, navigate to idi8b/mandelupic/ and run mandelupic.prg. The bundled .cfg auto-loads alongside it and enables the Command Interface and turbo registers this demo needs. The same .cfg works on every supported machine; there is nothing to choose or rename.

Controls

Generation starts automatically and the picture builds up live. Once complete, you're in browse mode:

InputAction
W/A/S/D or cursor keysPan the current view
ZEnter box mode to pick a zoom target
OZoom out one notch, clamped to the original overview
CCycle the base colour gradient (sunset, fire, amethyst, rainbow)
F1Save the picture as MANDELnn.UPIC (Upic v1.3 format)
VCycle the live view used while computing: bar, classic, full

In box mode, four corner markers outline a movable, resizable selection box (W/A/S/D to move, +/- to resize, RETURN to confirm and zoom in, Z to cancel; C, O, F1 and V work as in browse mode).

There is no quit key -- reset or power off to exit.

Credits

  • Code: Xander Mol
  • 48 MHz display path, speed probe and automated tests: Christian Gleissner
  • Upic border-color raster technique, display and drawing code, .upic file format, and the idea for the Bar live view: Aleksi Eeben
  • Fixed-point algorithm design: inspired by 0x444454's mandelbr8 project (documented approach only; no code from that project is used)
  • Compiler: Oscar64 by drmortalwombat
  • Ultimate 64 hardware: designed by Gideon Zweijtzer / Gideon's Logic

Licensed under the GNU General Public License v3.0.


ML Show Meatloaf LOAD commands Send file directly to Meatloaf device Download file
NameTypeSize
mandelupic-v1.2.0-20261003-1521.zipZIP12.6 KB

1 file