[atari7800] Re: Determining zone height?

From: "Dennis Debro" > How do you determine the height of your zones? Let's
say you will have some
> sprites that will end up in the same zone and they have different heights
> (i.e. 4, 5, 7, 16, 18). Would you pick the smallest height as the zone
> height or would you pick the largest and use Holey DMA?

There are two flavors of holey DMA : 16 line/4K and 8 line/2K.  Sprites
which aren't 8 or 16 lines are padded out to either 8 or 16 lines with blank
lines to match the holey DMA setting used.  You can use a zone height which
isn't 8 or 16 lines, just use 8 line HD for <= 8 lines and 16 line HD for >
8 lines.

Unless you are seriously space constrained, I'd recommend using the largest
sprite height as the zone height.  This is because otherwise you have to
split your sprites into top & bottom halves and do twice the work adding
them to your display lists.  (If your sprites are more than 16 lines high,
you'll need to do this anyway.)  I did this for SpaceWar! 7800 because I was
trying to squeeze everything into 4K.  So I used 8 line zones, but the ship
sprites are 16 lines and stored as top & bottom halves.  I don't recommend
it if you can avoid it.

Oh, and if you have multiple sprite heights, figure out beforehand how you
are going to pad them out to the zone height - top, bottom or middle.  This
may depend on how you handle positioning & collision detection.  I'd
recommend having X,Y be the bottom left corner 'cause it makes building the
DLLs easier.


Other related posts: