A motion of 16 (>10) with XB moves a sprite one pixel every frame. The lower 4 bits of the motion parameter are auxiliary data. If you have a motion of one (>01) it will add to the auxiliary data 16 times before the sprite is moved one pixel.
I use 16 bit words in CPU RAM with the upper 8 bits being the sprite position. Sprite motion etc. is handled with 16 bit operations (A), and the actual sprite location is then handled (transfered to the VDP) with a simple 8 bit operation (MOVB).
I use a 20 word lookup table for sine and cosine. I was sure I could use the same table to fire the missile, but it proved a challenge. Main problem was, with a location (sprite is without fraction), you can add without moving it, but you only need subtract once to move it. So I had to get position of spaceship, loose fractions, and then add to internal location to locate between pixels and go from there. Well, if I wanted missiles to shoot perfectly.
Edited by sometimes99er, Tue Mar 14, 2017 5:58 AM.