Re: Playing Vector Games on the Big Screen

From: <zonn_at_zonn.com>
Date: Thu May 30 2002 - 20:31:59 EDT

On Thu, 30 May 2002 14:21:32 -0400, Rob Mudryk <rob@lasers.org> wrote:

>
>
>Neil Bradley wrote:
>
>> > > Each set of 9 pixels (1 marker, 8 data) is 1 draw command, with R,G,B,X,Y,? sent each time.
>> > > Each of these outputs drives 1 DAC,almost all can set each cycle. Max throughput possible is 2Mhz!
>>
>> > very interesting approach, it may just work... 8-bit is actually
>> > plenty for most vector games, and 2Mhz, is more than enough... you
>
>Asteroids is Mono... (but maybe using 12-bit DAC's instead of 8-bit)
>Lets say... 500 points per frame x 60 fps = 30,000 points per second (pps) x 3 = 150,000 distinct 8 bit
>outputs per second, or about 150KB / Second bandwidth...
>
>1000 x 5 (XYRGB) x 20 = 100,000 pps for Empire Strikes back...

There seems to be some confusion here about whether we're talking CRTs or Laser
systems.

I admit to having very little knowledge about laser systems, so *please* correct
me if I'm wrong. This is what I understand by doing lots of web searches,
google, manufacturing sites etc, trying to figure out just what "pps" means in
the laser world! Good luck! All you'll find is PPS = Points Per Second, and
that Faster is Better. Yeah thanks.

My "guess" is that a laser system takes into account the fact a mirror (or
whatever) has inertia. It looks to me, like a point is placed somewhere and
then somewhere else, the resulting vector is drawn because the mirror system
cannot immediately jump to the new location. So if only a starting and an
ending point were drawn, the vector would start being drawn a bit bright because
it is moving slow. As it speeds up it would become dimmer. Now depending upon
the servo system used, it might start slowing down as it reaches its end point.

So to compensate for this, one can draw a few more points along the way so that
the mirrors are more tightly controlled along the vector. The more the better.

I know for instance, that a circle can be drawn on a Laser system by drawing a
small amount of points (six let's say, I think that's the number used in one of
the test patterns used to tune laser systems). The mirror's inertia then
overshoots the points creating a nice round circle.

Now to get everybody's laser system to draw the same circle, given the same
number of dots at the same speed, test patterns have been devised that allow the
users to "tune" the servo systems so that the same bunch of dots used to create
a nice picture on my laser will create the same picture on someone else's. The
tuning allows all the over/under shooting of the mirrors to react the same way
on both systems.

How'd I do? (I've never seen a laser system working outside of a Laserium show
a long time ago.)

The 30k pps, and 100k pps you quote above look very "laser system" based to me
and don't apply directly to CRTs.

Assuming the above dissertation was correct, CRT VGs (Vector Generators) operate
on a different principal. (I'm much more at home with the workings of a CRT
based VG.)

The points per second of a CRT VG can be thought of two ways, depending upon
whether you're talking about a digital vector generator (DVG) or analog vector
generator (AVG).

For a DVG, the PPS rating for all the digital systems in used in X/Y arcades is
6M pps (that would be 6,000,000 pps).

The DVGs (which are Lunar Lander, Asteroids, Ast Deluxe(?), Sega Systems, Omega
Race, did I miss anything?), use 10 bit DACs, and plot every point of the
1024x768 point space available on a vector monitor.

So a line drawn from the upper left corner of the screen to the lower right
corner consists of 1024 individual steps of the 10 bit X-Dac, and 768 steps of
the Y-Dac. The DACs are clocked at a constant 6mhz speed, as are the sample and
hold, and data latches associated with the DACs. Since this is faster than the
CPU even ran, a state machine made up of discrete components was used to clock
the DACs (among other things.)

For AVGs the PPS can be thought of as infinite. These systems use some type of
R/C circuit to control the speed of the CRT trace. Since the CRT trace follows
the movement of a charging R/C circuit, the beam is not stepped 1024 times when
drawing a full screen diagonal line, but an infinite number of steps (if you
want to think of it that way, you can also think of it as one perfectly smooth
step) are drawn from one corner to the next.

In all cases the CRT is designed to be faster than the control board, and is no
way depended upon to react a certain way to draw a pattern -- except that it
must be fast enough to keep up.

If you try to drive a CRT like a laser system you will have some real problems
with repeatability. Also, six points on a CRT will look like a hexagon since
there is no "overshooting" (for the most part) in the CRT world.

Simply setting two points on the screen will not draw a straight line between
the two. To see this, turn up the brightness on a Vector game and look at the
retrace lines, they are not straight but move as fast as the yoke, and drive
electronics will let them.

Like a Laser you can set more and more points, to make things better. Of course
this will eventually lead to the DVG which sets points at 6 million per second.

Or you can play with the number of points until it looks ok. Then when you run
this on a different monitor you will see much different results (especially if
it is a different make or manufacturer) since the slew rates between different
X/Y monitors can vary greatly.

>and 6mhz? is that the main Processor or the State Machine Processor?

This is the speed the DAC is stepped, or more precisely the sample rate of the
DAC.

>the State Machine Processor drew
>all the vectors which it read not actual vectors, but instructions on how to build the vectors from shared
>memory from the main processor

>>
>> > just need to be able to output the frames at a fixed rate, 60fps
>> > (200-600 Vector Points) for Asteroids and I think 20fps (1000+ vector
>> > points) for Star Wars
>>
>> It's 45fps for Asteroids and 30fps for Star Wars.

If Neil says this is the case, this is the case. ;^)

---
Ok, so if you've read this far, then I'll let it slip that me and a couple of
other friends (partners?) are also working on a PC->VG.
So far the vectors look beautiful (though I haven't got the new "single supply"
dac version running yet to see if they'll still look as nice. Other things that
remain to be tested is the PC->VG interface speed, the redesign of the
pincushion circuit for the WG monitors (we're trying to eliminate the MC1495),
and the VDR replacement to eliminate bowing.  We're trying to get this all
working before the CGE in Vegas this year...  On the emulation side I'm getting
(*mucho*) help from one of the "World Renowned Experts in Vector Emulation". ;^)
I'm really interested in seeing how a laser system would respond to VG that
treats it like a CRT (assuming it is slowed down to the speeds mirrors need to
move.)  I think it would act like an infinite PPS system with no ability to draw
circles, but the vectors should be nice and straight and consistent in
brightness...
-Zonn
---------------------------------------------------------------------------
** To UNSUBSCRIBE from vectorlist, send a message with "UNSUBSCRIBE" in the
** message body to vectorlist-request@synthcom.com. Please direct other
** questions, comments, or problems to neil@synthcom.com.
Received on Thu May 30 17:36:06 2002

This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:34:02 EDT