Re: [stella] Phase Two

Subject: Re: [stella] Phase Two
From: Robin Harbron <macbeth@xxxxxxxxxxx>
Date: Sun, 21 Feb 1999 21:59:47 -0500
Pete Holland wrote:
> 1)  What is a "sprite"?  From the hype around my SMS, NES, Genesis,
> and SNES, I was under the impression that a sprite is like a
> Colorforms sticker, an image that the computer can move around over
> the background.  If that's right, how can the Atari, which, from my
> preliminary reading, needs to draw the entire screen, have sprites?
> Does it have sprites, or are they things that act like them?  How much
> of this do I have wrong?

If you want to think of them as sprites, that's fine.  They're just
very limited in what they can do.  Essentially, you have 5 sprites.
2 of them are 8 "dots" wide, the other 3 are just 1 "dot" wide.  I
refrain from using the word pixel instead of "dot" because you can
define how wide each dot is - 1,2 or 4 pixels, I believe.

The sprites are as tall as the screen - but if you want them to look
like something other than a vertical line (or collection of lines of
possibly varying thickness) you have to change the register as the
screen is being drawn.

You can give the appearance of more than 5 sprites by shifting their
horizontal location as the screen draws (from top to bottom) and
storing a 0 in their graphics register.  The sprites can be re-used,
so to speak.

>  The next 192 lines are where the picture is drawn, and since the
> computer has to read the info, this is where you leave it alone to do
> its job.  The next thirty lines are blank like the top forty, and more

Rather, this is when your program is extremely busy.  Your program has
to feed the appropriate graphics registers information as the screen is
drawn.  Otherwise, the screen will just look like a series of vertical
stripes.

> game decisions can be made here.  How can you tell how much time you
> have to do these things?  Do some commands take more time to execute
> than others, and if they do, how long so that you can make it do the
> calculations without disrupting the flow of the scan?

All 65xx instructions take between 2 and 7 cycles each.  The 2600 runs
at about 1.19mhz, so it can peform approximately 1,190,000 cycles worth
of instructions per second.  An NTSC Atari 2600 updates the screen 60
times per second, so that gives it about 19,833 cycles per frame.  Each
frame has 262 lines, and each line allows 76 cycles worth of instructions.

Besides the small memory restrictions, the greatest art on the 2600 is
knowing what to do with those 76 cycles per line to achieve what seems
impossible.

Exactly 3 "clock counts" occur per processor cycle - in other words, the
Atari 2600 puts out 3 "screen pixels" for every cycle that goes by in the
processor.

Disclaimer:  I've only written 2 Atari 2600 programs ever, and neither
is very fancy - but I hope I've spread more truth than lies :)
-- 
Robin Harbron    macbeth@xxxxxxxxxxx
   http://www.tbaytel.net/macbeth

--
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/

Current Thread