I'm not completely sure I understand the situation, so forgive me if my comments don't make sense. Does anybody know what happens if Maria reaches the end of the 512 byte DLL region? I wonder if it just wraps around back to the beginning. If so, you could just leave the DLL in place, and insert a DLI at the end of each 256 byte page. You could use these DLI's as triggers for a double buffering mechanism. When you hit halfway through the DLL (end of first page), then the display lists that were referenced by the first page have fulfilled their purpose. So at this point you would begin updating those display lists so that they now correspond to the "third" DLL page. When the second DLL page finishes, you would do the same thing except this time you would update the second page display lists so that they would correspond to the "fourth" DLL page. All of this relies on the assumption (perhaps incorrect) that the DLL will wrap around after the second page. This would be the same system that was used to play digital sound on the Sound Blaster, if you're familiar with tha t. An alternative would be to use multiline zones, and recycle a single display list for each line. But you'd have to set up each line during HBLANK, and that's probably not possible in the time available. You'd have a lot more time if you got a signal when maria was done with the display list, which should happen well before HBLANK. Unfortunately you can't trigger a DLI inside a zone so you'd have to make an intelligent guess instead. Perhaps you could detect HBLANK, then allow enough cycles to pass so that you will be certain that by that time, DMA has occurred. Then you can start updating the display list even though you haven't hit HBLANK yet. I'm assuming that once DMA occurs, it doesn't release the bus until DMA has completely finished. If DMA is intermittent then this wouldn't work. ----- Original Message ----- From: "Andy Mucho" <m00@xxxxxxxxxxxxxxxxxxx> Date: Wed, 15 Sep 2004 09:58:15 +0100 To: <atari7800@xxxxxxxxxxxxx> Subject: [atari7800] Re: Some questions.. > > I shall leave the DLL reset hackery until I've got some real way of running > of the real hardware then :) > > You figures do make more sense now.. Which is a bit of a relief :) > > I appreciate the intentions of the DLL zones, and it's truly wonderful. It > was just whilst thinking of something to do as a "getting to know the 7800" > kind of thing I was torn between something with lots of sprites flying > around, kind of the obvious, or doing something else. > > The something else turned out to be an idea for using the Maria to fill > polygons for me, leaving me to only scan convert trapezoid edges, and let > Maria do the hard work of filling the lines for me.. > > It works, and works surprisingly well. The massive advantage of effectively > having the screen cleared for free is awesome.. Just I'm limited in how big > I can make the screen vertically due to the 512 byte limit on the DLLs. And > going to a low resolution like 160 x 128 with the scan lines doubled looks > not quite as nice.. > > I could generate 2 lines of information per DL, but then that would cut the > maximum number of spans I can generate from about 32 to 16, which is > possibly getting into the "not very useful in a real world scenario" area.. > And also complicates the filling code horribly.. > > I shall experiment with 2 line techniques for this.. > > I'm really keen to try out some ideas for 3D on the 7800. Having a potential > 160x128 filled display with 23 colours is kind of awesome for a machine of > it's era :) > > I keep looking at I, Robot in Mame and thinking, maybe, just maybe =) > > Cheers > Andym00 > -- _______________________________________________ Find what you are looking for with the Lycos Yellow Pages http://r.lycos.com/r/yp_emailfooter/http://yellowpages.lycos.com/default.asp?SRC=lycos10