 |
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.
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)
Examples |
 |
|
 |
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) |
|
|
|
|