Blitter Question.
Any idea what could cause the blitter to product strange results?
I use the blitter to restore parts of the screen, and then blit a sprite.
The restore blit produces weird errors, the width should be 32 pixels and the height should be 16 pixel, but it almost appears to reverse these values (0x0402 is my BlitSize), and my mod value is 36 ((320 - 32) / 8) for source A and Dest D. In between blitting the 5 planes, I am only setting channel A, D pointers and, BLITSIZE. I normally wait fo the blitter to complete between planes, but have also commented out the wait.
And using the same values, I can blit a sprite correctly. The only differences are the use of all 4 channels, masking the last word, mod values for channels A and B (mask and pixel data) and, a shift value for channels A and B. The mod values for C and D are the same as above. BLITSIZE is the same as above. My sprite is acutally 16 x 16, but I use the extra 16 bit as required and mask the last word.
The correct pixels are transferred, but the locations are wrong. I can see what it's doing, if I override the source in the restore operation.
I am using the AA chipset, but only using 5 planes.
I've debugged and verified that the values are what they should be.
|