Actions

MAME

From Trammell Hudson's Projects


These are the instructions for building MAME to be able to output the line art from classic Atari (and other) vector games to a vector display, such as the Vectrex or Tek 1720 using my V.st quad-DAC boards. It is similar to the Zektor ZVG, but works with USB instead of ancient parallel ports and supports the current (late 2015) MAME source instead of the 0.96 release from 2005.

Building MAME

MAME pull request #483

The pull request to add support to the mainline #483 was closed as "unacceptably hacky way to achieve the intended result" and I wasn't able to figure out how to integrate with the OSD layer and buildsystem, so you'll have to build it from source.

Linux and OSX

Checkout the my branch from github/osresearch/mame, install SDL2 and built the vector target (this will complete in ten or twenty minutes, versus hours for the full tree):

git clone https://github.com/osresearch/mame/
cd mame
make SUBTARGET=vector

Connect the v.st board to your display and the USB port. You should see a test screen and it should be upright with readable text. Copy the zipfiles containing ROMs from where ever you find them into mame/roms and then start mame with:

 ./mamevector64 -vector_serial /dev/ttyACM0 bzone

The options supported are:

  • -vector_serial /dev/ttyACM0 (or whatever) to select the USB port that the v.st board appears on.
  • -vector_rotate {0,1,2,3} rotates the vectors 0, 90, 180 and 270 degrees.
  • -vector_scale 0.8 Scales the output to use a smaller amount of the screen. On the Vectrex this is important since the +/- 2.5V horizontal will go off the sides.
  • -vector_scale_x -1 and -vector_scale_y -1: scale the axes independently and possible inverting them around their center
  • -vector_bright 200 Sets the intensity at which "bright" lines are drawn instead of normal ones. This needs to be configured per game.

Raspberry Pi MAME

Raspberry Pi Vectrex MAME

Building MAME on the Raspberry Pi is a slow process and the latest code isn't supported. Instead I hacked the vector.cpp file in the MAME4All distribution (based on an ancient 0.35b5 source tree) and have it working with many games. My tree is github/osresearch/mame4all-pi.

sudo apt-get install libsdl-dev
git clone https://github.com/osresearch/mame4all-pi
cd mame4all-pi
make

The vector hacks here use environment variables to pass the options to MAME since I didn't figure out how to interact with the command line arguments. You'll need to start games like this:

VECTOR_SERIAL=/dev/ttyACM0 VECTOR_SCALE=0.9 ./mame bzone

Supported games

These are the games that I've tested and found to work with one or both of the versions. Don't ask me for ROMs.

Atari Games

Battlezone attract mode

Atari created thirteen vector arcade games, some black-and-white and some that used color displays. I've been able to emulate almost all of them with a modified version of MAME, although only in monochrome. Andy's Arcade has lots more info on the games and cover art, schematics, etc. Read on for more details and screenshots...

Vectrex Games

MAME emulating a Vectrex, displayed on a Vectrex

These are actual screenshots of the Vectrex console displaying Vectrex, Vectorbeam and Cinematronics games that are being emulated with MAME and converted back into vectors with the v.st DAC board. These are a subset of Wikipedia's list of vector games; not all of the Vectrex games work (they are distributed as ".vec" files instead of MAME's zips). Many of these also work with the Raspberry Pi and my mame4all-pi branch. Read on for more details and screenshots...

Hardware

Teensy 3.1 + MPC4922 DAC
Opamp fixes

More info on the board; you can also make one with a Teensy and two MPC4922 dual 12-bit DACs. The firmware is opensource and the hardware designs are OSHW.