Cyprian wrote:...
Actually, in Amiga1200 and Falcon030 blitter in many cases is slower than cpu.
...
But in Atari ST, blitter is about twice faster than 68000 in raw copy and much faster when you do shifting, masking and logical operation. In blitter those operations are zero costs.
...
Old thread, but I spent some time with blitter coding last years, and especially last weeks, so some experiences:
In case of RAW copy blitter may be faster, but not 2x than good CPU code. The real limit is of course speed of RAM.
Even using simple move.l (a0)+,(a1)+ is not 2x slower, but we can use movem.l with lot of registers - then CPU is some 10-15% slower.
The real benefit is when shifting is needed - where 68000 is slow, while blitter does it without extra time penalty - if using properly.
Additional gain is when combine shifting with 4 bitplane draw - using 8 as X increment. That is good for sprite draw, but would be even better if there would be special mask register too, which shifts same bits as content. As it is, sprite draw on background is 2 step process, while all it could be single step - where blitter would do NOT MASK and BGR and SPRITE OR BGR in one step. And some faster clipping support would be nice too. But Atari was not designed as gaming machine. Ahh, and same thing missing what in 68000 CPU: byte-swap - that can be done, but not so fast as when it would be OP.
Would not say that shifting and masking are 0 cost, because above mentioned, and because that in case of shifting we need some extra RAM accesses, but cost is little, indeed.
Famous Schrodinger's cat hypothetical experiment says that cat is dead or alive until we open box and see condition of poor animal, which deserved better logic. Cat is always in some certain state - regardless from is observer able or not to see what the state is.