OS4 DepotLogo by Marko 
(anonymous IP: 18.232.179.37,2121) 
 HomeRecentStatsSearchSubmitUploadsMirrorsContactInfoDisclaimerConfigAdmin
 Menu

 Features
   Crashlogs
   Bug tracker
   Locale browser
 

 Categories

   o Audio (342)
   o Datatype (51)
   o Demo (203)
   o Development (593)
   o Document (22)
   o Driver (96)
   o Emulation (146)
   o Game (992)
   o Graphics (494)
   o Library (113)
   o Network (228)
   o Office (65)
   o Utility (912)
   o Video (69)

Total files: 4326

Full index file
Recent index file

 Links

  Amigans.net
  OpenAmiga
  Aminet
  IntuitionBase


Support the site


 Readme for:  Graphics » Misc » flashmandelng.lha

FlashMandelNG

Description: Mandelbrot & Julia fractals for OS4 Amiga
Download: flashmandelng.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 34Mb
Version: 4.6
Date: 08 Jan 2023
Author: Dino Papararo / Edgar Schwan
Submitter: Dino Papararo
Email: dino papararo/gmail com
Homepage: http://www.schwan-clan.de
Requirements: AmigaOS4 compatible platform with or without Altivec extensions
Category: graphics/misc
Replaces: graphics/misc/flashmandelng.lha
License: Freeware
Distribute: yes
Min OS Version: 4.1
FileID: 12400
 
Snapshots:
 
Videos:
Comments: 26
Snapshots: 10
Videos: 1
Downloads: 59  (Current version)
1719  (Accumulated)
Votes: 19 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
FlashMandel is "THE" Mandelbrot and Julia fractals  rendering  program  for  the
AmigaOS4 platforms :-) It's a very long time project, development started in the
end of '90 when I was sixteen and learned about fractals reading and looking  on
specialized newspapers some beautiful pictures.  Early develpoment started on an
Amiga 2000 with KS1.3 1MB Ram and SAS/C compiler. FlashMandel was  developed  by
me, Dino Papararo, in my freetime to learn and improve my skills with C/ASM code
and AmigaOS specific API functions. In a second time joined Edgar Schwan  adding
a  lot  of  interesting  features  like  reaction  GUI, arexx ports and scripts,
localization, MAPM arbitray precision math, installer script,  a  dedicated  web
page, and many various bug fixes.

Flashmandel  was  focused  on OS2.x and OS3.x with 68k cpus, main critical parts
were written in 68k assembler. I remember latest 68k version was developed on my
A4000  with  Cyberstorm  PPC 604e/68060 mixing binaries between 68k and ppc code
under WarpOS. Later I sold all my Amiga stuff but after many years I  wanted  to
come back to my preferred computer and hobby, programming in C/ASM under WinUAE.

Sadly  after first entusiastic days I had to admint experience was not the same.
So I decided to come back for real with a true AmigaNG platform!  Sooner I got a
2nd  hand "Pegasos 2" board. Today I can boot three different OS, Amiga OS4.1fe,
MorphOS and Linux Debian. It's really a funny machine, much much better than any
emulated one and obviously any pc :-)

So my actual development system  is ->  Pegasos II G4()1GHz 2GB Ram - Radeon
9250
AmigaOS4.1fe update 2 with latest OS4 SDK and GCC 11.2.0

FlashMandel uses handmade assembler routines for max speed!   ..and "SPEED" it's
main  feature.  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
implemented, it can be adapted for sure to work on more cpu cores.

FlashMandelNG primary features are:

Uses  Reaction  GUI,  Arexx port, Localization, Arbitrary precision math via GMP
Library and don't need any installer, just click 'n run! C and Asm  sources  are
also included.  You can recompile it just installing latest AmigaOS4 SDK and GMP

static LIB included in FalshMandelNG. Copy content in GCC local newlib path just
as like any third party lib add on.  FlashMandelNG it's faaast even on  QEMU/UAE
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 ;-)

Additional  developing  notes: FlasdhMandelNG is developed with GCC 11.2.0 under
Pegasos II and AmigaOS 4.1fe. Altivec code  was  firstly  developed  and  tested
under  Powermac  G5  Quad hardware ..Now I can test it directly on my Pegasos II
;-) Altivec code is the most optimized ever seen  and  could  be  used  as  nice
programming  guide.  Many  many  thanks and greetings to my friend Edgar Schwan,
FlashMandel CoDeveloper, for  his  great  efforts  in  Localization,  Arexx  and
Reaction integration, GMP Library port, etc...

Finally I was able to build full native A1222/Tabor executable with full support
for its SPE unit! So NO EMULATION and MAX SPEED gain! 

In archive we have four binaries: 
1) FlashMandelNG_OS4 -> critical routines are written in  PPC handmade assembler
  
to gain max speed on all powerpc cpus families from 603 to G5!
2) FlashMandelNG_OS4_altivec -> critical routines are written in C code but with

full Altivec directives, engine processes 4 pixels per time!  Sadly  due limited

hardware implementation, precision is limited to float32 datatypes.  For Altivec
version ARexx port is disabled, please consider it as an experimental version.
3) FlashMandelNG_OS4_spe  critical routines are written in C code but transalted

in SPE native code, it should be faster than FPU version.
4) FlashMandel_OS4_lite  is like standard version but whitout Reaction and Arexx
support, it can have better compatibility under emulated environments like QEMU.

..so what version is the faster  one?  On  a  G4  latest  FlashMandelNG  Altivec
versions  are 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 higher precision GMP Library math calculations.
In version 4.5 I have introduced A1222/Tabor compatiiblity with full SPE support
this version should be faster than FPU one and slower than Altivec one.
Anyway it's only supposed because I'm not an owner of A1222/Tabor machine and so
it's all still untested!

About precision, one of main features of FlashMandel,  is  the  ability  to  use
arbitrary precision math. To archieve this I used GMP library, Edgar did a great
job porting it from linux sources ..and now we have it also on Amiga systems :-)

FlashMandelNG_OS4 is Giftware, If you like it please sent me nice  goodies  ..An
email or common postcard is ok too! :-) It's possible to include it in magazines
and CDs, if so please let me to have a free copy of paper/media support ;-)

Version history:
New in 4.6 Updated code to support A1222/Tabor, native binary compatibility it's
still untested.  Now in Turbo Mode renderings can be stopped pressing ESC key or

by menus. Small fixes and code cleanup.

New in 4.5 Full new support to A1222/Tabor with native SPE binary, no emulation!
Fixed makefile to build specific versions and recompiled prj with OS4 SDK 54.16
Compiler used is now switched to GCC 11, for usual FPU or Altivec support, while
I needed to come back to GCC 6 to build A1222/Tabor specific SPE version.
Some cleanup in source code to avoid warnings with latest SDK/GCC versions.

Version history:
New in 4.4  Now you can scroll fractal map with  keyboard arrow keys and zoom in
 
and out with 'i' and 'o' keys.  Granularity can  be choosen pressing from '0' to
'9' on keyboard with a minimun of 1/12 up to 1/3.  Now LibGMP has been optimized

for 'Altivec support', sadly speed increase is very minimal for Altivec version.
Small changes and enanchements.

New in 4.3  Maxed recursion algorithm up to 4x4 pixel blocks. Added new ToolType

SMREQUESTER, set this to 0 to use ToolTypes parameters or 1 to choose resolution

from Screenmode requester's list at startup.  Added new ToolType PLAYSOUND,  set

this to "0" to avoid applause sound at end first rendering. Fixed mem allocation

bug for orbit window. Linked against LibGMP 6.2.1 
Many other small internal changes, cleanups,small fixes/optimizations.

New in 4.2 Fixed Turbo Mode (rendering in memory) in 8 bit screens. Fixed bitmap

scaling effect for zooms. Implemented use of Screen's "Custom Bitmaps"  and made

some other internal changes.  OS4 "API calls" are used vs "standard C" functions

whenever possible.

New in 4.1 Still many fixes and under the hood improvements.  Now a real "fading

effect" is present also in 24bit screenmodes.

New in 4.0 Fixed ARexx functions and scripts. Fixed Load Palette function. Where

possible OS4 API calls are replaced over C library standard functions.
Altivec binary doesn't crashes more on systems without an altivec unit and exits

with a warning. In Altivec binary ARexx port is disabled and Altivec "Java/IEEE"

mode is turned off because useless for our purposes, it was only an experiment.
Reindented, bugfixed and cleaned up code. Recompiled project against current SDK
V53.34 released for AmigaOS4.

New in 3.9 Bugfixed "Recalculation" and "Undo" functions, optimized Altivec code
and enabled Java/IEEE mode. Now Fading effect is present also in 24bit pictures.
Made other small fixes, enanchements and cleanups.
Raised default iterations from 320 to 4096, speed is only partially affected :-)

New in 3.8 Enabled Mouse Wheel "Zoom in" frame for a better granularity control.
Now you can press ESC key to exit when you have to choose Julia fractal type.

New in 3.7  Enabled  Middle  Mouse  Button to Zoom in the specified area. Better
handling of GT_GetIMsg and GT_ReplyIMsg intuition routines.

New in 3.6 Enabled GFX renderings also on 24bit screens, minor optimizations and
speedups.

New in 3.5  It's a bugfix release, now FlashMandel workbench startup and palette

requester are fixed.

New in 3.4 Now load/save picture functions uses datatypes.library, an additional

file with same picture name followed by ".fmng" extension is created to save and

reload coordinates. Load picture is stil compatible with previous images. 

New in 3.3  Implemeted  load/save  picture  also for 24bit screens. Greetings to
to  Massimiliano Scarano  for his support into 24bit picture ilbm save function.

New in 3.2 Implemented 24 bit screens  support  for  truecolor  fractals.  Fixed
Histogram  coloring algorithm. Fixed and speeded up recursive drawing functions.
Minor code fixes and code clean up, now indentation follows GNU rules to 80 cols
To save 24 bit pictures you have to switch to 256 colors screen  due to a bug in
iff ilbm 24bit save function. It will be resoved hopefully in a next release.

New in 3.1 Implemented Histogram coloring algorithm  as  currently  decribed  on
wikipedia,  now  you can display a wider range of colors at same time. Recoded a
lot of stuff following the current best "C Programming practices", i.e. no  more
use  of  global  vars  for  inner functions. Fixed still some serious bugs, this
update is a "must have".

New in 3.0 Finally Reaction GUI is  fully  reimplemented,  Edgar  did  really  a
superb  work  about  this!  I  reworked  also  color remapping to gave some nice
alternative, i.e. try GUI remapping. A lot of  bugs  were  fixed  some  of  them
really dirty, I have also cleanup the code and gained some small speedup!

New in 2.9 Now Altivec C routines uses full intrinsics, generated code should be
very mear to full handmade asm. Small bugfixes and code cleanup.

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 english
docs.

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 and changes.

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

***

"Bottomless wonders spring from simple rules, which are repeated without end."
cit. Benoit Mandelbrot

 Enjoy,

Amiga Rulez!






Copyright © 2004-2023 by Björn Hagström All Rights Reserved