Vectrex core for Chameleon

This page is the home of the Vectrex core for Turbo Chameleon 64

This is an experimental core, and while I do my utmost to make sure it works for everyone and will try to help solve any problems that arise, you run this core entirely at your own risk.

If you’d like to show your appreciation for this core, or motivate me to work on this and other cores in future, donations are welcome at https://paypal.me/robinsonb5 or https://patreon.com/coresforchameleon. Anyone donating £20 or more via PayPal or sponsoring on Patreon at the second tier will be thanked by name in a “Core Supporters” shout-out page in subsequent releases.

Please note: it’s vitally important that you download the correct version of the core for your Chameleon.

Vectrex for Chameleon V1 hardware: If you have a single mini-DIN socket on the left hand side of your Chameleon, to which a breakout cable attaches for the keyboard and mouse, then you have V1 hardware and need this version:

Vectrex for Chameleon V2 hardware:  If you have three mini-DIN sockets on the left-hand side, with the keyboard and mouse plugging in directly, you have V2 hardware, and need this version:

Using the core

Flash the .rbf file into your Turbo Chameleon 64 using the chaco utility. You only need to flash the .rbf – the other files go on the SD card.

You will need a Vectrex BIOS file on the SD card: it must be named “vectrex.bin” and be in the root directory. The BIOS file can contain just the BIOS, in which case it will be 4k in size, or it can also contain Mine Storm, the built-in game which came with the Vectrex. The combined Mine Storm / BIOS file is 8k in size.

BIOS files known to work have the following MD5 sums:

 4k: ba9260bb961d60e718378cc16a8051d7
8k: ab082fa8c8e632dd68589a8c7741388f

Optionally, you can also copy the supplied autoboot.vec file onto the SD card, in which case you’ll see a scrolltext with credits and thanks to supporters when you start the core.

Since the Turbo Chameleon 64 can’t support more than three gamepad buttons via the DB9 ports, the extra buttons are mapped as follows:

(This mapping differs from my other cores because the Vectrex controller has four buttons in a line, making the usual Enter/Shift/Ctrl/Alt cluster of keys for buttons feel really unnatural.)

Gamepad 1

Gamepad buttonPS/2 keyboardC64 keyboardCDTV controller
UpUpWUp
DownDownSDown
LeftLeftALeft
RightRightDRight
Button 1,,Play*
Button 2..Volume up*
Button 3//Button B
Button 4Right ShiftRight ShiftButton A

Gamepad 2

Gamepad buttonPS/2 keyboardC64 keyboardCDTV controller
StartCaps LockRun/StopPlay*
SelectLeft shiftLeft shiftVolume up*
Button ALeft AltButton A
Button BLeft CtrlButton B

* The CDTV controller has a slide-switch which selects whether D-pad and A/B buttons are directed to port 1 or port 2. The core keeps track of which port is selected, and directs the Play and Volume Up events to the same port.

Other keys

FunctionPS/2 keyboardC64 keyboardCDTV controller
MenuF12<- (top left)Power
Hi sensitivityF1F1
(for analogueF2F3
joy emulation)F3F5
Lo sensitivityF4F7

This core was ported from the MiST Vectrex core, maintained by Gehstock, and originally by Dar.

Source code can be found at github, as usual – see https://github.com/robinsonb5/Mist_FPGA/tree/master/Console_MiST/GCE%20-%20Vectrex_MiST

Huge thanks to everyone who’s supported my projects in recent months – it’s very much appreciated.