RE: [stella] need 1 cycle

Subject: RE: [stella] need 1 cycle
From: Glenn Saunders <mos6507@xxxxxxxxx>
Date: Sun, 21 Aug 2005 04:38:20 -0400
I was able to fix this by doing two things.

First, I moved the instruction to sta.w COLUPF back so
that it actually occurs at the top of the loop.  This
also involved adding the last line of the loop that
loads the color _above_ the loop.  Then I reordered
the instructions so the playfield colors work just
right to enable two playfield pixels on the left and
right of the score for the gear indicators.  However,
I still noticed a 1-pixel wide fringe of blue bleeding
into the right score, and 1-pixel of corrupt graphics
on the tens digit of the left score.  So I got sneaky.
 I squeezed the font together by 1 pixel!  So now the
display is rock solid and the font still looks okay.

So in the enclosed binary I added the Color/BW code so
you can see that all 3 elements are dynamic.  And I
added the missiles in.  Since they are a mask, you
only see the copy of each missile that is on top of
the playfield.  I'm thinking toggling the missile
would be the best visual indicator of reverse gear,
with the missile indicating reverse.

BTW, I can not move the indicators further to the edge
because on the right, the playfield color is switching
to red way before the scanline ends.  So this is about
as good as it's going to get.

This kernel is only BARELY possible within the timing
constraints.  The two LAX instructions look like they
save 4 cycles which is an eternity here.

Boy am I relieved that this display code is going to
work.  I didn't come up with 99.9% of this code but it
feels satisfying to have been able to successfully
customize it this way.

Thanks you Thomas!

here is the fixed snippet:


    lda     Car0_Color          ; 3
.loopScore:
    sta.w     COLUPF              ; 3     @07
    lax     (ptrScore+10),y     ; 5
    txs                         ; 2

    lax     (ptrScore+ 4),y     ; 5



    lda     (ptrScore+ 0),y     ; 5
    sta     GRP0                ; 3     @15
    lda     (ptrScore+ 6),y     ; 5
    sta     GRP1                ; 3     @23

    lda     (ptrScore+ 2),y     ; 5
    sta     GRP0                ; 3     @31
    lda     (ptrScore+ 8),y     ; 5
    sta     GRP1                ; 3     @39


    lda   Timer_Color;#$0f;Timer_Color         ; 2
    stx   GRP0                ; 3     @47
    sta   COLUPF              ; 3     @44

    tsx
    lda    Car1_Color;#$dc                ; 2
    stx    GRP1                ; 3     @54
    sta    COLUPF              ; 3     @57

    ;SLEEP 6
 		; 2

    lda     Car0_Color          ; 3



    dey                         ; 2

    bpl     .loopScore          ; 23



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://stella.biglist.com

[demime 1.01d removed an attachment of type application/x-zip which had a name of score_3x2_07.zip]

Current Thread