Originally Posted by kovacm
can I make one observation?
on ST, coders need, as you said "to emulate" (I would prefer phrase "to find way") to achieve Amiga capabilities. One of need was to display more than 16 colors onscreen so Atari coders find a way in 1987.: Spectrum 512 (http://www.asterius.com/atari/spectrum.html
It is nice to see that Amiga coders adopt this idea.
Uh, Amiga coders didn't adopt this idea from Spectrum 512. Altering the palette mid-screen is an old idea. But without something like the COPPER, though, the technique can take a lot of CPU time. The COPPER was designed from the start to quickly alter hardware registers without wasting large amounts of CPU time.
Originally Posted by kovacm
as I said before: I want to see how far coders manage to push limits of hardware boundaries
btw "manually Copper can do more (but not more than 50 few changes per scanline)"
- copper will do this with 0% CPU time, and some bus time, right? and one more thing: how much bus time will consume hires with 4 bitplanes on OCS/ECS?
The COPPER is synced to the display and runs it's own program independently of the CPU. A COPPER move instruction takes two even memory access slots (each memory access slot is two CPU cycles) to move 16 bits into a hardware register like a palette register. It may or may not cause the CPU to wait depending on other conditions. If the CPU is processing internally, the COPPER does not pause the CPU. If the CPU is accessing memory on an odd memory slot, the COPPER does not pause the CPU. But if the CPU tries to access memory on an even memory slot, and the COPPER needs to access memory at the same time, the COPPER causes the CPU to wait for the next available slot. That might be as little as two CPU cycles or it may be many cycles.
On the subject of four bitplane hires displays:
If my math is correct, with an interlaced screen and nothing else accessing chipram (refresh cycles only), one 312 line field has 69264 available memory access slots and a 313 line field has 69486 available memory access slots.
Running a 640x512 four bitplane display requires 40960 memory access slots leaving 28304 memory access slots on a 312 line field and 28526 memory access slots on a 313 line field.
The CPU isn't fast enough to use all these slots. At most it can use half of them so on average there are 14207.5 memory access slots available to the CPU per field. Normally a two bitplane hires display or a four bitplane lowres display allows the CPU to use between 34632 and 34743 slots so the additional bitplanes in hires reduce CPU performance by up to 60%.
The other half of the slots aren't necessarily wasted, though, and might be allocated to the COPPER, blitter, disk, audio, or sprites.