Reposition Player 0 routines done
The Reposition Player 0 routines have been rewritten. It now takes 5 scanlines to reposition player 0, plus an additional scan line to get back into sync with the main kernel loop. The player 0 graphics can start on the additional scan line, but a reposition of player 1 cannot be triggered on it as the BMI KernelEvent is what was dropped to get back in sync.
I was surprised that the reposition player 0 routines now take longer than player 1 (it used to take 2 and 3 scanlines respectively). The reason is that while the routines to reposition player 1 had to update just GRP0(graphics for player 0), the routines to reposition player 0 has to update both GRP0 and GRP1. This is because VDELP1 is used, which lets us update GRP1 any point during the scanline w/out shearing being an issue. When using VDELP1, GPR1's update is delayed until GRP0 is written to.
I was able to squeeze in an additional update for NUSIZ0. In the original routines only Player 1 could be resized (it's used for the special room objects). Not sure if we'll have a need for it, but it was a freebie so I went ahead and put it in. A potential use would be for jumbo robots.
ROM
Source
7 Comments
Recommended Comments