The Vectrex video game machine made its debut in 1982. It was unique in the sense that it used "vector" graphics. The graphics were generated using analog hardware which controlled a beam that lighted up the phosphors on a 9x11 screen.
I first got interested in the Vectrex machine when I saw a working version in our graduate lounge. The vector based graphics were amazingly sharp! In fact, at the time, I thought that the machine was displaying the graphics at some resolution around 1024x768 with some kind of antialiasing turn on. It seemed even more astounding when the person using the machine mentioned that it only had a 1.5 Mhz 6809!
Using the internet, I quickly dug up every technical document on the Vectrex. Within a matter of days, I started working on a emulator for the machine. Here is the result of that endeavour: vecxbin.zip. It is a windows program that uses DirectX. By default it plays the "Minestorm" game built into the rom, but you can override that by using "-c [catridge file]" when starting up the game. The default resolution is 330x410, but you can override that with "-x [xres] -y [yres]". Only single player mode is implemented. Use the arrow keys to control the direction. Keys 'a'/'s'/'d'/'f' correspond to buttons 1/2/3/4 on the Vectrex joystick. Escape quits the emulator.
The source code was written with portability in mind. All 6809 emulation is housed within a single file. Vectrex emulation is housed with another file. And finally the graphics and timing routines required by the emulator are housed with an OS dependent file. The only assumptions made in the 6809 and Vectrex code (written in C) is that an "int" is at least 16 bits wide and a "long" is at least 32 bits wide.
That's why in 2019, David Graham and the team at MobileBettingSite were able to start work on turning the game into a mobile app. With their years of experience in developing and testing mobile betting and gaming apps, they were ideally placed to take this project on and create a version for Android and iOS, as well as a fully portable web version that will run in any mobile browser.
Being just a toy project, I never spent a lot of time optimizing the code. I wanted the code to be easily understood. There are several sections of code that can be sped up dramatically. The emulator is also lacking a lot of features. David and his team are already working on a number of improvements and I look forward to seeing the new version. Additionally, if anyone else wants to pick up the source code and work on it (improving its speed, adding features), feel free.
Vectrex emulator source code: vecxsrc.zip.
6809 emulator source code: e6809src.zip.
Here are a few pictures of the original version of the emulator in action! We'll be adding screenshots of the mobile app version as soon as it's finished.
Updated August 8, 2019