32C3: Vector Video Games

There are a few classic video games that rely on vector graphics and special monitors. Asteroids is incomplete if you’re not playing it in its original arcade format. The same goes with Tempest, Lunar Lander, and the 1983 Star Wars arcade game. Emulation of these games is possible, even with MAME, but the display – like every display you can buy today – is still rasterized. The solution to this problem is to create a vector display output for MAME that works in conjunction with adapter boards and DACs connected to a monitor.

For this year’s Chaos Computer Congress, that’s exactly what [Trammell Hudson] and [Adelle Lin] did. They’ve created an open source vector gaming system that connects MAME to XY monitors and oscilloscopes.

The build uses a custom board equipped with a Teensy 3.1 microcontroller and a 12-bit DAC to convert XY coordinates sent by MAME to vectors that can be displayed on any XY monitor. This, of course, requires a patch to MAME, which the maintainers rejected as being an, “unacceptably hacky way to achieve the intended result.” It does achieve the intended result, though: allowing dozens of vector games playable on whatever monitor supports vector graphics.

So far, [Trammell] and [Adelle] have gotten their system working on Vectrex consoles, analog oscilloscopes set to XY mode, and vectorscopes that litter every broadcast station and surplus shop. Check out [Trammell] and [Adelle]’s talk, and if you want to build the V.st vector display driver, the board is available from OSHPark.

Building a Vector Monitor Controller

[fredkono] has a few vintage Atari arcade boards sitting around, and without the rest of the arcade machine – especially the XY CRT – these boards would continue to gather dust. The solution to this terrible shortage of vintage video games was to build a vector monitor from scratch. No, that doesn’t mean building a new CRT, but it does mean rewiring the yoke and building a CRT controller board for tubes salvaged from small, old TVs.

Nearly all the CRTs you’ll find at your local goodwill or surplus shop are raster displays. The CRTs used in the old Atari games were vector displays and extremely similar to the tubes found in old oscilloscopes. [fred] turned the CRT found in an old 9″ color TV into a vector monitor by rewinding the yoke.

With the tube rewired, it was only a matter of connecting the custom deflection circuit boards and getting the old arcade boards running. The images drawn with the new yoke deflector board are great and produce fine, crisp lines of some of the most famous video games in history.

The Open Hardware Driver For CRTs

driverCRTs are the king of displays for any homebrew project. They have everything – high voltages, high vacuums, X-rays, and the potential for a vector display – that makes a project exude cool. Getting an old CRT up and running, though, that’s another story. Never rear, because now there’s an Open Hardware eletrostatic CRT driver for your next display.

[Eric] designed a driver circuit that should be able to send a picture to most 2″, 3″ and some 5″ electrostatic CRTs, the kind found in ancient TVs and oscilloscopes. The 1kV power supply uses a transformer usually found in a CCFL bulb, and is able to produce several milliamps. You’ll want to keep one hand behind your back when working on this.

The driver circuit takes a 0-3.3V analog signal for deflecting the beam along the X and Y axis. The amplifier has enough bandwidth to handle NTSC video, so displaying video along with vector letters and shapes is also a possibility with this circuit. Most of the files are available on the git, with three boards available to be ordered from OSHPark.
Thanks [Mike] for the tip.

Vector Graphic Flappy Bird Harder Than It Should Be

The dark room at Maker Faire was loud,  after all it’s where Arc Attack was set up plus several other displays that had music. But if you braved the audio, and managed not to experience a seizure or migraine from all the blinking you were greeted with these sharply glowing vector displays on exhibit at the TubeTime booth. We did the best we could with the camera work, but the sharpness of the lines, and contrast of the phosphorescent images against the black screen still seems to pop more if viewed in person.

This isn’t [Eric’s] first attempt at driving high-voltage tube displays. We previously covered his dekatron kitchen timer. But we’d say he certainly stepped things up several notches in the years between then and now. He blogged about Asteroids, which is running on the same hardware as the Flappy Bird demo from our video above. An STM32F4 Discovery board is running a 6502 emulator to push the game to [Eric’s] CRT vector driver hardware.

Just before we were done at the booth, [Eric] turned to us with a twinkle in his eye. He confessed his delight in purposely leaving out any button debounce from the Flappy Bird demo. As if it wasn’t hard enough it tends to glitch after passing just a few of the pipe gates. Muhuhahaha!

Vector Display Output on an Oscilliscope


What can we say, we’re a sucker for projects featuring our logo. That being said, this one is seriously awesome. [CNLohr] has figured out how to create a vector display output on an oscilloscope… from a VGA port.

He was inspired by a game called Trace Vector, which is done in the same style as some of the old classics like Asteroids. This got [Charles] thinking, and he decided to see what it would take to make his own vector capable display. An oscilloscope is perfect for this, as it already works by controlling the position of the beam (like a vector), as opposed to standard LCDs and CRTs that use rasterizing (horizontal scanning). This means to get the oscilloscope to display a graphic, all you need to do is to vary the voltages going into the X and Y channels — well, at a high speed!

But where are you going to find such a high speed digital to analog converter? Oh yeah, your computer’s VGA port! For a few dollars [Charles] threw together a VGA adapter with a few resistors using just the red and blue outputs (source code). A bit of programming later, and he’s created his own vector display!

Stick around to see our lovely skull and cross-wrenches rotate on his oscilloscope! Oh, and for a more in depth explanation and more impressive vector video demonstration.

Continue reading “Vector Display Output on an Oscilliscope”

An introduction to vector displays


Unlike the CRTs found in big old televisions, vector displays are a bit of a historical oddity. Instead of sweeping an electron beam across the screen from left to right and top to bottom, a vector display draws lines between two points on a screen. Once used in arcade games such as AsteroidsTempest, and old FAA displays, vector monitors have fallen out of favor due to either the complexity or difficulty in acquiring the needed CRT. The folks over at NYC Resistor put up a great tutorial for getting a vector display up and running, and even managed to put a clock on an oscilloscope.

The key component of getting a vector display to work is the digital to analog converter. This DAC takes voltages from eight pins on a Teensy 2.0 dev board and converts them to a voltage anywhere in between 0 and 5 Volts. After connecting the output of this DAC to an input on an oscilloscope, the microcontroller can draw a line between any two points on an axis.

In the video after the break, you can see two of these DACs connected to an oscilloscope displaying a clock. It’s a very cool piece of work, and something that finally gives a purpose to the ancient CRT oscilloscope you might have lying around.

Continue reading “An introduction to vector displays”

Displaying tweets with a laser pointer and speakers


This year at Toorcamp, [Rich] will be showing off his laser-based vector display, capable of projecting tweets using only a laser pointer, a pair of mirrors, speakers, and an Arduino. Steady hand and curses from lack of an optical bench not included.


[Rich]’s Instructable goes over the finer points of the build; a Python script runs on his computer fetching all recent tweets with a certain hashtag. These tweets are sent over to a ‘duino where a bit of code translates the text into a scrolling vector display. The code for the project is based on one of [Rich]’s previous builds to draw shapes with the same speaker/laser setup.

In theory, using a pair of speakers to draw text on a wall isn’t much different from drawing pictures on an oscilloscope. Of course, [Rich] always has the option of turning his LaserTweet into an oscilloscope when Toorcamp is over.

Relevant videos after the break.

Continue reading “Displaying tweets with a laser pointer and speakers”