Code: Select all

`CMP abs,X ; 4/5`

BEQ skip ; 2/3

4*STA abs,X ; 20

.skip

and assuming you're crossing a page boundary half the time works out to 26.5 cycles if different and 7.5 if the same. That's a net win if only 35% of your pixels are the same. Cursory inspection of the video makes me think it's more than that. You'd need to do extra work to force plotting over sprites, of course.

I suspect this would be particularly effective over the Tube, if the parasite is indeed the bottleneck. You'd need a Tube-side copy of the current frame for reference, and hopefully you can arrange it such that you can use zero or bit 7 as a "no need to plot" sentinel:

Code: Select all

`LDA $fee1`

BMI skip

4*STA abs,X

.skip

Other ideas include a Thrust-style scanlines effect by plotting only alternate lines.

Keep up the good work!