Subject: Re: [stella] Brainstorming: 3D-Corridor From: Christopher Tumber <christophertumber@xxxxxxxxxx> Date: Thu, 27 Mar 2003 16:07:16 -0500 |
I wrote: >My suggestion would be: After messing around with this for a while I came to the conclusion that if using sprites to do this, the pros don't really outweigh the cons (Pros: You could move the "tunnel" left and right smoothly, Cons: You've used up all the sprites and are limited to playfield graphics) unless you're really prepared to use PF graphics for enemies &etc. But, I do think that preloading X, Y and A and shoving them directly into COLUPF is a good idea, and that's what the attached file does along with some colour cycling to give an effect. You'd be able to scroll the tunnel up and down easily but left and right would take a little more work. You're going to be limited to 1 cycle increments so it won't be quite smooth (As smooth as Instigator's movement in Space Instigators, though!) and it'll be a bit of a pain introducing that delay. There's currently only 14 cycles available per scanline so you might want to narrow the tunnel by 1 or 2 bands to give yourself more time and you can probably recover some cycles by cleaning things up - It's a bit of a kludge right now. Anyway.... Chris...
processor 6502 include vcs.h SEG.U variables org $80 SEG Bank0 org $F000 Start: SEI ; Disable interrupts, if there are any. CLD ; Clear BCD math bit. LDX #$FF TXS ; Set stack to beginning. LDA #0 B1 STA 0,X DEX BNE B1 lda #1 sta CTRLPF lda #$88 sta $81 lda #$8a sta $82 lda #$8c sta $83 lda #10 sta $84 MainLoop VerticalBlank ;*********************** VERTICAL BLANK HANDLER LDA #2 STA VSYNC ;Begin vertical sync. STA WSYNC ; First line of VSYNC STA WSYNC ; Second line of VSYNC. LDA #43 STA TIM64T LDA #0 STA CXCLR STA WSYNC ; Third line of VSYNC. STA VSYNC ; (0) lda #0 sta COLUPF lda #0 sta PF0 lda #255 sta PF1 sta PF2 dec $84 bpl noresettimer lda #10 sta $84 lda $81 ldx $82 ldy $83 sta $82 stx $83 sty $81 noresettimer: ldx $81 ;3 ldy $83 ;3 DrawScreen ;**************************** SCREEN DRAWING ROUTINES LDA INTIM BNE DrawScreen STA WSYNC STA VBLANK lda #15 sta $80 sta WSYNC next1: nop nop nop nop nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next1 lda #15 sta.w $80 jmp next2a org $f100 ; sta WSYNC next2: nop nop nop nop next2a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next2 lda #15 sta.w $80 jmp next3a ; sta WSYNC next3: nop nop nop nop next3a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next3 lda #15 sta.w $80 jmp next4a ; sta WSYNC next4: nop nop nop nop next4a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next4 lda #15 sta.w $80 jmp next5a ; sta WSYNC next5: nop nop nop nop next5a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next5 lda #15 sta.w $80 jmp next6a org $f200 ; sta WSYNC next6: nop nop nop nop next6a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next6 lda #18 sta.w $80 jmp next7a ; sta WSYNC next7: nop nop nop nop next7a: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next7 lda #15 sta.w $80 jmp next6ab ; sta WSYNC next6b: nop nop nop nop next6ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next6b lda #15 sta.w $80 jmp next5ab org $f300 ; sta WSYNC next5b: nop nop nop nop next5ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next5b lda #15 sta.w $80 jmp next4ab ; sta WSYNC next4b: nop nop nop nop next4ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next4b lda #15 sta.w $80 jmp next3ab ; sta WSYNC next3b: nop nop nop nop next3ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 sty COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next3b lda #15 sta.w $80 jmp next2ab ; sta WSYNC next2b: nop nop nop nop next2ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 stx COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next2b lda #15 sta.w $80 jmp next1ab ; sta WSYNC next1b: nop nop nop nop next1ab: nop nop nop nop nop nop nop lda $82 ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 sta COLUPF ;3 dec.w $80 bne next1b lda #0 sta COLUP0 sta COLUP1 sta COLUPF STA VBLANK ; Make TIA output invisible, lda #30 sta TIM64T OverscanWait: lda INTIM bne OverscanWait JMP MainLoop ;Continue forever. org $FFFC .word Start .word Start
Attachment:
TUNNEL.BIN
Description: Binary data
Attachment:
TUNNEL2.BIN
Description: Binary data
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Brainstorming: 3D-Corr, Glenn Saunders | Thread | Re: [stella] Brainstorming: 3D-Corr, Manuel Polik |
RE: Re: Re: [stella]Re: My demo fix, Dennis Debro | Date | Re: [stella] Brainstorming: 3D-Corr, Manuel Polik |
Month |