VecFever documentation
Protector LE
Alex Herbert, 2003
Protector is the most important game developed for the Vectrex in my mind. In 2003 Alex Herbert already showed just how much is possible with a Vectrex. Granted, two decades after the Vectrex came out the ROM size could be drastically increased – to 32kb here – which does give more room for ‘trade rom space for speed’ optimizations but that’s not how he pulled it off: rather by really knowing how to write optimized code and esp. developing custom, fast graphics code for vector output. And equally impressive is the bitmapped output here: stable and not leaning as the original Vectrex functionality tends to be. With a cute, custom font. On the minus side this bitmap output is actually quite slow since it does a zref and move for each and every line which is why a lot of the texts huddle near to the center. And strings further away from the center are mostly drawn interleaved – so at half refresh rate.
He also realized that there is one gpio actually available on the cart. port – and that this could be used to communicate with a 1-wire IC. So he developed functionality for a DS2430A chip: initializing the chip to ‘burn’ some protection into it plus a serial no. in a write-only-once area (not part of the game binary, of course) and the loading and storing functionality inside the game for a permanent high score table.
Also: that he realized that a beloved, golden age raster arcade game could actually be vectorized – only a tiny few can, really, w/o serious flickering and contact precision problems – is in itself a major achievement.
I know I am biased for personal reasons: Defender is the one game I’ve played the most as a child, not here in Germany where it was forbidden (all arcade games were deemed devilish and forbidden at the time for anyone not of age, no exceptions, so including even innocent bystanders like Pac Man). But on holiday in Spain in the early 80s, where they were less ideological, I don’t remember much about anything, except being given a lot of 25 pesetas coins so I could play to my heart’s content for the day. And I only played Defender. All day. And was happy. As no doubt in hindsight my parents were to do whatever they did back then for a few pesetas worth.
So there it is: I am really fond of Defender for nostalgic reasons; and Alex Herbert not just developing a groundbreaking game but even a Defender variant means I’m not an unbiased critic. Oh: and also added a bonus game, Spike Goes Down, unlocked with a 20k+ score.
Custom Bitmap Font
The 8×5 font used is a nice, visible example of Herbert’s masterful understanding of how the Vectrex works, what problems it might have and how to even use these idiosyncracies: the bitmapped output of the Vectrex suffers from a problem: the last of 8 ‘pixels’ is output twice. Normally for a font the last bit therefore is cleared for a two-pixel wide space between chars, as is seen here for the normal charset. However, you can use this when carefully constructing small bitmaps using more than one byte: here the small bonus strings ‘250’ and ‘500’ are encoded just as two characters – and there are a few pixels in the center letters which did not need to be encoded, which frees up 18×5 cycles otherwise needed for the output of a third character. Every cycle counts… and it looks better encoded just in two chars, too.
Packaging and Overlay
Even more impressively – and still to this day making collectors happy, no doubt – Protector LE was not just a simple cartridge release but everything – the pcb, the box, the overlay – are unique and excellent. Not sure what possessed Alex Herbert to go with a pink-ish overlay, though. The Defender colours are red and yellow paints sprayed on the sides of the cabinet plus additionally a splash of blue on control panel overlay, bezel and the marquee.
Well, I said unique but box-wise this was only true until many years later when Malban built five similar boxes for ‘Karl Quappe’. And these days quite a few – like VectrexMad! for many years – are building excellent overlays. But the point stands: Alex Herbert did this many, many years ago already: pcb, label, box, overlay, game, storage chip… the lot. Steps above anyone else in the home-brew scene back then and to be fair also above myself even now: I’ve never build boxes, overlays or even a leaflet or other physical documentation.
Protector Paraphernalia
If you are a Protector/Defender fan and want to play Protector in style there were (are ?) occasionally Protector wraps for the Vectrex available (also a YASI/Protector wrap) which my main, best Vectrex is wearing proudly for quite a few years now. And if you are particularly mad you could create a repro. of the LE cart. – just develop. the init. functionality for the DS2430A chip (the IC is still available after all these years), burn a serial no. of your liking in it and… play with the replica instead so the original can be safely tucked away. Which is what I have done many years ago.
I did stop short of building a Defender-like small control panel using the very special, original Defender 2-way joystick to play Protector, though, since I think playing it with the Vectrex controller is just fine. Plus if you can actually get one of these rare joysticks I think it is better suited to restore Williams 6809 arcade control panels, like my own Defender project which I’ve got as a converted, empty shell and for years now is being restored/improved upon whenever I can get my hands on original parts needed; Or modern, great substitutes.
VecFever Patch
The Protector patch is a native app. which loads an unmodified dump of the Protector LE cart. from /System/Data and modifies it based on a few VecFever settings – esp. whether ‘fast exit’ is enabled (an expert option for the main page). Then the generated, modified binary is immediately started as a normal 6809 cart. with VF extensions which are used for fast exit and loading/storing the 1-wire chip contents.
Besides the permanent high score table (which once you reach 20K unlocks the bonus game) mainly the Protector menu button setup is changed to get it in line with the VecFever defaults: 1: for back/exit, 4: to play.
Please note that Protector LE itself does not store the button configuration permanently. Maybe I’ll add it manually one day but didn’t see a reason to at the moment.
MD5: 0861B193868B239B3BE24CB0AE122524
FILE: /System/Data/PRTCTRLE.BIN
SIZE: 32768 bytes
Options
The encoding for the serial no. of ‘100’ and 1-9 might be different from the actual cart.: there are only two chars for the serial no. which are directly used for the displayed string and no special ‘100’ 2-char bitmap like the ‘250’ and ‘500’ bonus bitmap so the assumption is that it is displayed as ’00’. Equally for 1-9 that they were encoded with a leading ‘0’ here, not with a space. If you happen to know how these are encoded, do let me know.
- Game Info
- Reset Highscores
- Serial Number: 0-99
Localization
//NAME="PRTCTRLE"
//
GERMAN[] = {
{,,"Seriennummer"},
{,," Protector limited edition © 2003 Alex Herbert. Für mich das mit Abstand wichtigste Homebrewspiel überhaupt: mit diesem Meisterwerk zeigte Alex Herbert was möglich ist auf einer Vectrex. Ein sehr grosser Schritt zu allem vorherigen. Als ich mit der Vectrex anfing war dies deshalb das absolut erste Spiel welches ich disassemblierte. Viele neue Dinge sind neu entwickelt hier: die stabile und sehr nette Bitmapausgabe, die Geschwindigkeit des Vektorzeichnens, die Nutzung eines 1-Wire ICs sowohl zum Sichern von Daten also auch als spezielles Dongle für jedes LE Modul (z.B. ist die Seriennummer in einem nur einmal beschreibbaren Teil des 1-Wire ICs kodiert) oder der meisterhafte Programmierstil. Ich mag besonders den initialen Setup und die Sicherheitschecks. Und die modulare, interne Struktur. Das Protector in dem Protector/YASI Kombinationsmodul und dieses LE sind nicht allzu unterschiedlich intern - im wesentlichen an eine andere Stelle assembliert. Ein 'PRESS 1 TO EXIT' Feature wurde beim Kombomodul eingebaut. Die Highscoreinitialen wurden komprimiert, um Platz für YASI's Daten zu schaffen. Und die 1-Wire Funktionalität herausgenommen und die Optionsseite ist deshalb nur die Buttonsoption. LE hat also mehr Optionen zum Initialisieren des 1-Wire ICs (RESET HALL OF FAME) und wenn man 20k Punkte erreicht ist ein Bonusspiel über die Optionsseite verfügbar: Spike Goes Down. Dieser Patch substituiert die Lade-/Speicherfunktionalität, vertauscht die Buttons etwas auf VecFever defaults und die das schnelle Starten plus 'PRESS 1 TO EXIT' schnelle Beenden wurden per Hand hereingehäkelt. "}
};
FRENCH[] = {
{,,"Numéro de Série"},
{ 0, 0, " Protector limited edition © 2003 Alex Herbert. Dans mon esprit, il s’agit du jeu 'fait maison' qui a été le plus influent dans l’univers du Vectrex: avec ce chef-d'œuvre, Alex Herbert a montré ce qu’il était possible de créer sur cette machine: cela a représenté un grand bond en avant par rapport à tout ce qui existait jusqu’alors. Quand j’ai commencé à programmer sur le Vectrex, c’est ce fichier binaire que j’ai désassemblé en premier pour regarder ce qu’il avait réalisé. J'y ai découvert beaucoup de choses qui n'avaient jamais été vues auparavant: la sortie bitmap à la fois stable et très agréable à voir, la vitesse de la fonction de dessin vectoriel, l'utilisation d'une puce '1-Wire' à la fois pour la sauvegarde des données et comme dongle unique pour chaque cartouche de l'édition limitée 'LE' (c'est ainsi que le numéro de série est encodé dans une partie de la puce 1-Wire qui n'est inscriptible qu'une seule fois). Le tout a été réalisé dans un style de programmation magistral. J'apprécie particulièrement la configuration initiale et les contrôles de sécurité, de même que la conception interne modulaire. Le jeu 'Protector' que l'on trouve dans la cartouche où il est combiné avec 'YASI' ('Protector/YASI') et cette édition limitée 'Protector LE' ne sont pas si différents que cela en interne - la majeure partie du code et des données sont simplement assemblées à un autre endroit. Une fonction 'PRESS 1 TO EXIT' a été ajoutée pour la cartouche contenant les deux jeux combinés. Les initiales des meilleurs scores ont été compressées pour faire de la place aux données de YASI. Par ailleurs, la fonctionnalité '1-wire' a été supprimée de sorte que la page d'options ne contient que la configuration des boutons. Ainsi, l'édition limitée 'LE' dispose de plus d'options pour réinitialiser la puce 1-wire ('RESET HALL OF FAME'). Une fois que 20 000 points ont été atteints, un jeu bonus apparaît comme disponible dans les options: il s'agit de 'Spike Goes Down'. Le patch que j'ai créé remplace la fonctionnalité de chargement/sauvegarde, réorganise un peu les boutons pour qu'ils soient dans la droite lignée des valeurs par défaut de la VecFever et ajoute enfin les fonctions de démarrage rapide / sortie rapide ('PRESS 1 TO EXIT'). "}
};
ENGLISH[] = {
{,,"Serial Number"},
{,," Protector limited edition © 2003 Alex Herbert. In my mind the most influential homebrew Vectrex game: with this masterpiece Alex Herbert showed what was possible with the Vectrex, a huge step upwards from anything previously in existence. When starting to program for the Vectrex it is this binary which I've disassembled first to look at what he did. There are a lot of things here never seen before - the stable and very nice bitmapped output, the speed of the vector drawing functionality, the use of a 1-wire chip both for storing data and as a unique dongle for each LE cartridge (e.g. it contains the serial no. in a write-once area) or the masterful programming style. I particularly like the initial setup and security checks. And the modular internal design. The Protector in the Protector/YASI combination cart. and this LE one are not that different internally - most of the code and data is just assembled to another spot. A 'PRESS 1 TO EXIT' feature was added for the combined cartridge. The score initials compressed to make space for YASI's data. And the 1-wire functionality removed so the options page is just the buttons setup. So LE has more options for resetting the 1-wire chip (RESET HALL OF FAME) and once you reach 20k points a bonus game is available under options: Spike Goes Down. This patch substitutes the storage functionality, rearranges the buttons a bit to keep them in line with the VecFever defaults and adds both fast entry and the 'PRESS 1 TO EXIT' fast exit feature. "}
};