Upgrading a Vectrex to 32 Bits
I built a cartridge, which I call the Vectrex32 SmartCart, based on the Microchip PIC32. It's a 32 bit microcontroller that runs at 200 MHz, has a floating point unit, 2MB of flash, and 512KB of RAM. By comparison, the Vectrex's 6809 is an 8/16 bit processor with 8KB of ROM and 1K of RAM.
The BASIC interpreter and the game run on the PIC32. There's a dual-port memory chip readable and writable by both the PIC32 and the 6809. The PIC32 writes 6809 machine code into the dual-port memory and the 6809 runs it. Thirty times per second, the PIC32 writes the instructions needed to draw the screen, play sounds, and read the controller. Since the game logic is running on the PIC32, games can be far more sophisticated than anything the Vectrex could do alone.
The SmartCart also has a USB interface. When connected to a PC, it appears as a mass storage drive and a serial port. The drive holds BASIC programs and the serial port can be used with a terminal emulator. You can interactively debug a BASIC program (my version of BASIC supports breakpoints, single-stepping, printing out variables, and more). You can also interactively change things on the screen, e.g. you can experiment to get your shapes looking right and moving right.
So basically: he took the 1982-vintage Vectrex and wrote a cartridge for it that turns it into a simple I/O device, with the real program running elsewhere. But, to avoid letting things get too modern, he made the controlling computer (which also fits inside the cartridge) be of 1992-vintage instead of something modern.
Today I learned that BASIC can have breakpoints. Apparently these neo-retro BASICs have advanced beyond what I'm used to: when CLOADM $C000 fails because your cassette stretched, you just type it all in again.
I feel like this must have been what game development was like during those heady, accelerating days toward the end of the 19A0s.
Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.