How to construct a Vectrex Multicart (Very simple)

by Tursi (M.Brent)


First - the background!

The Vectrex has a 32k address space available on the cart port. Most games are only 4 or 8k, however. There are a few public domain programs at 32k.

The cartridge port pinout is as follows. Even is on the top, odd is on the bottom. The circuit board I worked from was labelled, so it's not too hard to tell.

(Some updates thanks to Canadian CoCo Nut.)

PIN   Function

  1. *HALT
  2. Vcc (+5v)
  3. A7
  4. Vcc (+5v)
  5. A6
  6. A8
  7. A5
  8. A9
  9. A4
  10. A11
  11. A3
  12. *OE Inverted copy of 'E' clock from CPU. Valid CPU access when E is high
  13. A2
  14. A10
  15. A1
  16. *CE A15 from CPU according to the nut. ;) However, the commercial carts I've seen use this line for chip enable.
  17. A0
  18. D7
  19. D0
  20. D6
  21. D1
  22. D5
  23. D2
  24. D4
  25. GND
  26. D3
  27. GND
  28. GND
  29. A12
  30. R/*W Note: unused on many carts
  31. A13
  32. *CART Active low Cartridge enable - low when E is high and A15 low. Although I verified that it seems to work, many carts do not use it.
  33. A14
  34. *NMI
  35. Port B, Bit 6 of the 6522 PIA (software controlled line)
  36. *IRQ

The cartridge I worked with was Clean Sweep, a 4k x 8bit cart. The 24-pin pinout for the ROM on the board is:

  1. A7
  2. A6
  3. A5
  4. A4
  5. A3
  6. A2
  7. A1
  8. A0
  9. D0
  10. D1
  11. D2
  12. GND
  13. D3
  14. D4
  15. D5
  16. D6
  17. D7
  18. A11
  19. A10
  20. *OE
  21. *CE
  22. A9
  23. A8
  24. Vcc

The EPROM chosen was the 27C040, a 512k x 8bit EPROM. With this EPROM, allocating 8k per image, we can fit up to 64 images on the ROM. (I only had 44 when I did it, mind you.) Using a second switch (see below), we can also map in the 32k ROMs. Anyway, this handles all the commercial stuff, although the ones that need a light pen or 3D helmet will still need those things, and apparently Animaction needs some extra RAM, which this doesn't provide.

The 27C040 has the following 32-pin pinout:

  1. Vpp
  2. A16
  3. A15
  4. A12
  5. A7
  6. A6
  7. A5
  8. A4
  9. A3
  10. A2
  11. A1
  12. A0
  13. D0
  14. D1
  15. D2
  16. GND
  17. D3
  18. D4
  19. D5
  20. D6
  21. D7
  22. *CE / *PGM
  23. A10
  24. *OE
  25. A11
  26. A9
  27. A8
  28. A13
  29. A14
  30. A17
  31. A18
  32. Vcc

If you line up the back end of the ROMs, you'll notice all the pins except 3 line up - A11 and *CE are swapped (this is apparently due to a last minute ROM change at GCE ;) ), and A13 on the EPROM line up with Vcc on the ROM.. which isn't right.

What you'll need, then:

1x 27C040 EPROM, programmed with all the images that you wish to run, each starting exactly on an 8k boundary. (I've found the M27C4001 a good replacements)

1x DIP switch with at least 6 switches (or 6 other on/off switches as you choose)

6x 10k resistors (get small ones, not big ones like I did. ;) )

1x Vectrex cart that you’re willing to canabalize
... and a bit of wire, soldering iron, solder, and a clue.

First you'll need to desolder the ROM on the Vectrex board, and get the holes clean. It's not too bad, mine came off easily with a bit of desoldering braid, but be careful not to apply too much heat as the pads and traces lift really easily (especially the second and third times through... oy!)

Next, cut the traces from 10 and 16 on the card edge connector. If you look, they run under the chip and loop around to reverse the signals. We actually want them back in their original positions. I used a jumper wire after mounting the EPROM, so just cut the traces and come back to it. ;)

On the EPROM, lift pins 1, 2, 3, 4, and 28, 29, 30, 31, 32, so that they don't touch the board. All these pins except 28 have no hole anyway. Make sure that pin 28 doesn't touch the connection underneath, as it's +5v. Insert the EPROM into the board, with the notched side hanging over the edge. (IE: pins 16 and 17 are in holes and pins 1 and 32 are not. ;) ) Go ahead and solder it in. Note, if you use a socket, there won't be room to reassemble the cartridge.

Connect a jumper from card edge pin 16 to EPROM pin 22, and pin 10 on the edge to EPROM pin 25. The traces on the circuit board run right beside these pins so they're easy to spot. This fixes the reversed pins.

Connect pin 1 and pin 32 on the EPROM to Vcc (card edge pin 2 and 4, either one).

Connect pin 4 on the EPROM to card edge pin 29 (this pin was not connected on Clean Sweep.) This is the 8k high address bit.

Connect one side of all the switches to Vcc. Connect one lead from the other side of each switch to each of EPROM pins 2, 3, 28, 29, 30, and 31. Numbering the switches from 0 to 5, I mapped them like this:


Finally, attach a 10k pulldown resistor between GND and the EPROM pins going to the switch, that is, pins 2, 3, 28, 29, 30 and 31. This forces the leads to logic low when the switch is off.

Mounting things can be a pain.. I just cut a notch in the end of the cartridge for the DIP switch and mounted it there. Then I printed out a nice small label listing the games and what switch settings to use for each.

Trouble-shooting - If things go wrong... check the wiring. Over and over again. Here's what I specifically ran into:

-forgot to swap pins 10 and 16 - Vectrex was dead with the cart in place

-pullup resistors not in place - some, not all, but some games crashed horribly after the game title page. (And some were glitchy there).


That's all! Here's a blurry image of the prototype... for what it's worth. ;) Schematics follow.

I've included a rough schematic for using a DPDT to enable 32k mode... it could be used to stick 32k games in the cartridge. It just replaces SW0 and SW1 with the appropriate address lines from the Vectrex. The caveat then is that 32k games must sit at a 32k offset, and all other games at an 8k offset. You'd also have to remember to flip the 32k switch to play a 32k game, but there are some nice ones (like Vecmania)... This is tested and works well. ;)

The following games are in the all32k.bin file (with dipswitch settings):

               Original File    Dip Switch Setting
make8k all.bin ARMOR.bin        000000
make8k all.bin BEDLAM.bin       000001
make8k all.bin BERZERK.bin      000010
make8k all.bin BLITZ.bin        000011
make8k all.bin CASTLE.bin       000100
make8k all.bin CHASM.bin        000101
make8k all.bin CRAZY.bin        000110
make8k all.bin DUALVEC2.bin     000111
make8k all.bin HEADSUP.bin      001000
make8k all.bin HYPER.bin        001001
make8k all.bin LANDER.bin       001010
make8k all.bin MELODY.bin       001011
make8k all.bin MINE3.bin        001100
make8k all.bin NARROW.bin       001101
make8k all.bin NARZOD.bin       001110
make8k all.bin PATRIOT.bin      001111
make8k all.bin POLAR.bin        010000
make8k all.bin POLE.bin         010001
make8k all.bin RIPOFF.bin       010010
make8k all.bin SCRAMBLE.bin     010011
make8k all.bin SOLAR.bin        010100
make8k all.bin SPACE.bin        010101
make8k all.bin SPIKE.bin        010110
make8k all.bin SPINBALL.bin     010111
make8k all.bin STARHAWK.bin     011000
make8k all.bin STARTREK.bin     011001
make8k all.bin SWEEP.bin        011010
make8k all.bin WEBWARS.bin      011011

rem 32k switch on

make32k all.bin AGT.bin         011100
make32k all.bin DKTOWER.bin     100000
make32k all.bin frogger.bin     100100
make32k all.bin Omega16k.bin    101000
make32k all.bin SPECTRUM.bin    101100
make32k all.bin SPIKEHOP.bin    110000
make32k all.bin vm-bank1.bin    111000
make32k all.bin vm-bank2.bin    111100
Click here to download the binary for the 32k cartridge

Click here for the main page