From Trammell Hudson's Projects
|*DRAFT* *DRAFT* *DRAFT*|
Star Wars was one of Atari's best vector games and considered near the pinnacle of the golden age of arcade games. It featured 3D color vector graphics in an era when most games were low-resolution bitmaps and it had digitized voice samples from the movie while its contemporary games were still using 8-bit beeps.
The Starwars ROMs, along with almost all of Atari's vector games, can be emulated with MAME and the vectors extracted for display on actual vector hardware. Even though modern screens have exceeded the 10-bit resolution used by the game, the unique quality of a vector monitor is hard to convey. When compared to the low-resolution bitmap on a television monitor, the sharp lines and high resolution of the vectors are really stunning.
The graphics were 3D wireframe renderings that included features like the Tie fighters breaking up when they were hit by the player's lasers. There was no hidden wireframe removal; at this time it was not computationally feasible to do so.
There were two common ways to generate the analog voltages to steer the electron beam in the vector monitor. Most early Atari games used the "Digital Voltage Generator", which used dual 10-bit DACs that directly output -2.5 to +2.5 volt signals. Starwars, however, used the "Analog Voltage Generator", in which the DACs generated the slope of the line and opamps integrated the values to produce the output voltage. This is significantly more complex to emulate, and modern DACs and microcontrollers make it fairly easy to generate the analog voltages to drive the displays with resolution exceeding the precision of the old opamps.
The open source hardware v.st quad-DAC boards output do 1.2 million samples per second, which is enough to steer the beam using Bresenham's line algorithm at a resolution of about 12 bits. While this is generating discrete points, the analog nature of the CRT means that smooth lines will be traced in the phosphor. The ARM's DMA engine clocks out the X and Y coordinates as well as the intensity, allowing the CPU to process incoming data from the USB serial connection without disrupting the output.
Two inexpensive vector display are the Tektronix 1720 vectorscope, a piece of analog NTSC video test equipment from a television studio, and the Vectrex, one of the only home vector console systems. The Tek uses a Electrostatic deflection CRT, which gives it very high bandwidth and almost instant transits between points, but at the cost of a very small deflection angle that results in a tiny screen and a very deep tube. The Vectrex has a magnetic deflection CRT, which allows it to be much shallower and significantly larger, but it requires many microseconds for the beam to stabilize in a new position. As a result, the DAC needs to take into account the "inertia" of the beam and wait for it to catch up.
This animated GIF compares the Tek 1720 on the left to the Vectrex on the right. A longer video showing some of the different scenes is available. As the number of line segments increases the slower display starts to flicker.
The game was played with a yoke, so the Y-axis mapping might seem backwards for a normal joystick. You can invert it in MAME by pressing Tab to bring up the config menu, selecting "Analog Controls" and "AD Stick Y Reverse".
While playing it on a small Vectrex or even smaller vectorscope doesn't quite capture the thrill of the arcade, it is quite fun to relive the vector art aesthetic at home and hear the digitized voice of Obi-Wan Kenobi telling you that "the Force will be with you, always".