Subject: RE: [stella] Little Help Here From: Chris Wilkson <ecwilkso@xxxxxxx> Date: Sat, 3 Mar 2001 00:56:07 -0500 (EST) |
What are the object priorities set to? If playfield is higher than players, it will cover up the players. -Chris On Fri, 2 Mar 2001, Tempest wrote: > Ok here's my code. It's pieced together from several other code snippets > I've found in the archives. It use to display some multi-colored stripes on > the screen but I disabled those for the time being by clearing the Playfield > registers. > > What it should do is display my stupid ship graphic on scanline 92 and > recognize the joystick input (that part works), but I'm getting nothing but > a blank screen. Maybe I shouldn't write zero's to the Playfield registers? > If someone can fill me in on what stupid mistake I'm making I'd appreciate > it. > > Tempest > > > ;*************************************** > ;* Galactic Tactic * > ;* Ver. 0.01 * > ;*************************************** > > > processor 6502 > include vcs.h > > > org $F000 > > > ;***************************************************** > ;* Equates * > ;***************************************************** > > Scanctrl equ $91 > > > ;***************************************************** > ;* Clear Memory * > ;***************************************************** > > Start > > SEI ; Disable interrupts, if there are any. > CLD ; Clear BCD math bit. > LDX #$FF > TXS ; Set stack to top of RAM. > > LDA #0 ;Zero everything except VSYNC. > B1 STA 0,X > DEX > BNE B1 > > > JSR GameInit > > > ;****************************************************** > ; Main Loop * > ;****************************************************** > > MainLoop > JSR VerticalBlank ;Execute the vertical blank. > JSR CheckSwitches ;Check console switches. > JSR GameCalc ;Do calculations during Vblank > JSR DrawScreen ;Draw the screen > JSR OverScan ;Do more calculations during overscan > JMP MainLoop ;Continue forever. > > > ;****************************************************** > ; Verticle Blanking * > ;****************************************************** > > VerticalBlank > > LDA #2 ;VBLANK was set at the beginning of overscan. > STA WSYNC > STA WSYNC > STA WSYNC > STA VSYNC ;Begin vertical sync. > STA WSYNC ;First line of VSYNC > STA WSYNC ;Second line of VSYNC. > > LDA #44 ;Set timer to activate during the last line of VBLANK. > STA TIM64T > > LDA #0 ;Now we can end the VSYNC period. > STA WSYNC ;Third line of VSYNC. > STA VSYNC ;Writing zero to VSYNC ends vertical sync period. > RTS > > > ;****************************************************** > ; Check Switches * > ;****************************************************** > > CheckSwitches > > LDA #0 ;Clear collision latches > STA CXCLR ;In a real game, we'd probably check the collision > ;registers before clearing them. > RTS > > > ;****************************************************** > ; Game Calculations * > ;****************************************************** > > GameCalc > > LDA #0 > STA COLUBK ;Background will be black. > > LDA #$80 > BIT SWCHA > BEQ Right > LSR > BIT SWCHA > BEQ Left > LSR > BIT SWCHA > BEQ Down > LSR > BIT SWCHA > BEQ Up > JMP NoStick > > > Right > JMP NoStick > > Left > JMP NoStick > > Down > JMP NoStick > > Up > JMP NoStick > > NoStick > > LDA #$00 ;Pixels: 00000000 > STA PF0 > STA PF2 ;Store alternating bit pattern to the playfield registers > ASL ;Because PF1 displays in the opposite bit order from PF0 > STA PF1 > LDA #1 > STA CTRLPF ;Let's reflect the playfield just cause we feel like it =) > STA RESP0 > RTS > > > ;****************************************************** > ; Draw Screen * > ;****************************************************** > > DrawScreen > > LDA INTIM > BNE DrawScreen ;Loops until the timer is done - that means we're > ;somewhere in the last line of vertical blank. > STA WSYNC ;End the current scanline - the last line of VBLANK. > STA VBLANK ;End the VBLANK period. The TIA will display stuff > ;starting with the next scanline. We do have 23 cycles > ;of horizontal blank before it displays anything. > > LDY #192 ;We're going to use Y to count scanlines. > > > ScanLoop > > STY COLUPF ;Keep changing the playfield color every line > STA WSYNC ;Wait for end of scanline > DEY > TYA > CMP #$91 > BEQ DrawSprite > BNE ScanLoop ;Count scanlines. > RTS > > > DrawSprite > > LDX #07 > cont STA WSYNC > LDA Sprite,X > STA GRP0 > DEX > BNE cont > RTS > > > ;****************************************************** > ; Overscan * > ;****************************************************** > > OverScan ;We've got 30 scanlines to kill. > LDX #30 ;In a real game, we'd probably be doing calculations here, > > KillLines ;possibly using the timer again to tell us when overscan > STA WSYNC ;is done instead of counting the scanlines. > DEX > BNE KillLines > RTS > > GameInit ;Usually called to start a new game.. we're not using it yet. > RTS > > Sprite > .byte %00000000 > .byte %00011000 > .byte %00011000 > .byte %10011001 > .byte %10100101 > .byte %11000011 > .byte %00000000 > > > org $FFFC > .word Start > .word Start > > > > - > Archives (includes files) at http://www.biglist.com/lists/stella/archives/ > Unsub & more at http://www.biglist.com/lists/stella/ > - 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] Little Help Here, Tempest | Thread | Re: [stella] Little Help Here, Thomas Jentzsch |
RE: [stella] Little Help Here, Tempest | Date | Re: [stella] Little Help Here, Thomas Jentzsch |
Month |