Playing MAME Games on a RGB Laser Projector

MAME Laser Projector

Vector based displays were used for arcade games in the ’70s and ’80s. A typical CRT uses raster graphics, which are displayed by deflecting a beam in a grid pattern onto a phosphor. A vector display deflects the beam in lines rather than a full grid, drawing only the needed vectors. Perhaps the best known vector game is the original Asteroids.

[Jeremy] built up a RGB laser projector, and wanted to run some classic arcade titles on it. He started off by using the XMAME emulator, but had to modify it to communicate with the laser and reduce flicker on the display.

To control the laser, a modified version of OpenLase was used. This had to be enhanced to support RGB color. The modified sources for both the MAME emulator and OpenLase are available on Github.

[Jeremy]‘s friend, [Steve], even got a vector based game that he wrote working on the system. “World War vi” is a shoot-em-up battle about the vi and emacs text editors.

The results of the build are shown in a series of videos after the break.

Comments

  1. Galane says:

    The actuators he’s using are too slow and rounding off the corners. Looks like he’s gotten much farther than the two previous attempts at a LASER MAME. One important bit is correcting for distortion caused by projecting onto a flat surface. The old vector monitors avoided it by using a CRT with a surface radius matching putting the beam projector at the center of the arc.

    • jv4779 says:

      They are 30kpps galvos and the rounding is a trade off to push more lines. With increased corner dwell time you get better quality at the cost lower lines per sec and flicker. Since the games are not designed for such slow hardware some corners need to be cut.

    • Ethan says:

      Very cool!

      The first incarnation of LaserMAME from about 10 years ago:

      That was using a $4000-6000 Pangolin card and a NEOS PCAOM ($3000?) and argon/hene lasers, and probably a very expensive set of scanners. Not my doing, just a guy that helped me out in the laser hobby a bunch.

  2. morbo says:

    So full of win. The homemade projector is great. Love the method for stacking the RGB lasers. A little more BW out of the galvos and it might crisp up some of the edges. Or a non galvo based light bending soln… (its a bit exotic and I cant find the ref at the moment).

  3. bbsux says:

    what about the original star wars arcade game? Was that laser or vector? Only a few years ago I played a functional one of those that someone had in an arcade. You’d think they’d realize they are a collectors item!

  4. Hirudinea says:

    Have you considered splitting the video into quarter sections and driving four projectors to get more draw speed? Also how sticking some old Vectrex games in that there XMAME if shell take’em?

  5. Sven says:

    Now go get a vectrex and do the same thing.

  6. noouch says:

    Funny, I was researching ways to do this just a couple weeks ago. I gave up when I figured out that laser hardware is a bit over my budget constraints…

  7. Yar says:

    Why on earth is he using an ancient version of MAME like XMAME? The official source code compiles and runs just fine on Linux. Hell, several of the more senior MAME devs use Linux. Much better to use that instead of something that’s over 5 years old at this point.

    • jv4779 says:

      I tried many different version of MAME, including the latest and greatest, with little luck getting vector games to play stable. Ubuntu 10.04 had XMAME and that worked great so I went with it. The version of MAME doesn’t really matter for this project other than getting the changes merged in upstream and I don’t ever see that happening. Anyone is free to take these changes and apply them to what ever version of MAME they like.

  8. hood says:

    Wow, awesome, I’ll have to give this a try. I’ve been building a setup using another guy’s open-sourced DAC design (LaserShark) and openlase. And just a cheap red 5mw laser pointer so far. All the software applications I think up for it – edge detection, Kinect tracing, LaserMame – keep showing up as already done.

  9. stevebb says:

    Talking of asterioids ….
    sparkbangbuzz.com explains how to make DIY monochrome vector CRTs. Due to the the non perfect vacuums the tubes are limited to small sizes, otherwise the electrons can’t make it past the air molecules. *but* if the phosphor particles were small enough surely all that’s needed would be diverging lenses to magnify small images for a large screen. Just like CRT projector screens, 3 of the small tubes of different monochrome colours could be aimed at a screen to achieve full colour. To complete the system add a web cam to feed the resulting image into some software that compares it to what’s wanted and generate calibration parameters to sort out any misallignment of the tubes (and keystone etc) , which might otherwise cause colour fringing.

  10. steven023 says:

    Its great to see that it has come so far!
    Like Ethan says, back then it was a Pangolin, cambridge scanners,neos, and a nice twin set of coherent purelights. Will never forget the amount of water they used. We had a chiller but local customs removed the freon because it was not allowed..Back then the entire set was 160k$ and it was mixed /new/used…
    Now, opensource hardware,opensource software, affordable galvo’s that can do 45k.
    No more need for a 3phase 64Amps hookup. And best of all, no more backpains of lifting the damn things :)
    jv4779, keep up the good work!!!
    ps is there any vid that shows the laser side of the projector ?

    • jv4779 says:

      This setup cost me about $400 and that was only because I spent $120 trying to get a better green vs. dx.com cheapo. I didn’t know it when I started, but the introduction of 450nm blue diodes, cheap green dpss lasers, and Chinese galvo scanners within the last few years made it all possible.

      http://www.youtube.com/watch?v=eA6pvAZ3nq4 has some video of the projector. As well as Tempest flickering like crap.

      • deadlydad says:

        Here’s a thought on auto-calibrating multiple lasers: for each one, pan lines at 90 degrees across multiple bokode tags, recording the maximum brightness for each tag with the webcam. The tags are tiny enough that they won’t call attention to themselves during the presentation, yet will allow the system to be constantly rechecking its calibration as needed. You could even use dozens of them to create a distortion map to properly display on uneven surfaces.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s