Dedicated emulator cartridges for all released and additionally some interesting prototype or different rom revisions of 8-bit vector arcade games have been finished by now. Also the very few homebrew arcade binaries to complete the set. These are not simple, straightforward emulations but try to convert the original game into the best Vectrex experience, possible, as if it were a Vectrex cartridge. So no coining up, all are in an attract mode in freeplay. All use vectrex controllers and output audio via the vectrex speaker. All use hand-optimized input and graphics functionality specific to each game to maximize performance and visual stability. And probably most notable: all output in portrait/vertical mode, even though most arcade games use a horizontal monitor.
All can be played in landscape mode, too, if you are willing to print out a little stand for the Vectrex and put it on its side – ‘orientation’ is a menu option and all emulators support all four orientations.
All have permanent options – for different input mechanisms, graphics, calibration etc. – and almost all have permanent high scores even though the original games frequently do not store the scores. For a few cases – the later Atari games – their nvram is emulated. Since this emulated store takes a few seconds the LED turns red to indicate that the game emulation cannot be exited. One personal note: the Asteroids romset rev.1 high score bug has not been fixed on purpose – the game overwrites a char of the 10th entry – because it does not bother me and after all is a (very small) part of the Asteroids history. I have added ‘speed’ options for Asteroids for a similar reason, some operators did install speed hacks back in the day. And for an Asteroids fan like myself it is also nice to be able to play the faster version for a change.
Please note: the emulators do also need specific, separate romset files which are not provided – these are binary representations of the actual contents found on the arcade pcbs and usually still under copyright . As of firmware V2 first specific MAME ‘.zip’ files are loaded and if not found or the checksum already incorrect all necessary roms are loaded individually from a subfolder. If a load error occurs a more detailed error list is now shown for all expected data. The sizes and checksums of the needed files are now also documented automatically by the build process in a ‘md5.txt’ file which is part of a firmware distribution.
I cannot begin to explain how much work this entailed: an emulator for every single romset was developed first, then the tools for a binary translation which was compared per opcode against the normal emulation, then an optimized translation with unnecessary things removed (e.g. cpu flags not used per opcode) and rom space changed into a separate access space, figuring out every access used for banked parts to be able to remove any bank-switching, if possible (it was possible for everything but ESB). Only then did I start compiling it for a Vectrex cart. (the steps before were running on a computer but already input/output was streamed to/from the Vectrex using the vector terminal cart.) and start on the graphics performance and stability. And the audio part meant understanding the games sound system and creating substitute audio for what they were using – and then listening to the output and changing the priorities, volumes and sounds for each effect until it sounded alright.
It was worth it, though, I can now play all my favorite vector games on the Vectrex as close to perfect as possible: Asteroids, Asteroids Deluxe, Space Duel, Demon, Star Trek, Tac/Scan, Red Baron, Battlezone ..and the list goes on. Some even look better than on original hw – esp. the Cinematronics ones since I removed all ‘alternate frame’ drawing and increased the frame rate (optional) – so e.g. Demon is just lovely. But also the Asteroids cabinets I have played recently all showed problems I’d term as ‘must fix’ bugs in my gfx code ! But for a few later ones, esp. Empire Strikes Back, the Vectrex cannot keep up with the vector count and it flickers badly at times. Nothing I can do about this, though, the setup time for vectors is killing it and I believe even bypassing the entire vectrex cpu board wouldn’t help since the monitor already is perfectly matched to this cpu board (read: slow compared to arcade vector monitors). Which to me is not a problem, really, I can run Asteroids perfectly at a much higher refresh rate than the original hw does – and the original 1979 Asteroids is my #1 game.
(later note: I have now witnessed original later Atari arcade pcb’s output more and have to change the previous statement: even Atari hw. flickers, seems to have been admissable back in the 80s.)
The current set consists of:
- Alpha One (Major Havoc prototype romset)
- Armor Attack
- Asteroids (romsets rev1/2/4)
- Asteroids Deluxe (romsets rev1/2/3)
- Black Widow
- Boxing Bugs
- Bradley Trainer
- Empire Strikes Back
- Gravitar (version 3)
- Lunar Battle (prototype, later)
- Lunar Lander (rev 2)
- Major Havoc (rev 3)
- Major Havoc – the promised end (v0.75)
- Major Havoc – return to Vax
- Omega Race (set 1)
- Red Baron (revised hw)
- Rip Off
- Solar Quest
- Space Duel
- Space Fury (revision C)
- Space Wars
- Speed Freak
- Star Castle
- Star Trek
- Star Wars
- Tempest (includes Tempest Tubes romset as an option)
- Vector Breakout (C.Cowgill’s homebrew on Tempest hw)
- Warrior (includes the ‘wa_4j_v2’ four joystick romset as an option)
- War of the Worlds
- Zektor (revision B)
As of late I have become interested in building a few standalone emulators for Vectrex games, too, to improve them. I know, running Vectrex games emulated on the Vectrex sounds weird but believe me – the automatic visual advantages by using the VF drawing pipeline, also supporting the orientation and localization option, are nice to have. Plus it allows me to implement and test a new environment to run hybrid applications in.
- Fortress of Narzod
- Marine Fox v1.3
- MineStorm II
- Spike’s Spree
- Veccy Bird v1.5
- Vectrexagon (downloadable edition)
- WebWarp / WebWars