Originally Posted by Mrs Beanbag
blit up and down with a mask. first mask covers all columns that have to go down 8 pixels. next cover all columns that have to go up by four pixels, then up by 2, then up by 1. as long as the slope never exceeds 1:1, this is sufficient.
example: first mask = $FF00, second mask $0F0F, third mask $3333, fourth mask $5555, this would give a straight 1:1 slope.
to calculate the values of the masks, do a quick "chunky-to-planar" type conversion on the y-data. (Could precalculate all these)
sometimes it is useful to think deeper inside the box.
I can't see how this is going to work. In a normal 1pixel sine scroller each slice can have a different y position so you need 16 different blits for a 16 pixel wide char. Also, they can have any y position, i.e. they don't move in just 1/2/4/8 pixels. Might be that I am missing something obvious but without a working example I don't believe that your approach will work.