Re: [stella] My First Atari 2600 Game

Subject: Re: [stella] My First Atari 2600 Game
From: Christopher Tumber <christophertumber@xxxxxxxxxx>
Date: Mon, 07 Oct 2002 11:02:54 -0400
>Yes, that was a problem for me too. I managed to get a few more 
>pixels, but still maybe not enough. At least it where as many 
>steps as Inv21 does.
>It is possible using selfmodifying code in RAM.

Yeh, I have self-modifying code in RAM, it's still really tight. This is my typical routine to draw a line of aliens (There are 10 of these, one for each vertical postion), it gets loaded into RAM, the RESP0/RESP1 are then switched on and off. (Y is preloaded before calling).

There are several ways cycles could be freed up, but all at a cost - If I tracked the scanline in a register instead of a variable, but I'm using both registers in several places (There's quite a bit of calcs between rows of Invaders but maybe I could free up a register if I had too...). I could be pulling the sprite bitmaps off the stack, but that's going to cost me more RAM than I can really afford. I could eliminate the use of ,X for timing by using sta.w instead but then the routine gets bigger, eating up more RAM... (Shrug) 

Anyway, as is it's tight, an additional RESP0/RESP1 would be really rough....

      STA WSYNC                
      lda (Aliens_Display_Offset),y ;5
      sta GRP0                      ;3
      sta GRP1                      ;3

      lda Scanline                  ;3 Cycles 2 Bytes
      sbc Player_Shot_Pos_Y_top     ;3 Cycles 2 Bytes
      tax                           ;2 Cycles 1 Byte
      lda Player_Shot_Data_Table,x  ;4 Cycles 3 Bytes

      ldx #0                        ;2

      sta RESP0 
      sta RESP1,x
      sta RESP0,x
      sta RESP1,x
      sta RESP0,x
      sta RESP1,x
      sta RESP0,x
      sta RESP1,x
      sta RESP0,x
      sta.w ENABL                     
      inc Scanline
      bpl Scan9p

>Inv30? Haven't found that in the archives.

Uh, sorry, that's Erik Mooney's Inv3


Archives (includes files) at
Unsub & more at

Current Thread