PacManPlus Posted April 6, 2006 Share Posted April 6, 2006 Can anyone give me a quick explanation (no wisecracks, please) of how the Display List (and Display List List) works? I think that's one of the things I am missing from being able to attempt writing homebrews for the 7800... and I'd like to make a game or port on my own Thanks guys. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted April 6, 2006 Share Posted April 6, 2006 (edited) Does the 7800 use the same kind of setup as the 5200? I thought it was more like a 2600. But at any rate your best bet is to go browse www.atariarchives.org, TONS of info online there. Edited April 6, 2006 by danwinslow Quote Link to comment Share on other sites More sharing options...
Schmutzpuppe Posted April 6, 2006 Share Posted April 6, 2006 Can anyone give me a quick explanation (no wisecracks, please) of how the Display List (and Display List List) works? I think that's one of the things I am missing from being able to attempt writing homebrews for the 7800... and I'd like to make a game or port on my own Thanks guys. Hi, did you read the 7800 Software Guide? (http://www.atarimuseum.com/ahs_archives/archives/pdf/videogames/7800/7800_software.pdf) I think it explains quite well how the DL+DLL work. The main concept is that the display is divided into zones. A Display List List entry defines a zone by the number of lines and points to the beginning of a list of display list entry’s which defines the objects. Well I guess the guide explains it better Quote Link to comment Share on other sites More sharing options...
PacManPlus Posted April 6, 2006 Author Share Posted April 6, 2006 (edited) DOH! I actually have the Video 61 / Harry Monitor Cartridge... I believe that PDF is in there now that I think about it. Sorry guys - didn't mean to bug with something I already had Thanks, Bob Edited April 6, 2006 by PacManPlus Quote Link to comment Share on other sites More sharing options...
jbanes Posted April 7, 2006 Share Posted April 7, 2006 Ok, very simply. For each scanline, there is a list of instructions on how to draw that line. This is called the Display List. Each item in the list specifies how many pixels per byte (1 or 2), how many iterations of those pixels should be pulled from memory, and where on the scanline to start drawing. It also specifies which palette to use (3 colors for each of the 8 palettes). When executed, the Maria will execute these instructions to fill in the scanline. Given that there's more than one scanline, a Display List List is used to hold pointers to each Display List. Each DLL entry can specify how many scanlines a given display list should be used on. The Display List instructions will automatically use the line counter (called "offset") to pull the next line of data in each sprite. Thus a 16 line DLL entry would draw a 16 pixel high sprite. Finally, an absolute address to the DLL is placed in two registers, and DMA is enabled. The 7800 will then execute those display instructions every frame, whether your program does anything useful or not. If anyone has any additions, corrections, or comments, feel free to speak up. Quote Link to comment Share on other sites More sharing options...
EricBall Posted April 16, 2006 Share Posted April 16, 2006 Yup, that's about it. I usually think of it in the other order (DLL pointer -> DLL -> DLL entry -> Display List -> Display List Entry....), but that's just how I think. DLL entries define four things: 1. the height (number of lines) in the "zone" 2. a pointer to the display list used for that zone 3. whether an NMI is thrown after the completion of the previous DLL 4. whether 2K or 4K holey DMA is enabled (or not) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.