Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
    Manuals
    Options
    Photos
    Projects
    Repairs
    Software
    Tools
      Development
          CV Loader
          Dev. Corner
          EXEROM
          FUZIX
          Resources
          SDCC
          Z88DK
      Web Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

Memotech Software Development

CVPLAY - ColecoVision Games ROM Loader

by Martin Allcorn

 
Status : In Development
 

Martin has developed CVPLAY - a loader that allows some unmodified ColecoVision Games ROMs to run on the MTX !

The ColecoVision games console uses hardware very close to that used in the MTX computer, including a Z80 CPU, a TMS992xA VDP and a TI SN76489 sound generator. A couple of the most popular ColecoVision games, SEGA's Zaxxon and Nintendo's Donkey Kong have been on MTX users wish lists for a long time and now they are finally here!

Martin's loader is essentially a new boot ROM which maps the ColecoVision audio and video hardware ports to the MTX equivalents and maps the standard ColecoVision controllers to the MTX keyboard ports. The first game that Martin tried was the Zaxxon ROM which ran without error - a great start!

This was closely followed by Donkey Kong which also ran pretty much perfectly. The only issue is that there is some slight "noise" on the VGA screen output, mostly confined to an area just to the left of the "1 UP" text in the upper left corner. It is slightly annoying, but does not affect the playability of the game.

After such an encouraging start, a few issues came to light as more unmodified game ROMs were tried. It became clear that not all ROMs were written to use the same interface mechanism - some wrote to the hardware ports directly, rather than through the boot ROM/BIOS.

On further investigation, Martin found that well written games like Zaxxon peek memory locations in the BIOS to determine the I/O ports that the VDP is connected to. With the updated BIOS changed to reflect the MTX VDP on ports 1 and 2, the game worked seamlessly without any modification to the ROM itself. Other games that write directly to the standard ColecoVision VDP I/O ports of BEh and BFh were obviously incompatible with the modified BIOS.

At this point, a small subset of the available Coleco ROMs can be run without modification, some others, e.g., Chop Lifter, can be made to run after being manually patched. 

Downloads - Loader (CVPlay)

  Version Date Comments
0.15 250614 Additional timing delays to suit the 4MHz MTX vs. 3.58MHz CV clock
Tweaks to the sound emulation to enhance compatibility
0.14 250613 Now also loads ROMs patched to use MTX video ports (.COP)
Reduced splash screen delay from ~10 seconds to 2 seconds
0.12 Beta Obsolete
       

ROMs downloaded from Archive.org (https://archive.org/download/rr-colecovision/region%20free/colecovision-region-free.7z )

Instruction manuals are available from ColecoVision Manuals : Free Download, Borrow, and Streaming : Internet Archive

Unmodified ROMs from the archive have a .COL file type. ROMs patched to explicitly use the MTX VDP ports (01 & 02), rather than the standard ColecoVision I/O ports (BEh and BFh)  have been renamed to a .COP file type and can be downloaded below.

This spreadsheet lists the ROMs present in the archive file and the status of testing. (coming soon)

Number of unmodified ROMs currently tested as working : 22    (16/06/25)

Additional Patched ColecoVision ROMs

  Game Publisher Year Source Size Comments
Chop Lifter Broderbund 1982 Archive.org 16kB VDP Ports edited
Frogger Parker Brothers/ Sega 1983 Archive.org 16kB Initialisation code modified
             
             
             
             
             

 

Examples
Title Chop Lifter
Publisher Broderbund
Year 1982
Genre Helicopter shoot 'em up
Source Archive.org
Comments

  16kB
Title Frogger
Publisher Parker Brothers/ Sega
Year 1982 - 1983
Genre The classic !
Source Archive.org
Comments

Occasional corruption to the wall in the middle, does not affect game play
16kB
   

 

Please e-mail me your test results with other games and I will include them here.

Incompatible ROMs

  Game (Links to info) Publisher Source Comments
Χ        


Game Controls

Rather than traditional joysticks, the ColecoVision console has two custom hand controllers. Each comprises a control stick, two side buttons and a numeric keypad with additional "*" and "#" keys.

Keypad buttons 1-8 allow you to select a Game Option before beginning to play. Pressing * after a game allows you to replay the same game option. Pressing # after a game allows you to return to the Game option screen. The keypad has additional uses for some games.

The eight-directional Control Stick allows you to direct movement of an object depending, on the game cartridge

Side buttons have varying functions, depending on the game cartridge.

Some cartridges come with an overlay, which slides into the hand controller to re-label the keycaps.
   
To allow games to be controlled with the MTX keyboard/joysticks, the BIOS emulation has been programmed to map the MTX keys to the controller functions as generically as possible. The keyboard/joystick operation should be suitable for most games, but some that use custom controls may need a little "trial and error" to work out the appropriate MTX keys.

The function of the left and right side buttons can vary considerably, if you are struggling to work out what MTX key does what, please download the appropriate game manual and refer to the notes below on how the keys are mapped in the emulation.

The ColecoVision controllers are each assigned to two Z80 I/O ports:
Port A is Fire and Joystick movement, Port B is Aim and Keypad
Player 1 Port A = FDh, Port B = FCh
Player 2 Port A = FFh, Port B = FEh

The side buttons are referred to in Coleco documentation as "Aim" and "Fire", without any definition of whch is which and the behavior seems to vary between games. 

The ColecoVision controller has eight directional commands, L, R, D, U and the intermediate diagonal positions. The MTX joystick uses 4 "axis", L, R, U and D but the MTX ROM is able to read concurrent keystrokes such that, say, L and U can be interpreted by the emulation as the NW diagonal that would be sensed by the ColecoVision controller.

MTX Keys Player 1 MTX Keys Player 2 CV Controller
Cursor Up (5) B North (Up)
Cursor Down (.) C South (Down)
Cursor Left (1) Z West (Left)
Cursor Right (3) M East (Right)
Home (2) Space Fire (Side 1)
    CV Keypad
CLS (ENT) . Aim (Side 2)
F1 1 1
F2 2 2
F3 3 3
F4 4 4
F5 5 5
F6 6 6
F7 7 7
F8 8 8
BRK (9) 9 9
INS (0) 0 0
PAGE (7) - *
EOL (8) ^ #
n/a n/a Fire 3 (unused)
n/a n/a Fire 4 (unused)

   

 

 

 

 

mailto: Webmaster

 Terms & Conditions