[atari7800] Re: Please help me understand display lists and display list lists
- From: "Dan Boris" <dboris@xxxxxxxxxxx>
- To: <atari7800@xxxxxxxxxxxxx>
- Date: Thu, 20 Nov 2003 16:52:27 -0500
This is a good description, but the part of this I had a hard time
getting my mind around was how a sprite moved from one zone to another.
To make this happen you need to make a DL entry for the sprite in each
zone. You then have to change the pointer to the graphics data so that
in the top zone the sprite shifts down and gets cut off on the bottom,
and in the bottom zone the top of the sprite gets cut off. Once you
understand the need for Holey DMA will suddently become clear.
The other revelation that really helped me understand the 7800 hardware
was that you really shouldn't attempt to go directly from game logic, to
DL data structures. You should build a "display engine" the goes in
between. Take Robotron for example. I disassembled some of this game to
get an idea how it worked. They define a sprite table in RAM that
contains such information as the X,Y position of the sprite, which
sprite "character" to display, which frame of animation to use, etc. The
game logic writes to this table, then the display engine processes this
table and turns it into the DL structures needed to generate the
display.
Dan
-----Original Message-----
From: atari7800-bounce@xxxxxxxxxxxxx
[mailto:atari7800-bounce@xxxxxxxxxxxxx] On Behalf Of John K. Harvey
Sent: Thursday, November 20, 2003 12:15 AM
To: atari7800@xxxxxxxxxxxxx
Subject: [atari7800] Re: Please help me understand display lists and
display list lists
Hi Dennis,
I'm not an Atari 800 guy, but I can explain this best the way that I
learned it.
I found this easiest to understand the 7800's drawing mechanisms by
using the "Frogger" model. I started to whip up a Frogger-like demo
about 2 and a half years ago, and when it got closer to being playable
(instead of just some random graphics floating around), I hit a couple
of snags. But, those are irrelevant to the topic at hand.
Ok, in the street in Frogger, you've got cars. Each "header" contains
information about one single car sprite. Take a bunch of these together
in a horizontal area (or "zone"), and you've essentially got a list of
headers. In an organized format (represented as a header after another
header, etc... until some termination bytes), these make up a "display
list". But, since you've got multiple "zones" where cars can be, you
need to keep a list that tells where each Display list's starting
address is in order from top-to-bottom of the screen, and how many
vertical pixels down each zone goes. This information makes up your
Display List List (or DLL).
That's probably too quick-and-dirty-- Is this sort of what you're
looking for? If so, I may be able to dig up some code samples.
Regards,
-John K. Harvey
At 10:16 PM 11/19/03 -0500, you wrote:
>Hi all,
>
>From my understanding the 7800 processes graphics on a line by line
>bases. So you're only limited in the amount of sprites per line by how
>long it takes you to draw them. I've done this (sort of) on the A8 with
>different ANTIC modes (such as ANTIC E and ANTIC F) but it's still
>going to take some getting use to. I've also dealt with display lists
>in the A8 for so long that I still can't get a grasp on to the 7800
>concept. Anyone know of a way that would help me understand it better?
>A number of you come from the A8 environment. Did any of you have
>trouble getting this? If so, how did you overcome it?
>
>
>Take care,
>Dennis
>
>
>
>
>
>
- Follow-Ups:
- References:
- [atari7800] Re: Please help me understand display lists and display list lists
- From: John K. Harvey
Other related posts:
- » [atari7800] Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- » [atari7800] Re: Please help me understand display lists and display list lists
- [atari7800] Re: Please help me understand display lists and display list lists
- From: John K. Harvey