Re: Playing Vector Games on the Big Screen

From: Robert Mudryk <rob_at_lasers.org>
Date: Fri May 31 2002 - 02:01:33 EDT

zonn@zonn.com wrote:

> 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.

Yes, I am coming from the Laser End... moving to vector Monitor

>
>
> 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.

Well it's a really weak standard, and what is the cause of long discussions about it... angular distance, or
linear distance at a fixed distance from the projection surface would be better...

>
>
> 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.

Yes, the primary concerns for a Mechanical Scanning system is mass and inertia

>
> 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.

points along the way are drawn to limit the acceleration to make the "line" a consistant brightness

>
>
> 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 information above is defiently 100% correct

Lets start with from the information that I've read over the years and talking to EE that have worked in Analog
Electronics for 10-20 years

First the galvometer: for reference http://www.camtech.com/technology/dual_led.htm model 6800 with the 678xx
series amps
Limiting factors, mass and inertia, these galvometers/amps have been designed for 99.9% linearity

Vector Monitor: limiting factors Rise, leakage, and settle time.
Now because Galvometers are alot slower and faster dacs and drive transistors... Galvo's of today don't suffer
from the limits of the driver.. but the basic drive circuitry is almost identical.. aka they are both driving
magnetic coils...

Lets start with why we use "Velocity Points" in laser, aka putting multiple points along the length of a
vector... drawing a line from edge to edge... It's going to be brighter where I started, dim in the Middle,
then brighter where we are stopping at the end of the Vector.

In a Vector Monitor... if I do the Same... I am going to get a almost invisible line, and point at the end of
the line. Put Asteriods on a 20mhz Scope... you will see what I mean... you get dots not lines... so Vector
Monitors suffer from Acceleration very rapid acceleration but it's still acceleration (aka it takes 250ns
minumum for the AD561 to reach it's next step), then the op amps, transistors, drive transistors... they have a
rise time as well... In asteroids, I thought this was pretty cool... the "Z" axis or intensity signal, has
the 4 Scale bits tied to resistors to give extra boost in Intensity for longer vectors.

Also by adding more points along the line, it minimized the effect of non-linear rise time...

Transistors, have leakage, aka over shooting... defiently not as previlant as Laser, but it's a factor that
has to be considered in the code, I've read in the comments from I can't remember what game programmer that
did discuss this and what I called "Acceleration" in the previous paragraph.

In a nutshell... analog electronics are not 4th dimential 0 time devices... they still suffer from the time it
take to move from volt to volt

Reference info:

Working with Asteriods... main components AD561 (10 Bit DAC), 2n3717/2n3792 drive pair

first the AD561, is a amazing DAC for it's time, minimum Settle Time 250ns, effective load and output time
1.1us (or about 1 Million loads per second) http://www.analog.com/productSelection/pdf/1161_a.pdf

the 2n3717 is another high performer, a Hi Fidelity Audio Drive Transistor... I think this is where the 6MHZ
is coming from at least from the NTE replacement datasheet, on the 2N3792 datasheet it's spec'd at 4MHZ
minimum... otherwise I can't find any meantion of 6MHZ on any schematic on Asteroids or the G05 Service
Manual...

2N3717 Datasheets (NTE replacement part)
http://www.nteinc.com/specs/200to299/NTE284.html

2N2792 Datasheets
http://www.semelab.co.uk/pdf/bipolar/2N3792.pdf
http://www.nteinc.com/specs/100to199/NTE180.html

>
>
> 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.

Yes the monochrome games

>
>
> 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.)

That would be interesting but looking at even the test patterns in the G05 manual, there isn't a stair stepping
going on, and looking on the scope from the Asteroids board, I would assume on a 6" screen... I'd almost have a
solid image... very digital looking but a solid image, if they plotted every point. also I am deducing
because they have logic in the "Z" axis to "normalize" intensity, but that also could be a function of the
analog multiplier, as it's spreading the points apart after the DAC's... but then it wouldn't make sense
because they really couldn't compensate for the pincushion in the same way

>
>
> 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.

all depends on the settle time of the DAC, and also waiting for the scanner to get to it's destination before
going to the next point... the galvo's we use are closed loop... position sensors, etc... if you give it
enough time between points... it will be a hexagon, the same as a CRT, and if you do 6 point hexagon, as fast
as the DAC can put out, you won't see the line, and it will be a circle just like a laser... like you said in
the next paragraph... the yoke is a limiting factor

>

>
> 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.

shit you might as well be doing raster, that's more resolution than a TV

>
>
> 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.

I should have read thru your entire message first... as the last 4-5 paragraphs describes exactly how
Mechanical Scanners and the CRT are the same, and how they have the same limitations

>
>
> >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. ;^)

I simply went by the FPS set by MAME.. 60 for Asteroids, and 30 for Starwars... I didn't have the source code
in front of me when I wrote the other message...

>
>
> ---
>
> 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.

do it in the emulator... why deal with the analog multipliers... x*y^2 doesn't take that many clock
cycles... well at 6 million points per second, nevermind you'd need 50 million floating point instructions per
second

> 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...

The PCI card I am using now, can do at least 200kpps, all I need make is convert the signal to un-balanced and
voltages, then apply a analog filter to slow down the slew rate of the dacs... I know someone that actually
was able to slow down the rate enough on the CRT to pretty much emulate how the galvo's react at 12kpps... I
bet at 150kpps I can emulate every vector game that was made in the 80's I'll prove it one of these days :)

---------------------------------------------------------------------------
** 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 23:12:49 2002

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