I suppose I should update this thread
Compare
(a) no defence (drawing occurs regardless of current beam position, trace violations be damned):
https://www.youtube.com/watch?v=komh0jJgaP4
to (b) deferral (asterisks that would violate the trace are pushed to the stack and drawn later):
https://www.youtube.com/watch?v=0TSk2dBFFak
Of course (b) still flickers a bit, because deferred asterisks may violate the trace when they are drawn post-hoc -- I didn't bother trying to mitigate these "second-order" effects. Nevertheless, the amount of flicker is severely reduced (I did have figures for this, obtained by stepping through both videos frame-by-frame, but I've lost them and I no longer care enough to find them).
However, video (a) clearly moves more smoothly than video (b), despite the flicker. There is a pronounced jerkiness to the animation where the deferral strategy is used, particularly for asterisks on the circumference of the shapes (which move by ~3 pixels or so each frame). I can think of ways I might have been able to improve this, too, but whatever.
I thought the results were interesting, anyway.
I've attached the submission ZIP with the beebasm source; you can build it either way using the BEAM_AVOIDANCE switch.
Overall I was impressed that the Beeb could spin the thing at about 18 fps, even with my lacklustre 6502 asm.
Thanks to everyone who contributed to this thread.
Compare
(a) no defence (drawing occurs regardless of current beam position, trace violations be damned):
https://www.youtube.com/watch?v=komh0jJgaP4
to (b) deferral (asterisks that would violate the trace are pushed to the stack and drawn later):
https://www.youtube.com/watch?v=0TSk2dBFFak
Of course (b) still flickers a bit, because deferred asterisks may violate the trace when they are drawn post-hoc -- I didn't bother trying to mitigate these "second-order" effects. Nevertheless, the amount of flicker is severely reduced (I did have figures for this, obtained by stepping through both videos frame-by-frame, but I've lost them and I no longer care enough to find them).
However, video (a) clearly moves more smoothly than video (b), despite the flicker. There is a pronounced jerkiness to the animation where the deferral strategy is used, particularly for asterisks on the circumference of the shapes (which move by ~3 pixels or so each frame). I can think of ways I might have been able to improve this, too, but whatever.
I thought the results were interesting, anyway.
I've attached the submission ZIP with the beebasm source; you can build it either way using the BEAM_AVOIDANCE switch.
Overall I was impressed that the Beeb could spin the thing at about 18 fps, even with my lacklustre 6502 asm.
Thanks to everyone who contributed to this thread.
Statistics: Posted by Diminished — Mon Jan 08, 2024 11:56 pm