Subject: Re: [stella] DD Driving Controller Routines (works) From: Thomas Jentzsch <tjentzsch@xxxxxx> Date: Mon, 29 Oct 2001 10:59:02 +0100 |
29.10.01 07:36:48, Glenn Saunders <cybpunks2@xxxxxxxxxxxxx> schrieb: >As they say, two steps forward, one step back. You'll get used to that :-) >Now the bad news. > >I noticed that the sprite scanout routine is broken and I never even >noticed it until now! > >For one thing, it's showing one scanline too few of data for P1. > >Also, when I set the starting Y positions of P0 and P1 to different values, >neither displays at all. > >When I comment out either the P1Loop or P0Loop code, it makes the other >sprite not show up. I have no idea why the code for one is so dependent on >the other. > >So I'm definitely stuck there in need of some assistance, please? ;) That's easy. You are using VDELPx to position your sprites in a two line kernel with single line resolution. So you *must* write to both GRPx registers, even when only one of the sprites is displayed. The easiest way to do so, is to *always* write both registers during kernel. Change your kernel into this: P0Loop TYA ;+2 SEC ;+2 SBC P0_Y ;+3 ADC #CarHeight+2 ;+2 BCS .drawP0 ;+2/+3 LDA #0 ;+2 BEQ .setP0 ;+3 .drawP0: LDA (P0_CurrentFramePtr),Y ; +5 .setP0: STA GRP0 ;+3 ; MAX 20 cycles TYA ;+2 SEC ;+2 SBC P1_Y ;+3 ADC #CarHeight+2 ;+2 BCS .drawP1 ;+2/+3 LDA #0 ;+2 BEQ .setP1 ;+3 .drawP1: LDA (P1_CurrentFramePtr),Y .setP1: STA GRP1 ;+3 That increases your cycle count by two. If you are running out of cycles, you could remove the SEC in the P1 code and put it into the LDA #0 branch of P0. This reduces the maximum cycle count for P0 by one, but decreases the count for P1 by two. So that will save you one cycle. BTW: Please define PF_Reflect in your code, not in your special vcs.h. That makes it easier to compile your code. Have fun! Thomas - Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] DD Driving Controller Rout, Glenn Saunders | Thread | Re: [stella] DD Driving Controller , Manuel Polik |
[stella] reading the driving contro, Glenn Saunders | Date | [stella] My first (half) game + Cut, Andrew Wallace |
Month |