Subject: [stella] Re: Thrust 1.0 From: "Thomas Jentzsch" <tjentzsch@xxxxxx> Date: Thu, 3 Aug 2000 18:40:59 +0200 |
Andrew Davie wrote: > Anyway, Thomas... how about it? How about sharing those areas where you > feel you *must* use the illegal opcodes and let those of us who are on > higher moral ground :)) tell you why you don't need to :) Ok, actually the score-displaying routine is the only place where i really need the illegal opcodes. I used them get some free time (16 cycles) for other effects. The result is actually only a *47* pixel routine, because the right pixel of the first and the third digit (if i remember it correct) are always the same. That works for me, the score display has blank pixels there, and THRUST too (except for the long T-line). Here is the result: ..digitLoop: nop ; 2 61 nop ; 2 63 nop ; 2 65 nop ; 2 67 nop ; 2 69 nop ; 2 71 nop ; 2 73 nop ; 2 75 lda (digitPtr+$a),y ; 5 4 sta GRP0 ; 3 7 lda (digitPtr+$8),y ; 5 12 sta GRP1 ; 3 15 lda (digitPtr+$6),y ; 5 20 sta GRP0 ; 3 23 lax (digitPtr+$0),y ; 5 28 illegal txs ; 2 30 lax (digitPtr+$4),y ; 5 35 illegal lda (digitPtr+$2),y ; 5 40 stx GRP1 ; 3 43 sta GRP0 ; 3 46 tsx ; 2 48 stx GRP1 ; 3 51 sty GRP0 ; 3 54 dey ; 2 56 bpl .digitLoop ; 2³ 59 As you can see, i saved the time by using LAX and the stack pointer. Then i added the color-scrolling effect, wasted some time (AND, TYA) to get the code working for my needs, and that's how it looks like now: ..digitLoop: dey ; 2 61 lda (digcolPtr),y ; 5 66 and digcolMask ; 3 69 sta COLUP0 ; 3 72 sta COLUP1 ; 3 75 lda (digitPtr+$a),y ; 5 4 sta GRP0 ; 3 7 lda (digitPtr+$8),y ; 5 12 sta GRP1 ; 3 15 lda (digitPtr+$6),y ; 5 20 sta GRP0 ; 3 23 lax (digitPtr+$0),y ; 5 28 illegal txs ; 2 30 lax (digitPtr+$4),y ; 5 35 illegal lda (digitPtr+$2),y ; 5 40 stx GRP1 ; 3 43 sta GRP0 ; 3 46 tsx ; 2 48 stx GRP1 ; 3 51 sty GRP0 ; 3 54 tya ; 2 56 bne .digitLoop ; 2³ 59 when loop ends: y=0 There are a few other places in the code where i saved some bytes and cycles with illegal opcodes (LAX to get a value in two registers, a long NOP instead of BIT to skip one instruction and keep the flags,...), but i could make them legal again. Thomas Jentzsch | *** Every bit is sacred ! *** tjentzsch at web dot de | _______________________________________________________________________ 1.000.000 DM gewinnen - kostenlos tippen - http://millionenklick.web.de IhrName@xxxxxx, 8MB Speicher, Verschluesselung - http://freemail.web.de -- 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 -> |
---|---|---|
Re: [stella] hmove and timing, Eckhard Stolberg | Thread | [stella] New Blood For Orphaned Sys, Garon Grainger |
RE: [stella] Thrust 1.0, craig | Date | [stella] Breakout, Glenn Saunders |
Month |