Upgrading a Vectrex to 32 Bits

cartridge

The Vectrex was a unique home arcade game with a vector graphics display. It came with an 8 bit processor. I wanted to upgrade it to 32 bits.

VectrexVector graphic displays were popular in the early days of video games: Asteroids, Space Wars, Lunar Lander, Battlezone, Tempest, and the first Star Wars arcade game all used vector graphics. The Vectrex was the only home arcade machine to use it, and it required a CRT to be built into the unit – standard TV sets would not work.

There is still a community of Vectrex enthusiasts, and a few Vectrexes are always for sale on eBay. People write new games in assembly language or C, but it’s an arduous task. I wanted to make it easy by providing an interactive BASIC interpreter for the Vectrex. But the Vectrex itself would make a poor computer.

My first thought was to replace the logic board in the Vectrex with a modern, 32-bit processor board. But almost no one would be willing to do major surgery on their Vectrex. A better solution was to make a game cartridge that plugged into the Vectrex and gave it 32 bit capabilities.


I built a cartridge, which I call the Vectrex32 SmartCart, based on the Microchip PIC32 (specifically, a PIC32MZ2048EFH064). It’s a 32 bit microcontroller that runs at 200 MHz, has a floating point unit, 2MB of flash, and 512KB of RAM. By comparison, the Vectrex’s 6809 is an 8/16 bit processor with 8KB of ROM and 1K of RAM.

The BASIC interpreter and the game run on the PIC32. There’s a dual-port memory chip readable and writable by both the PIC32 and the 6809. The PIC32 writes 6809 machine code into the dual-port memory and the 6809 runs it. Thirty times per second, the PIC32 writes the instructions needed to draw the screen, play sounds, and read the controller. Since the game logic is running on the PIC32, games can be far more sophisticated than anything the Vectrex could do alone.

The SmartCart also has a USB interface. When connected to a PC, it appears as a mass storage drive and a serial port. The drive holds BASIC programs and the serial port can be used with a terminal emulator. You can interactively debug a BASIC program (my version of BASIC supports breakpoints, single-stepping, printing out variables, and more). You can also interactively change things on the screen, e.g. you can experiment to get your shapes looking right and moving right.

The SmartCart provides advanced graphics features like sprites, scaling, rotating, and clipping.

I’ve written extensive documentation and built a web site, Vectrex32.com, to provide support and create a community of Vectrex32 users. People will be able to discuss programming and swap games that they’ve written.

As of this writing, I’ve had 20 SmartCarts manufactured and I’m selling them on here. If there’s demand, I’ll make more.