Subject: [stella] Revolutionary Horizontal positioning 2 From: Manuel Polik <cybergoth@xxxxxxxx> Date: Tue, 26 Nov 2002 13:23:42 +0100 |
Hi there! Based on the repositioning technique of Battlezone, I discovered a technique that can reposition 2 objects at once(!) in a single(!) scannline - not table driven but by calculation!!! Here's the snippet straight out of my recent Star Fire source (-> it works!) This does a centered display of 16-Bit sprites with x coordinates ranging from 0-127: ------------------------------------------- LDA xpos,X ; A = desired X-position! STA WSYNC ; STA HMOVE ; Begin repositioning scannline .wait SBC #$0F ; Battlezone calculate/wait BCS .wait ; 2 in 1 magic ! AND #$0F ; Manuels "forget about EOR/ASL TAY ; nonsense" magic :-) LDA hmovetab,Y ; STA HMP1 ; Fine Position sprite 1 SBC #$0F ; Tada: carry is clear, so ;subtract $0F instead of $10 STA HMP0 ; Fine Position 1 pixel ; corrected sprite 2 STA RESP0 ; STA RESP1 ; JMP NextLine ; Immediate WSYNC/HMOVE follows! hmovetab .byte $80,$70,$60,$50,$40,$30,$20,$10,$00 .byte $F0,$E0,$D0,$C0,$B0,$A0,$90 ------------------------------------------- So, I hope this gives you some more inspiration about ways of using the Battlezone magic :-) For me it saved 2*160 bytes of tables, and even freed lots of kernel cycles, since both HMPX are set directly in the repositioning line now... Greetings, Manuel ---------------------------------------------------------------------------------------------- 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] Never Mind I Get It :-), Chris Larkin | Thread | Re: [stella] Revolutionary Horizont, Thomas Jentzsch |
RE: [stella] PAL VSYNC timings??, Jeff Johnston | Date | [stella] RIOT RAM test, Dennis Debro |
Month |