Full functional program for rendering Mandelbrot & Julia fractals with
different exponents. After more than 20 years developed and tested again on a
real Amiga: Pegasos II G41GHz 2GB Ram - Radeon 9250 - AmigaOS4.1fe :-)
FlashMandel use handmade assembler routines for max speed, with new implemented
altivec routines, for altivec version, renderings are all near realtime! I
think it's one of the fastest mandelbrot and julia sets rendering program ever
seen on a single core cpu. Due it's development for AmigaOS it lacks of
multiprocessing features. But once imlemented it can be adapted for sure to
work on more cpu cores. It could be possible even a GPU port, but on my Pegasos
II with a Radeon 9250 gfx card we have only OpenGL 1.3 compatibility so it's
not possible to use GPU to speedup calcs :-( FlashMandelNG primary features
are: Uses Arexx port, Localization, Arbitrary precision math with GMP Library
and don't need any installer, just click 'n run! C and Asm sources are also
included, you can recompile it just typing MAKE! It's faaast even on emulated
Amigas and can render even with direct memory access (TURBO OPTION) ..under x86
emuation it's faster than many others x86 native fractal programs ;-) Saved
pictures can be reloaded and further explored at all supported screen's
resolutions. It's really cool and totally free ;-)
Altivec code was firstly developed and tested under Powermac G5 Quad hardware
with MacOSX Leopard 10.5.8 OS and XCode 3 IDE && Ubuntu Mate 16.04 LinuxPPC OS
and CodeBlocks IDE. ..Now I can test it directly on my Pegasos II ;-) Altivec
code is the most optimized ever seen and can be used as good programmig guide.
Many many thanks and greetings to my friend Edgar Schwan, FlashMandel
CoDeveloper, for his great efforts in Localization, Arexx and Reaction
integration. *** Reaction support does not work at moment due incompatibility
between Reactor generated object file and Os4, so for now it defaults to system
In archive we have two binaries:
1) FlashMandelNG_OS4 -> critical routines are written in handmade assembler for
max speed on powerpc cpus 2) FlashMandelNG_OS4_altivec -> critical routines are
written in C but with Altivec directives, processing 4 pixels per time!
I'd like to add another binary for Tabor ans its SPE unit, for now I could not
with it due GCC v8 incompatibilities with SPE code; ..maybe in the next release
we got it!
..so what version is the faster one? On a G4 FlashMandelNG 2.8 Altivec version
is about 3x faster than FPU version because it processes 4 pixels per time!
..but it's also less accurate due Float32 single precision calculations
(limited by hardware) vs Float64 FPU doubles, so for deep zooms you need to
switch sooner to high precision math.
FlashMandelNG_OS4 is Giftware, If you like it please sent me nice goodies ..An
email or common postcard is ok too! :-)
New in 2.8 These are last days of COVID-19 quarantine in Italy, next week I'll
come back to my daily work, ..so I decided to try to unlock once for all full
potential of Altivec vector unit and... I did it! :-) Now FlashMandelNG
processes 4 pixels per time in the altivec version and it's nearly realtime for
zooms with low/mid iterations. One of the most important issues was how to
control Altivec power without loosing speed. So I took a challenge vs myself
and I won it! The my Altivec algorithm is fastest ever seen, preserving full
power and using a smart and efficient control for results! :-) Altivec version
speeded up to 3x!! Have fun!
New in v2.7 Minor speed improvements, I think to have reached tha max possibile
performances on a G4. Only Altivec code can be highly speedup until to 4x, I'm
working on it! Fixed running multiple instances of FlashMandel. Now only RTG
screens are supported. Recompiled with GCC 8.4.0 and latest adtools. Various
minor bugfixes and improvements.
New in v2.6 Raised up GMP Library to actual latest version 6.2.0 (Edgar Schwan)
Implemented periodicity checking to speed up renderig in black areas
(Mandelbrot set). Speeded up a bit Altivec version, we still calc one pixel per
time, I'd like to do 4 pixels per time using full Altivec power. Bugfixed
rendering Z^n+C with of power set to 16 or more. Raised max iterations to
2^31-1. Fixed Load and Save pictures. Removed all debug symbols.
New in v2.5 Due Covid19 virus in few weeks I did what I used to do in years due
my lack of time.. Finally I have implemented GMP Library numeric support. Now
you can zoom into Mandelbrot and Julia sets until 4096 precision's bits are
saturated. On current Amiga generations maybe you need to live for 500 years to
saturate all precision bits.. Eventually I can improve precision bits even
furter :-) I changed a bit the main recursion algorithm and now calculations
are about 10% faster! I discovered and fixed some other annoyng bugs, at this
time only the Arexx and Reaction code parts and needs to be revisioned, all
other code is all updated. At this time Reaction GUI isn't implemented because
it was developed with Reactor Tool. Sadly Reactor doesn't support PowerPc but
only 68k, so object file generated can't be linked with other sources and than
GUI fallback to system GadTools. If there will be ever a new release of Reactor
with PPC/OS4 support I'll be happy to reintroduce Reaction GUI and give again
to FlashMandel the right look! I decided also to renew iff chunk format of
saved pictures, so now you can't load old fractals and continue zooming inside.
New in v2.3 Old heavy bug fixed - if Flashmandel didn't found a locale catalog
crashed at startup Other fixes and little improvements applied
New in v2.2: Now finally with a real Amiga and sadly in Covid-19 era in Italy,
I had a lot cpu power and a lot of time to test and fully bugfix and cleanup
nearly all the code. Lowered resolution of all pictures to 1280x720 to reduce
archive size, old pictures are incompatible to this new version. Added some new
palettes and changed default one. Reviewed some Arexx scripts. Refreshed
New in v2.1: Partial MorphOS compatibility via OS4EMU - Load and save didn't
work Reworked and eliminated all pre AGA stuff. Now we have 3 different
binaries, normal GCC code, Altivec code and New PowerPC handmade asm version.
Added DUTCH catalog language -thanks to Bennymee for translation Minor fixes
New in v2.0: (Re)Enabled AREXX support (Please download and install
AWNP_2-54.lha archive from Aminet to let it run) Fixed tooltypes
To Do: AmigaOne Tabor A1222 specific SPE version - Add 24 bit palettes and
screen modes - Add 3D rendering - Improve AREXX Benchmarks - Reimplement
Reaction GUI -Update the very old Amigaguide documentation.
"Bottomless wonders spring from simple rules, which are repeated without end."
cit. Benoit Mandelbrot