Color Vector Display Controller Brings Arcade Classics Back To Life

A multi-PCB setup to drive a CRT vector monitor

If you’ve been reading Hackaday long enough, you’ve probably come across a few hacks where someone made simple animations or even video games on an analog oscilloscope screen. Those hacks generally use vector graphics, where the cathode ray tube’s electron beam directly draws geometric shapes onto the screen. This gives the image a unique look that’s quite distinct from the pixel-based raster displays used on TVs and most computer monitors.

Vector displays were also used in several arcade machines of the early 1980s, including classics like Tempest, Gravitar and Star Wars. In order to emulate these games more faithfully than would be possible on a raster monitor, [Robin Champion] designed the vstcm: a color vector monitor controller to easily drive RGB vector monitors.

Star Wars (1983) displayed on CRT monitorThe design is based on [Trammell Hudson] and [Adelle Lin]’s system, and therefore features a Teensy microcontroller as well as a couple of digital-to-analog converters. While the can only connect to monochrome X/Y systems like oscilloscopes, the vstcm can work with RGB monitors to allow near-perfect emulation of color vector-based games. A custom software interface connects the vstcm to AdvanceMAME, a special version of the well-known arcade emulator that facilitates the connection of unusual display systems.

The end result definitely looks the part, although [Robin] notes that performance is not at the level it could be and requests those familiar with the Teensy platform to help optimize the code. If you’d like to build the vstcm but can’t find a vector monitor, you can always modify the yoke of a conventional CRT. Want to learn more about vector displays? Check out this thorough introduction.

12 thoughts on “Color Vector Display Controller Brings Arcade Classics Back To Life

      1. It would be easy to emulate crt artefacts like shadow mask dots or convergence errors on a modern hi-res display, but generating variable flicker frequencies depending on the number of visible vectors is nearly impossible.

        1. Not quite, since “artifacts” themselves are small enough that you run into aliasing problems trying to draw them.

          For example, scan lines. A 1080p monitor displaying every other line dark does not look anything like a CRT. A1440p monitor with every third line dark would somewhat align with a 480p CRT, but it wouldn’t work for PAL. 4K at 2160p with every fourth line dark would almost work with PAL but not quite… etc. etc. and things get worse when you try to introduce the other stuff, like geometric distortions.

          1. Have you ever looked closely to a colour CRT? The colour triads are larger than the beam width (0.8 mm on a 66cm A66-500X, equals a visible area of 415×312 triads), the scan raster is not aligned to the mask and the colour dots or stripes only get partially excited.
            Of course, simply pasting a colour mask over a raster image will lead to the problems you described. But this is a vector display and by incorporating the “CRT magic” into the vector to raster process aliasing problems can be eliminated.

  1. I was really hoping the project would also include the deflection driver board, but sadly it does not. There’s a color deflection board project out there which allows a consumer 110 degree deflection tube and yoke to be transplanted, but it’s locked-away inside a Facebook group, and I refuse to have anything to do with Facebook.
    I’ve played with the monochrome version of this ( using a modded Vectrex, and while it’s not prefect, it works well enough to be enjoyable. The Vectrex has a very slow and weak deflection system, so the system has to slow down significantly to match the dv/dt capabilities and not badly round-off and distort things. I hacked in an external driver board and power supply, so at least simpler games work well. Games like “Empire Stikes Back” need significant bandwidth to display well.
    A modern QLED, microLED TV is probably up to the brightness dynamic range needed to faithfully emulate the way things like the ‘missiles’ looked in Asteroids Deluxe. The imperfect local dimming on the panel might actually help create the look of ‘electron splatter’ and ‘haloing’ present in the original games.

  2. For the effort, you’d probably do better to go the DE-10 Mister route. The problem I found with the hacked version of MAME was while it intercepted the vectors and sent them off to the Teensy 3, it still displayed the graphics as usual, wasting the meager CPU resources of the Pi 2’s available at the time.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.