Since the last demo reused the graphics of the previous one (with improved quality and additional effects, thanks to the extra alpha channel), the latter didn't look that good anymore, so I decided to rework it to produce a more meaningful and interesting result. I just released it, so who wants to try in on their machine can get it from
https://retream.itch.io/ptdq as usual.
https://www.youtube.com/watch?v=1eBPcg1ndXYLAYERS
Common:
* PTDQ system
* RGBWa color model
* 320x256 visible dots
* interleaved bitplanes
* horizontal and vertical scrolling
Background:
* 336x272 dots
* maximum 256 colors
Foreground:
* 672x576 dots
* maximum 81 non-transparent colors
* 8-bit alpha per base color
NOTES
* Both the layers reside in CHIP RAM.
* The layers use 6 bitplanes in all.
* If the foreground had not used 100% transparent dots, its maximum number of colors would have been 256.
* The foreground mode is changed by writing a whole 24-bit palette to the COLORxx registers with the CPU during the vertical blanking. The required palettes are pre-calculated at startup.
* The Copper is idle most of time (but if the staggered lines are on, it performs a wait and a write for each visible rasterline). The Blitter is idle.
* The texture is 512x512 dots and gets scaled and rotated onto a triple-buffered 128x128 dots raster.
* The raster gets rendered onto the foreground while racing the beam by means of PTDQ_DoC2P_R() when, at the end of a frame, it is found to have changed (so, at most 50 times per second, even if the fps limit is off).
PERFORMANCE
On a stock Amiga 1200, the speed is about 17.5 fps.
On an Amiga 1200 equipped with a Blizzard 1230 IV mounting a 50 MHz 68030 and 60 ns FAST RAM, the speed varies between 80 and 94 fps.
The fps fluctuation depends on the fact that the fetching of the texture dots is more of less friendly to the CPU data cache according to the scale factor and the rotation angle.