Re: Sega Multigame and Vector Generator Card...

From: Clay Cowgill <clayc_at_diamondmm.com>
Date: Tue Dec 16 1997 - 18:00:38 EST

>> Moving "fractional" portions of pixels/dots/whatever is handy for
>> rate-control and makes really fluid movement easy from the software side.
>> Just gives you some easy dynamic range to play with. No real reason to
>> "need" it though.
>
>Well ya, you need fractional pixels/dots to get variable slope without
>using bresenham.

Well, sorta-- you need it for calculation, but not necessarily for
plotting. (Anything smaller than the discernable resolution of the tube
could be left out...)

>> Actually, I bet the dot size of the (focused) beam on a 19" raster tube is
>> probably larger than the lower bit or two of resolution from a 12bit DAC.
>> (Not to mention the shadow-mask.)
>
>Good point. But some may want to run on a B/W monitor and then you need
>all the resolution you can get. That wouldn't be me though.

The detail of the Vectrex still manages to amaze me. Gotta like no
masks/grills between beam and screen. :-)

>> This is really just the Sega G-80 vector generator at this point.
>
>It's also a direct digital implementation of the AVG.

Yeah, I suppose so. Slopes on the integrators and time dictating the
length... It's the same as a Vectrex too...

>You don't need a subtractor. The PC can output 2's complement numbers for
>the deltas. An adder can't tell weather it's adding 4095 or -1, they are
>the same 12-bit number (This also works in fixed point). That's why I say
>it'd be nice if you could use a single 24-bit adder and sequence the
>registers though it. Can you fit a 4x24 or 6x24 register file, a 24bit
>adder, and the control stuff all on the chip?

Oh, yeah... As long as everything's pre-cooked to 2's complement that's
cool. Good point.

The register file might be the toughest part. Each bit will take a
Macrocell, so just a 4x24 consumes 75% of a 128 m-cell device. :-( A 24
bit adder isn't exactly skinny either. I suppose there's tricks that can
be played here though... You could keep the vectorlist in a large (32Kx8
or 128Kx8 SRAM) and use a few bytes high in RAM to store the position
counters, then just load the one you need at any given time. If you made
an assumption that any delta value must be less than 1, you could
accumulate delta's with a 12 bit adder and carry 1 with a separate 12bit
add for the whole portion. Clock speed is on our side, so doing a bunch of
operations isn't too much of a problem...

>> >I'll let ya know if anything else hits me ;-)
>
>It just hit me! The 2nd order system (using ddx & ddy) would allow
>another feature: Variable intensity along a line. Rather than using
>them to draw a curve, you could use them to simply alter the speed
>of a straight line draw. It'd be cool to have vectors that fade to
>black (as the beam speeds up). Oh, but all the features of a 2nd order
>system could only be used in NEW vector games, and no one would ever
>want to write one of those ;-)

Yeah, that should work. This might be neat to play with... ;-) I might
just try a Bresenham-based engine to get my feet wet and see if it'll work.
(I'm a VHDL newbie at this point, so less complex is probably a good idea
for starters...)

-Clay

Clayton N. Cowgill Engineering Manager
_______________________________________________________________________
/\ Diamond Multimedia Systems, Inc. clay@supra.com
\/ Communications Division http://www.supra.com/
Received on Tue Dec 16 14:59:39 1997

This archive was generated by hypermail 2.1.8 : Thu Jul 31 2003 - 23:01:05 EDT