Attached Files
-
lep1125.zip (11.04K)
downloads: 72
lep1125.zip (11.04K)
LINESUB STA WSYNC ; do a single line STA COLUPF ; 0 LDA FGBM0,Y ; 3 STA GRP0 ; 7 LDA FGBM1+8,Y; 10 STA GRP1 ; 14 LDA BGBM0,Y ; 17 STA PF1 ; 21 LDA BGBM1,Y ; 24 STA PF2 ; 28 LDA BGBM2,Y ; 31 STA PF0 ; 35 LDX BGBM3,Y ; 38 STX PF1 ; 42 INY ; 45 NOP ; 47 AND #$0F ; 49 STA PF2 ; 51 STA PF0 ; 54 RTS ; 57-63I'm using SuperCharger RAM abilities to treat the BGBM0-4 and FGBM0-4 as virtual bitmaps. Unfortunately, writes to SC RAM require a bunch of cycles. So my BLIT routine looks like:
BLIT0 LDY YPOS+NUMSPR 3$ CPY #8 BCS 1$ LDA (SPR_PTR),Y TXS TAX LDA SCDATA,X; SuperCharger write TSX LDA FGBM0,X; equivalent to STX FGBM0,X BCC 2$ 1$ LDA SCDATA NOP LDA FGBM0,X 2$ INY INX TXA AND #$0F BNE 3$ BEQ ZPUTSPROf course, any suggestions on how to reduce the number of cycles required would be appreciated. The full source is included in the attached ZIP.
EricBall, on Fri Nov 25, 2005 11:53 PM, said:
EricBall, on Fri Nov 25, 2005 11:53 PM, said:
EricBall, on Fri Nov 25, 2005 11:53 PM, said:
BLIT0 LDY YPOS+NUMSPR 3$ CPY #8 BCS 1$ LDA (SPR_PTR),Y TXS TAX LDA SCDATA,X; SuperCharger write TSX LDA FGBM0,X; equivalent to STX FGBM0,X BCC 2$ 1$ LDA SCDATA NOP LDA FGBM0,X 2$ INY INX TXA AND #$0F BNE 3$ BEQ ZPUTSPR
EricBall, on Fri Nov 25, 2005 11:53 PM, said:
Quote
Quote
EricBall, on Sat Nov 26, 2005 12:16 PM, said:
Cybergoth, on Sat Nov 26, 2005 4:02 PM, said:
Thomas Jentzsch, on Sat Nov 26, 2005 6:24 PM, said:
Cybergoth, on Sat Nov 26, 2005 4:02 PM, said:
Thomas Jentzsch, on Sat Nov 26, 2005 11:24 AM, said:
Cybergoth, on Sat Nov 26, 2005 4:02 PM, said:
Thomas Jentzsch, on Sat Nov 26, 2005 1:24 PM, said:
Cybergoth, on Sat Nov 26, 2005 10:02 AM, said:
Cybergoth, on Sat Nov 26, 2005 1:39 PM, said:
Thomas Jentzsch, on Sat Nov 26, 2005 2:18 PM, said:
mos6507, on Sat Nov 26, 2005 6:41 PM, said:
mos6507, on Sat Nov 26, 2005 6:55 PM, said:
mos6507, on Sat Nov 26, 2005 6:55 PM, said:
mos6507, on Sat Nov 26, 2005 6:55 PM, said:
TXA AND #$0Fyou could do
CPX endX; precalculatedThis is all pretty easy and should save you a little over 100 cycles.
LAX (SPR_PTR),Y LDA SCDATA,X LDA (SC_PTR),Y; setting up this pointer is a bit tricky INY CPY endY BNE 3$
Thomas Jentzsch, on Sun Nov 27, 2005 10:41 AM, said:
TXA AND #$0Fyou could do
CPX endX; precalculatedThis is all pretty easy and should save you a little over 100 cycles.
LAX (SPR_PTR),Y LDA SCDATA,X LDA (SC_PTR),Y; setting up this pointer is a bit tricky INY CPY endY BNE 3$
EricBall, on Sun Nov 27, 2005 10:25 PM, said:
Quote
Thomas Jentzsch, on Mon Nov 28, 2005 3:47 AM, said:
EricBall, on Mon Nov 28, 2005 4:53 PM, said:
Thomas Jentzsch, on Mon Nov 28, 2005 3:47 AM, said:
Cybergoth, on Mon Nov 28, 2005 12:30 PM, said:
EricBall, on Mon Nov 28, 2005 5:53 PM, said:
EricBall, on Mon Nov 28, 2005 5:53 PM, said:
Hm... it seems I don't get you here. After you have fully determined which shape needs to be copied in which RAM area, you need like 600 cycles to copy it?!? I think your sprites are like 10 byte tall, that should be copied in less than 100 cycles, no?
And why do you copy it at all, can't you simply access the sprites via (),Y?
Greetings,
Manuel