Releases: xahmol/mandelbrot-upic
Release list
Mandelbrot Upic v1.0.3
Rebalances the escape-time color mapping again and repositions white in every gradient -- the last planned iteration on this color-mapping thread, following direct feedback from DDT (0x444454, author of mandelbr8) against v1.0.2.
What changed
- 15 usable colors instead of 14:
mandel_color()now also emits white, previously reserved exclusively for the zoom feature's corner markers -- matching DDT's own mandelbr8 approach of using every color, including white, for the gradient itself. - White repositioned: it had moved to color 15 (the highest escaping iteration count), which put it directly against the true black interior at every fractal boundary -- a stark white-to-black edge rather than a highlight. Moved to a genuine mid-gradient peak instead, at the same index (8) in all four palettes, so the corner-marker color stays one constant across every gradient. Fire and amethyst become symmetric mirrors around it; sunset keeps its original asymmetric shape; rainbow's long-planned "white cap" becomes a mid-cycle flash.
- Known, accepted tradeoff: a corner marker can now land on a picture pixel of its own exact color (white) and be hard to spot there. An outlined marker would close that gap but there isn't shared memory to bring one back right now (18 bytes free in the relevant pool). See docs/MANDELBROT_ALGORITHM.md and docs/ZOOM_FEATURE.md for the full writeup.
Confirmed on real hardware across all four palettes. This is being treated as the final iteration on this particular thread -- diminishing returns from here even though it's not a byte-for-byte match to DDT's own reference renderer.
See CHANGELOG.md for the complete list.
Release assets
mandelupic-v1.0.3-<timestamp>.zip-- the full release archive:mandelupic.prg, the auto-loadingmandelupic.cfg, and aREADME.mdcopy, ready to extract straight onto your Ultimate's SD/USB storage.- Source code (zip / tar.gz) -- GitHub's automatic archive of this tag.
Documentation
Full architecture, algorithm, display-technique, and zoom-feature manuals live in docs/ -- see the README's Documentation section for the complete index.
Mandelbrot Upic v1.0.2
Fixes a genuinely missing color shade, reported after v1.0.1 shipped.
The problem
DDT (0x444454, author of mandelbr8) compared this project's output against their own reference renders and reported the second-lowest escaping iteration count sharing a color with the lowest one, when it should be its own distinct shade. It also explained an old puzzle from v1.0.1's noise-speckle fix: isolated "noise island" pixels sat in the middle of what looked like a flat color region rather than at a visible boundary -- because that region secretly spanned more than one true iteration count merged into a single color.
The fix
mandel_color()'s old formula (1 + iter*14/32) merged escaping iteration counts 0-2 into a single palette index -- the only one of 14 shades covering three counts instead of two, and the most visible one, since low counts dominate any view's exterior background. Replaced with a fixed lookup table (mandel_color_table[]) that front-loads resolution toward low iteration counts, so counts 0 and 1 each get their own shade now. See docs/MANDELBROT_ALGORITHM.md and CREDITS.md for the full writeup.
Confirmed on real hardware: the missing shade is now visible in all 4 palettes. All 6 screenshots and the social preview image refreshed to match.
See CHANGELOG.md for the complete list.
Release assets
mandelupic-v1.0.2-<timestamp>.zip-- the full release archive:mandelupic.prg, the auto-loadingmandelupic.cfg, and aREADME.mdcopy, ready to extract straight onto your Ultimate's SD/USB storage.- Source code (zip / tar.gz) -- GitHub's automatic archive of this tag.
Documentation
Full architecture, algorithm, display-technique, and zoom-feature manuals live in docs/ -- see the README's Documentation section for the complete index.
Mandelbrot Upic v1.0.1
Real-hardware bug-fix pass, plus a palette rework -- confirmed on firmware 3.15 and the newly-released 3.15a. Watch v1.0.0 in action (still representative of the core generator/zoom behavior).
Fixes
- Noise speckles: fixed a fixed-point overflow in
fixed_sqr/fixed_multhat produced stray pixels in the generated fractal. See CREDITS.md. - Zoom box off-by-ones: fixed a self-contradictory clamp at the largest box size, and the right/bottom corner markers landing one cell past the box's true edge.
- Left-edge marker clipping: realigned the picture's horizontal timing so box mode's left-edge corner markers no longer fall partly off-screen.
Palette rework
All 4 color gradients were reworked for distinctness, following real forum/direct feedback that some adjacent shading steps were nearly imperceptible and that two palettes read as near-identical. Every gradient's steps (including the black/white boundaries) are now comfortably separated, and no two gradients look alike at the same escape-iteration band. The former ice gradient was replaced by Amethyst (black -> deep violet -> vivid magenta -> hot pink -> pale pink). See docs/MANDELBROT_ALGORITHM.md for the full reasoning.
See CHANGELOG.md for the complete list.
Release assets
mandelupic-v1.0.1-<timestamp>.zip-- the full release archive:mandelupic.prg, the auto-loadingmandelupic.cfg, and aREADME.mdcopy, ready to extract straight onto your Ultimate's SD/USB storage.- Source code (zip / tar.gz) -- GitHub's automatic archive of this tag.
Documentation
Full architecture, algorithm, display-technique, and zoom-feature manuals live in docs/ -- see the README's Documentation section for the complete index.
Mandelbrot Upic v1.0.0
First feature-complete release of Mandelbrot Upic -- a Mandelbrot fractal generator and interactive pan/zoom viewer for the Commodore 64 Ultimate. Confirmed working on real Ultimate 64 Elite 2 hardware across multiple power cycles. Watch it in action.
Highlights
- On-device fractal generation at 64 MHz turbo -- fixed-point (Q5.11) escape-time iteration, a quarter-square multiply table, and a cardioid/period-2-bulb early-skip. See docs/MANDELBROT_ALGORITHM.md.
- Live picture build-up -- the fractal displays column by column as it generates, not just once complete.
- Upic border-color raster display (384x256, 16 colors) -- no bitmap mode, no sprites, just cycle-exact border-color changes. See docs/UPIC_VIEWER.md.
- Interactive pan and zoom: browse mode (WASD/cursor panning, gradual zoom-out) and box mode (move/resize a selection box, confirm to zoom in), with corner markers drawn directly into the picture buffer. See docs/ZOOM_FEATURE.md.
- 4 selectable color gradients (default, fire, ice, rainbow), cycled live without leaving the current view.
- Auto-loading Ultimate 64 Elite 2 config -- enables the Command Interface and U64 turbo registers this demo needs, no manual setup step.
See CHANGELOG.md for the full feature list.
Getting started
Requires firmware 3.15 or newer -- in practice an Ultimate 64 Elite 2 for now, since the corresponding C64U firmware hasn't been released yet. See the README's Installation section.
Release assets
mandelupic-v1.0.0-<timestamp>.zip-- the full release archive:mandelupic.prg, the auto-loadingmandelupic.cfg, and aREADME.mdcopy, ready to extract straight onto your Ultimate's SD/USB storage.- Source code (zip / tar.gz) -- GitHub's automatic archive of this tag.
Documentation
Full architecture, algorithm, display-technique, and zoom-feature manuals live in docs/ -- see the README's Documentation section for the complete index.