[atari7800] Re: Some questions..

  • From: "Andy Mucho" <m00@xxxxxxxxxxxxxxxxxxx>
  • To: <atari7800@xxxxxxxxxxxxx>
  • Date: Wed, 15 Sep 2004 09:58:15 +0100

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

> -----Original Message-----
> From: atari7800-bounce@xxxxxxxxxxxxx [mailto:atari7800-
> bounce@xxxxxxxxxxxxx] On Behalf Of Dan Boris
> Sent: 14 September 2004 23:15
> To: atari7800@xxxxxxxxxxxxx
> Subject: [atari7800] Re: Some questions..
> 
> I have never worked with a real 7800 so I can't give you definitive
> answers but I will take some guesses...
> 
> It may be possible to reset the DLL by some tricky manipulation of the
> registers but you really shouldn't need to. I don't think they intended
> for someone to do a DL on every scanline, you usually assign DL's to
> groups of 8 or 16 scanlines. This is really the way the system is setup
> to work.
> 
> As for the timing, the Maria Specs document from atari-history.com has
> different timings then the ones you showed which are from the 7800
> Software Guide. The ones in the Maria Specs actually make more sense:
> 
> Short Header: 8 cycles
> Long Header: 10 cycles
> 
> That comes out to 2 cycles per byte.
> 
> Graphics, per byte: 3 cycles
> Indirect Map Fetch: 3 cycles (plus 1 or 2 graphics fetches)
> 
> The Maria Spec doesn't list the Character Map Access sperately, so I am
> guessing the the 6 and 9 cycles specified in the Software Guide already
> include the Character Map Access. This makes sense:
> 
> Direct graphics read: 3 cycles
> Indirect/1 Byte: (Character read) 3 cycles + (Graphics read) 3 cycles =
> 6 cycles
> Indirect/2 Bytes: (Character read) 3 cycles + (2 Graphics reads) 6
> cycles = 9 cycles.
> 
> Hopefully someone with a real 7800 development environment can test
> this.
> 
> Dan
> 
> > -----Original Message-----
> > From: atari7800-bounce@xxxxxxxxxxxxx
> > [mailto:atari7800-bounce@xxxxxxxxxxxxx] On Behalf Of Andy Mucho
> > Sent: Tuesday, September 14, 2004 5:23 AM
> > To: atari7800@xxxxxxxxxxxxx
> > Subject: [atari7800] Some questions..
> >
> >
> > Newbie hat firmly in place, so bare with me :)
> >
> > I've started tinkering with the 7800 now I've got some time
> > on my hands, and it's a lovely machine, but I've got a few
> > questions, that I could probably answer myself if I could run
> > on a real 7800, but I can't ;) I've just bought a PAL 7800,
> > but now need to obtain something to program the bugger with
> > and missed out on the CC2 by a mile, but that and my path to
> > making a dev kit are another story..
> >
> > Firstly..
> > Is there anyway at all I can force a DLL to restart from a
> > new address, even through using DLIs ? For some little tests
> > I've reached the point where I've got DLs for every scanline,
> > and I've reached the limit of the DLL not being able to be
> > longer than 512 bytes.. Is there anyway I can force the DLL
> > to restart ? Switching the DMA off, point it to new one, then
> > back on, or something ? Ideally being able to have 2 DLLs,
> > one for the top half of the screen, one for the bottom ?
> >
> > Also, CharMap access.. I'm confused with the timings ?
> > Am I correct in understanding that for example:
> >
> >     2 byte wide chars of 20 characters:
> >             12 Cycles - 5 byte header
> >             20 * 3 Cycles - Character Map Access
> >             9 * 20 Cycles - Character Data fetch
> >             ---
> >             252 Cycles
> >
> >     1 byte wide chars of 40 characters:
> >             12 Cycles - 5 byte Header
> >             40 * 3 Cycles - Character Map Access
> >             6 * 40 Cycles - Character Data fetch
> >             ---
> >             372 Cycles
> >
> > These figure just don't seem right to me ? Though I guess
> > they are, but I'm just looking for clarification..
> >
> > I've been looking through emulator sources but even then the
> > timings seem to be inconsistent ?
> >
> > In general sprite usage I'm in love with this machine and the
> > way it renders
> > :)
> >
> > One last thing.. I recall seeing somewhere on Erics page that
> > he found the timings for Direct Graphic read from RAM were 2
> > cycles instead of the documented 3 cycles ? I can't find this
> > now, but I'm wondering if this is correct ? Does this apply
> > only to the internal RAM, or does it apply to cart RAM in the
> > case of a SuperCart with RAM ? Just curious..
> >
> > Regards
> > AndyM00
> >
> > PS: On freelists.org trying to find the address to send mail
> > to the list, when you've not received yet any is a bit tricky
> > ;) Nowhere does it simply say atari7800@xxxxxxxxxxxxx! I'm
> > guessing this is the right address..
> >
> >
> >
> 




Other related posts: