LCC for the Gigatron. Take two.

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice. No drama.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

I had this idea in my head to combine all fractal programs to one program. To get my head in order I had to code it. I don't recall if I shared the long integer fractals before, but here they are attached in one file. I made it pretty quickly so it might have bugs. Anyone intrested testing it? 32K RAM and ROMv5a compiled...

Edit. Now there is also floating point fractals, but it's little diffrent. Some parameters for adjusting fractal.
Edit. files updated
Attachments
fpfract.jpg
fpfract.jpg (875.73 KiB) Viewed 9786 times
longfract.jpg
longfract.jpg (849.37 KiB) Viewed 9817 times
Last edited by veekoo on 11 May 2023, 18:12, edited 3 times in total.
Hans61
Posts: 104
Joined: 29 Dec 2020, 16:15
Location: Saxonia
Contact:

Re: LCC for the Gigatron. Take two.

Post by Hans61 »

I tested it yesterday on different ROM (v5a, v7, vX0). It takes its time. It works without errors. It does not run on ROMvX0, but I think it is ok.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

Now they both have the three fractals (Mandelbrot, Julia and Burning Ship). In both you can adjust the screen size. In FP version you can also adjust iteration/color palette. LONG version has a solid 16 color palette (16 iterations). Internally they work little diffrently FP version uses a formula to get drawing area and LONG version uses "coordinates" for drawing area. I am thinking what else could be added to parameters and the same time keep it simple.

Edit. files updated
Last edited by veekoo on 11 May 2023, 12:55, edited 1 time in total.
lb3361
Posts: 384
Joined: 17 Feb 2021, 23:07

Re: LCC for the Gigatron. Take two.

Post by lb3361 »

Can you try compiling dev7 version (-rom=dev7). I am curious about the speedup. I expect a smaller gap between longfract and fpfract.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

The LONG version was optimized for file size, but aparently there was memory left so I optimized it now to speed.
Spend time per pixel is now at minimum...not too much if statements in the loop. Now that I think of speeding up the calculation FP versions should be made same way that LONG versions uses "coordinates" for drawing the screen. FP version uses "formula" for drawing the screen and it makes some floating point calculations during that.

Here is default compiled for 32K v5a and 32K Dev7. Dev7 versions seem to be smaller in size.

Edit. changed fpfract2 to be identical most part of drawing screen like longfract. There should be only penalty of speed in actual fractal math in floating point.

I am also intrested to see what kind difference there is long vs fp and v5a vs dev7, but I haven't yet tried everything with actual Gigatron. Testing in process...

edit. files removed because of new versions
Last edited by veekoo on 05 Nov 2023, 10:35, edited 1 time in total.
lb3361
Posts: 384
Joined: 17 Feb 2021, 23:07

Re: LCC for the Gigatron. Take two.

Post by lb3361 »

All of them work nicely.
The fpfract_dev7.gt1 seems to run faster than the longfract.gt1.
But longfract_dev7.gt1 is substantially faster.
I was expecting the gap between fpfract and longfract to narrow with dev7, but that's not true at all.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

lb3361 wrote: 11 May 2023, 23:32 All of them work nicely.
The fpfract_dev7.gt1 seems to run faster than the longfract.gt1.
But longfract_dev7.gt1 is substantially faster.
I was expecting the gap between fpfract and longfract to narrow with dev7, but that's not true at all.
Did you test with fpfract or fpfract2?
I found way to make it faster and otherwise there was a bug in burning ship fractal. Fpfract2 has all the fixes.

The "coordinates" for burning ship zoomed is:
realmin = -1.8f;
realmax = -1.7f;
imagmin = -0.08f;
imagmax = 0.01f;
The benefit is that for each fractals there are these "coordinates". Somewhere in internet you can find new fractal views to zoom in and these "coordinates". At the moment only the classic views of fractals are displayed.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

I made a test fpfract2 vs longfract with Gigatron 64K RAM and ROMv5a:

Test for Mandelbrot fractal, screen size 40x30, iterations 16.

Fpfract2.gt1 - parameters: 1,40,30,15. Took: 6 min 7,53 sec
Longfract.gt1 - parameters: 1,40,30. Took: 2 min 39,09 sec

Can someone test these same way with _dev7 programs?

From the past I recall that long integer fractals take 35min to 1 hour to draw full screen. Floating point fractals usually take couple of hours to draw full screen.
lb3361
Posts: 384
Joined: 17 Feb 2021, 23:07

Re: LCC for the Gigatron. Take two.

Post by lb3361 »

Fpfract2_dev7.gt1 - parameters: 1,40,30,15. Took: 1 min 21 sec
Longfract_dev7.gt1 - parameters: 1,40,30. Took: 37.1 sec

This are numbers measured when running in gtemuAT67, which aims to be as close as possible to real time.
Before running the dev7 version, I verified that running longfract.gt1 takes 2 min 39 sec.
Therefore I believe this is representative of what you'll get on a real gigatron.
veekoo
Posts: 126
Joined: 07 Jun 2021, 07:07

Re: LCC for the Gigatron. Take two.

Post by veekoo »

Thanx. Good to know. Seems like floating point calculations are more benefitting from dev7.rom.

I also ran gtemuAT67 to check and it was only maybe 0,5 sec faster.

Question about gtemuAT67 what to put in loader_config.
Now its:
; an example of how to use external ROMS, (no limit until out of memory)
[ROMS]
RomName0 = ROMv3y.rom
RomType0 = 0x28
RomName1 = ROMvX0.rom
RomType1 = 0x80
RomName2 = dev7.rom
RomType2 = 0x79

But it doesn't work. ROMvX0.rom works.
Post Reply