The last days I paused a little bit on Vectorblade and looked at another project. I looked closer at VEXTREME.
I built a V0.2 version some time ago, but never took/found the time to actually program with it/for it.
VEXTREME is another hardware project for the vectrex more information about it can be gleamed at:
and its “orginal” page at:
The SpritesMods cartridge at least partially inspired also the well known “VecFever” although the VecFever is a design of its own.
All “three” of the above are “cartridges” for the vectrex which feature a STM32 microprocessor. The microprocessor is fast enough to be able to handle the address and data line of the vectrex cartridge port and thus “emulate” a ROM.
All cards also feature a flash chip and feature different ranges of additional “cool” programs.
a) SpritesMods cartridge can play “clips” (like badapple) and can also be used as a Doom “player” (voom), and of course can be used as a multi cartridge. The design and source code is open. As far as I know SpritesMods is not actively developing or supporting it any longer.
b) VecFever (http://vecfever.com/ / VecFever)
Similar hardware wise, but its own, slimmer design. E.g it features “single-sided” components (only on top) – and is therfor easier to build. It also has fewer elements (e.g. no SN74LVC245 to convert voltages, the STM32 DO work with 5V), the VecFever uses a faster STM with more RAM.
Software wise the VecFever REALLY shines. Version 2.x of the firmware was recently made available to beta test people, which in design, usability and features trumps even the old VecFever firmware. Apart from the brilliant development features, there are also emulators for all 8 bit vector arcade games available – which can be played on the Vectrex in nearly arcade quality.
The VecFever is a “closed” product, no schematics or sourcecodes are openly available.
c) PiTrex (PiTrex)
Last year I started with the PiTrex and this winter/spring I continued… but being head over heals in Vectorblade I stopped again.
In short PiTrex is a cartridge which connects a Raspbian Pi (usually a PiZero) to the Vectrex cartridge port. The Vectrex processor (6809) is halted and the Pi takes control of the VIA 6522 within the Vectrex. Since the VIA is THE central interface within the Vectrex – all internal periphery can be accessed by the Pi (joystick, sound, vector generation…)
For more information please visit my PiTrex page and/or follow the links there.
I have put quite a lot of time into programming for the PiTrex – but due to other things that came up, I had to hit the “pause” button two times.
I don’t think I will continue my PiTrex activity though.
(Sorry Graham, Kevin – I will of course answer any question you may have concerning Vectrex programming – or the things I already did for PiTrex.)
a) Programming Vectrex, and especially accessing the analog parts within the Vectrex is really a pain in the arse. Sorry to be so blunt. Those damn Vectrexes all behave differently. I like to optimize and to get the best out of the stuff that I program.
It looks good on one Vectrex – than the next comes along and you have to change everything… then the next comes… and next… – doing that thru an additional indirection makes it worse!
b) I don’t like where the project is heading. Many people may find the support for Linux/Raspbian a good thing. Perhaps it is…
I find it decidedly NON interesting. I had fun doing the baremetal stuff, and I am glad I did that, and it actually works much better than I expected that it would. I have absolut control over everything. Also… it actually boots up QUICK. Insert cartridge – play (no waiting for linux to boot). I can’t even see that I would develop anything faster with an underlying Linux OS – since the FASTEST way to get a new compile, is to do that on a fast computer and copy the file on the SD-card. MUCH faster than compiling on Raspbian.
I don’t find that Vectrex over internet is a “thing” – and I don’t want to use an XBox controller.
c) I feel “restricted” with the current PiTrex.
There are three things I would wish for:
i) be able to emulate a ROM (like the other cartridges above) – but the PiTrex design makes this impossible
ii) be able to run the 6809 in parallel to the PiTrex – but the PiTrex design makes this impossible
iii) be able to output sound via the Pi (so that e.g. arcade emulations can output samples) – but the PiTrex design makes this impossible
This is actually what I wanted to write about. The image above is my second step to actually get an emulator running on the VEXTREME – what you see is a first image of “Asteroids”. The vectors are still a bit crooked, there is no sound and no input.
I took me about two days to get it running like in the above image. Depending on your point of view you might think that was fast – or you might think that was slow.
Fact is – I learned a lot about VEXTREME (and VecFever, since hardware wise these two are not so different).
It is funny, some things you think you know and you think you understand… but it really makes only “click” if you do it for yourself (at least I experience it like that).
I am talking about the RPC calls, running subroutines in RAM, timing for chip enable lines and such.
Anyway (again) – as you can see, the emulation is running, and I could probably get it to work quite well without investing to much more time.
Thing is – I probably won’t.
See… while the current VEXTREME is “interesting”, and one can learn and have fun with it – it too has limits which I clearly see.
RAM restrictions: 128k (VecFever 192k)
(I can not run Vectorblade on it)
Speed: STM32F411 -> 100Mhz (VecFever: STM32F405 168Mhz)
Even if I could program as well as Thomas (which I seriously doubt) – I would never be able to get the same kind of stuff running on VEXTREME as currently is “readily” available on the VecFever.
That is disheartening…
Perhaps… some day, if I find the time… and are willing – I’ll try to design my own Vectrex cartridge.
(Or someone might surprise me – and do an all wonderfull “open” cartridge 🙂 )