Quote:
Instead of unplotting sprites, moving them and plotting them again
Yeah I think I made it as fast as possible by not using masking or XORing but blatting the new sprite directly over the old one and then drawing a small rectangle in the background colour if you had moved up, down, left or right. Of course with the hardware scroll moving you are effectively moving all the time. That way I was getting the rainbow for free as it sat at the end of the sprite.
I'm surprised how long it took to draw the sprite - it was large at 18x42 bytes - but not that large I thought - I tried Steve O'Learys self poking routine to start
http://www.retrosoftware.co.uk/wiki/index.php/Basic_Sprite_plotter and then tried another like:
Code:
LDA (spritedata),Y
STA (screendata),Y
with the loops unrolled. Which was surprising a little faster. I figured the self poking method would take too many fixups if I unrolled it.
It's a real shame the video hardware can't double up the lines - that would have saved me cycles and memory!
And the screen BBCs screen arrangement is a total pig - I remember it putting me off back in the day. The Atari800 on the other hand is nice and linear...
- PJ