[atari7800] Re: Some questions..

  • From: "Greg DeMent" <gregdement@xxxxxxxxx>
  • To: atari7800@xxxxxxxxxxxxx
  • Date: Sat, 02 Oct 2004 17:46:04 -0800

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


Other related posts: