Vectrex development - Scalar Ownage
Last updated on February 21, 2012, 19:08 by Sebastian Mihai
Vectrex is a video game system distributed by GCE (General Consumer Electric). It is unusual because of two things: First, it has a built-in display, common only among handheld consoles. Second, the display is vector-based, whereas all other consoles were raster-based. The main difference between raster-based and vector displays is that the raster displays update "chunks" on the screen (such as sprites, background tiles), while vector displays draw lines.

When programming the Vectrex, you are essentially controlling a beam of light which starts out pointed at the centre of the screen, from there, you can start drawing lines, and moving the beam around. In Scalar Ownage, you can see how after each part of the screen is drawn, I bring the beam to the centre of the screen. Also, the coordinate system is Cartesian. The centre of the screen is (0,0), with positive x towards the right, and positive y upwards. Contrast this with all other consoles, where the top left of the screen is usually (0,0), with positive y downwards. Also, raster based consoles do not usually have a notion of negative coordinates, whereas Vectrex uses them regularly.

The video output is monochrome, with varying intensities of white. Vectrex games included and relied on coloured plastic overlays which were attached on top of the screen, to create more attractive backgrounds.

Scalar Ownage is more of a tech demo than an actual game. Keep shooting at the animated shapes until all are destroyed. It showcases things like reading the joystick, drawing, using different scales (which works nicely for animation), outputting text, and rudimentary collision detection.

The dev kit is quirky. It has the following annoyances:
- If you build and run your code from a console, you will notice you will get errors during compilations after the first. My solution was to execute build.bat from Windows Explorer (double clicking it).
- Loop counters break things when they are used as array indices. My solution worked for such a small scale program, but would not be appropriate for full-featured games; I chose to duplicate a few lines of code instead of using loops, just because the loops were predictable and tightly bounded.

Downloads


- rom - the compiled rom. Play it in any Vectrex emulator.
- vectrexc devkit - (fixed broken link) Includes the source for Scalar Ownage. Also includes an emulator. Project makefiles assume that this dev kit is installed to C:\
- source code - good starting point for your Vectrex homebrew development. Requires the vectrexc dev kit.
- emulator - the VecXGL emulator

Screenshots


If you use the materials on this page, or any other page on this web site, you do so at your own risk. They are provided "as is". No warranty is provided or implied. I neither guarantee that the materials will work, nor that they will not be harmful in any way.

RGB Overdose (my entry at the GMD game programming competition)

Gameboy development - Burly Bear vs. The Mean Foxes

Project One - An action RPG engine

Neo Geo development - Neo Thunder

Sega Genesis development - Gen Poker

Airplane Vegas slot machine

Animal Keeper

Gameboy Advance development - smgbalib library

Gameboy Advance development - Balanced Diet

Super Nintendo development - Bucket

Atari 2600 development - Snappy (batari basic)

Nintendo NES development - Invaders must die!

Atari Lynx development - Catkanoid

TurboGrafx-16/PC Engine development - Alddee

Colecovision development - Mowleco

Sega Master System development - Burgers of Hanoi

Gameboy Color development - Burly Bear vs. The Mean Foxes (GBC version)

Nintendo Virtual Boy development - Real Danger

Vectrex development - Scalar Ownage

ZX Spectrum development - simple input/graphics example

Atari 5200 development - Shooting Gallery

Neo Geo Pocket Color development - NGCollector

My homebrew cartridges

Mowleco (ColecoVision) featured in Retro Gamer issue 106

BlackBerry PlayBook development - Sheepish Bearings (Native SDK, OpenGL)

Capacitor study circuit

Catch That LED! - an electronic game circuit

555 timer and 4017 decade counter - traffic lights circuit

A simple Atari 2600 joystick tester circuit

Seven segment display circuit with the 4511 decoder and the 4029 counter

Video compilation of my classic console homebrew games