A new update for ColecoDS Phoenix-Edition, the emulator of the ColecoVision and frontend for several systems based on the Zilog Z80 microprocessor.
The emulation of ColecoVision ROMs can be performed by placing the bios coleco.rom
in the same directory as the program or in /roms/bios
or, or, /data/bios
. .
The program also supports MSX emulation, the home computer Memotech MTX, the Spectravideo SV-328 home computer, the Super Game Module (SGM), Coleco ADAM expansion peripheral, and 32K’s larger MegaCart games.
In order to emulate the games of the Spectravideo SV-328 home computer, you need the BIOS svi.rom
(to prefer bios svi110.rom
or, or, svi111.rom
, just simply rename the file in svi.rom
).
Users who used non-original BIOS to reduce the 15 seconds of display of the COLECOVISION banner have encountered compatibility issues. It is strongly recommended to use the original Colecovision BIOS with a specific CRC32.
This new version includes a fix for the decimal-mode ADC instruction in the core of the 6502 for the CreatetiVision, solving problems such as incorrect viewing of hexadecimal digits in the scores of some games.
Optimisations and improvements have been made to the CreatiVision driver, with the addition of most common and stable “undocumented” opcodes.
In addition, the emulation for the ADAM system has been made more precise, with the memory now initialized alternating 0x00
(byte even) and 0xFF
(disappeared (disappeared) according to AdamEM and Shawn Merrick’s experiments.
Characteristics of
- Colecovision game support (files
.rom
or, or,.col
). Requires the BIOScoleco.rom
. . - Support for the Super Game module including the AY audio chip.
- Support Megacart Bankswitching (up to 1024K).
- Coleco ADAM game support (files
.ddp
or, or,.dsk
). It requireseos.rom
and andwriter.rom
. . - Sega SG-1000 (rom) games support
.sg
). - Sega SC-3000 (rom) games support
.sc
). - Support for games Sord M5 (rom
.m5
: requires the BIOSsordm5.rom
. . - MSX1 game support (
.msx
or, or,.rom
or, or,.cas
or, or,.dsk
) up to 1024K. - Support Spectravideo SVI (
.cas
or, or,.rom
) – requires the BIOSsvi.rom
. . - Casio PV-2000 support (rom
.pv
: requires the BIOSpv2000.rom
. . - Support Hanimex Pencil II (rom .pen): Requires BIOS
Pencil2.rom
. . - Support Tatung Einstein (file
.dsk
o file runtime.com
: requires the BIOSeinstein.rom
. . - Support for games Memotech MTX (files
.mtx
or, or,.run
or, or,.com
) – only single-loading games. - Support games Creativision (
.cv
) – requires BIOSbioscv.rom
– supports ROM up to 32K. - Full mapping of controller buttons and touch-screen input.
- Support for the highest scores: 10 scores per game.
- Save/Load the game state (one slot).
- Video fusion mode (see below) and vertical synchronization.
- Exchange LCD screen (retain premuti++During the game).
- Overlay support for the few games that need it.
- Mapping of the Super Action Controller, Spinner and Roller Controller (Trackball).
- Maximum speed, full audio and full frame rate even on older hardware.
Known problems
- No more than 1024 files per directory: Divide ROM files as needed.
- The path and file name of a ROM cannot contain more than 160 characters. Keep them on the shortest side.
- Games using vocal champions (Squish Em Sam, Wizard of Wor, etc.) will not play speech due to the limitations of sound emulation.
- The original version of StarForce of 2011 will lock itself: this is a known bug. There is a patched version of the StarForce game on Atariage.
- The MSX development, the emulation of the Einstein and the noise of Einstein and the Sord M5 CTC are not perfectly accurate (but quite close).
- The MSX Konami SCC audio chip is partially emulated but is not perfectly accurate (Gradius 2/3, Parodius, Salamander, etc.. will have music but the pitch will not be perfect – good enough).
File of the BIOS
These are the CRC32 hashs of the BIOS files used during testing. Search for these if you want to get the maximum compatibility:
3aa93ef3 coleco.rom (versione originale)
a30b0c34 coleco.rom (avvio più rapido)
94ee12f3 msx.rom (MSX) - vedi sotto per ulteriori opzioni
c3c590c6 bioscv.rom (Creativision)
a746eeb6 einstein.rom (Tatung Einstein)
338d7b59 pencil2.rom (Hanimex Pencil II)
8f31f297 pv2000.rom (Casio PV-2000)
92cf9353 sordm5.rom (Sord M5)
bc433df6 svi.rom (Spectravision)
05a37a34 eos.rom (ADAM)
58d86a2a writer.rom (ADAM)
Added support for 4 optional BIOS ROM for MSX. Despite numerous online searches, it has not been possible to determine with certainty which specific machine represents the msx.rom
– omnipresent.
This ROM seems to be a generic European machine and, through binary comparisons, a remarkable resemblance has been noted with the Goldstar FC-200 or perhaps the Casio MX-15, with only 11 bytes difference in each.
Starting from version 8.2, ColecoDS will support an additional 4 optional MSX BIOS ROMs, as follows (with the ability to select them in the configuration and set a global default value if desired):
e9ccd789 cx5m.rom
– Representative Yamaha UK/EU machine with 32K RAM.5486b711 hx-10.rom
– Representative the Toshiba UK/EU machine with 64K RAM.ee229390 hb-10.rom
– Representative of the Sony HitBit JP machine with 16K RAM (using the Japanese matrix).5ad03407 fs-1300.rom
– Representative of the National JP machine with 64K of RAM (using the Japanese matrix).ee229390 pv-7.rom
– Casio PV-7 representative with only 8K RAM. If you cannot find this BIOS, you can use itpv-16.rom
or, or,hb-10.rom
As an alternative.
As for the msx.rom
, you can replace one of the following standard machines (and will be searched/found in the order indicated):
15e503de cf-2700.rom
– Panasonic CF-2700 UK Machine with 64K of RAM in slot 3 (usually slot 1).8205795e fc-200.rom
– Goldstar FC-200 European Machine with 64K RAM in slot 3 (usually slot 2).
It is recommended to keep the names of the BIOS as indicated above. In case they are online with longer names, they will usually work properly.
Copy these BIOSs to the default BIOS directory. Once one of the optional BIOS ROMs has been selected in the configuration, the emulation of the corresponding MSX machine will be activated.
This implies that RAM and memory slots will be identical to those of the machine you are trying to emulate. For more details, please refer to the MSX section of the reference information.
ADAM Compatibility
- Emulated ADAMAM is not completely bug-free but generally performs most tape images (
.ddp
) or disk images (.dsk
). - The emulated ADAM is a 128K (64K internal memory and 64K memory system expanded), enough for almost all games.
- Sometimes when you load an ADAM game the system doesn’t work… just press RESET and it will probably load.
- By default, RAM is cleared when you reset ADAM. In Game Config you can change the memory deletion in “RANDOM” which could improve the ability to load some games.
- If the game uses a CP/M disc, try to change the memory deletion in “ADAM CPM”, which helps.
- You can activate the full ADAM keyboard with the overlay configuration (scess “ADAM KEYBOARD”). They are not all ADAM keys, but they should be enough to play.
- Tape or disc images are NOT automatically rewritten on the SD card… you need to press the small box icon to make this happen (and only when the tape/disk is idle – it will not be saved if the tape/disk is busy reading/write).
- If an ADAM game does not load on the first attempt, restore it. Usually you charge on the second attempt. Go and understand.
MSX Compatibility
Considering that it is a Colecovision emulator, the support and compatibility of MSX1 is reasonably high.
In Game Options you can see how the default Mapper MSX is set to “GUESS”, which does a good job of uploading the ROM, especially for 32K or smaller games. However, if a game doesn’t work, you can try these tips:
- A small number of games don’t work with the open source C-BIOS. In this case you would need a real BIOS
msx.rom
. . You can configure it in Game Options. - Most 64K games use the ASC16 memory mapr, so you can try that… but some (e.g. Mutants from the Deep) are mapped linearly from 0-64K and you’ll need to select LINEAR64 in Game Options.
- Automatic detection on the KONAMI8 and KONAMI-SCC mappers is quite good… but many other games that use ASCII8 or ASCII16 are not detected well: you should try those mappers if the game “bigger than 64K” does not work.
- Some of the really big games (128K or larger) work slowly: if you don’t get the full frame rate, you can try switching to the DrZ80 core (not all games will work with this) and/or you can disable vertical synchronization and/or enable Frame Skip. We recommend that you turn off vertical synchronization at least to get maximum speed from large MSX games.
- Occasionally a ROM will not be performed, but it could be an alternative dump. For example, the 384K version of R-Type is a bit of a mess to handle for the emulator, but someone has created a clean 512K version that loads and works great.
- With a little disliage in trying out different mapping/BIOS combinations, you should be able to get a 97% run-perecution rate on MSX1 games.
- MSX2 games are not supported and will not run.
MSX memory is structured as follows:
SLOT0: MSX BIOS (first 32K)
SLOT1: Cartridge Slot
SLOT2: Empty (0xFF)
SLOT3: RAM (64K)
Compatibility Memotech MTX
The Memotech MTX works at 4MHz, which is faster than Colecovision (and MSX, M5, SG, etc.). This is quite well emulated, although the sound is not perfect due to some CTC chip timing differences compared to the actual hardware.
In addition, only about 80% of the games are loaded and executed correctly: some games use more complex chargers and are not well supported by the ColecoDS.
Sometimes you will have to run an alternative dump [a1] or [a2] of a game to make it work properly. Of the two types ( .mtx
and and .run
), the files .RUN
They are generally better supported: look for those (the excellent MEMU MTX emulator has a good selection).
There is support for the MTX MAGROM project… this is a multi-cart. You can use 1.05 or 1.05a of the binary file MAGROM 512K… simply rename it as a….MTX
and load it by starting the game and pressing the buttonto start the menu.
The emulated MTX is a basic MTX-512 system with 64K RAM… This should allow most games to run.
Once the game is loaded in memory, the BASIC prompt will appear. At this prompt you need to type LOAD ""
(if if you have .MTX
) or type RUN
(if if you have .RUN
).
Just press the DS buttonto automatically enter the correct command. Alternatively, you will find the controlsRUN
in the box icon menu.
Compatibility Spectravideo SVI
This emulator will support files.cas
for Spectravideo SV-328 (64K machine), you can use the buttonsand andfor bload commands and common executions.
Compatibility Sega SC-3000
This emulator supports files .sc
Just as ROM (not cassettes) but ColecoDS will support the incredible SC-3000 Survivors Multi-Cart and MEGA-Cart.
I definitely prefer the Multi-Cart as it is smaller and contains the same selection of tape games. Rename the 2MB or 4 MB binary file as .sc
to load it into ColecoDS.
Compatibility Casio PV-2000
This emulator supports files .pv
Just like ROM (not cassettes). Rename all files .bin
that you find how .pv
So that the emulator loads them correctly.
Hanimex Pencil II Compatibility
There is only one known game downloaded right now: Treasure Hunt. Luckily it’s a fun game! Unfortunately, it came on 2 ROM chips. Then you have to “glue” the two ROMs together.
If you can find a “Software List” MAME late from 2020 or later, you’ll find Treasure.zip
that contains two ROM files: pen702a.bin
(8k) pen702b.bin
(4k) You have to glue them together.
- In Windows, use the command line:
copy /b pen702a.bin + pen702b.bin TreasureHunt.pen
- In Linux, use the command line:
cat pen702a.bin pen702b.bin > TreasureHunt.pen
This should leave you with a 12k ROM called TreasureHunt.pen
which is now reproducible on the ColecoDS system.
Compatibility Tatung Einstein
The base machine 64K is emulated. Only files will be played at the moment .COM
. . In interwebs, you can mainly find files only .dsk
and file .COM
which must be extracted from them. The easiest way is to use one of the following programs:
The dsktool utility from: https://github.com/charliercompobson/einsdein-vitamins or EDIP v1e that you can find in the extra folder on the github page of ColecoDS.
With one of these tools, you should be able to mine more than 50 games .COM
Currently working. A future version of the.DSK
It will directly support the files
Controller
If you prefer you can map the buttons on the P1 or P2 controllers, full support is also available for Spinner X (P1) and Spinner Y (P2) or map both to get support for trackball games.
They also work for games like Turbo Steering, you can change the sensitivity of the spinner on one of the five different settings (Normal, Fast, Fastest, Slowest).
For MSX emulation, the ColecoVision keyboard is mapped as follows:
1 2 3
4 5 STOP
M1 M2 M3
SPC 0 RET
It should be enough to make most MSX1 truck games work… In Game Options you can also replace the “5” key to be mapped in any other MSX key.
Blend Mode (DSi)
The most interesting change is found in the new “mixed mode” coming from the StellaDS emulator. In this mode, two frames are merged together, useful when running games like Space Fury or Galaxian where the projectiles on the screen are just 1 pixel wide.
These games are designed to run on an old cathode-tube television with phosphorus that slowly decays so that the eye can see slight traces as the image fades.
On DSi consoles, using this new mode will make this type of games really bright and visible.
The DSi XL/LL has a slower refresh on the LCD and comes closer to the old tube TVs… so the blend mode is not necessary for the XL/LL models.
However, using blend mode has a 25% CPU cost. The DSi can handle it, while the DS-LITE/PHAT may have difficulties with the most complicated games.
So my recommendation is as follows:
- Non-LL/LL DSi – Use Blend mode for games that take advantage of them (Space Fury, Galaxian, etc.).
- DSi XL/LL – Don’t worry… the decay of the XL/LL screen is slower and the games look great as it is.
- DS-LITE/PHAT – You can try it but the framerate may drop below 60 in some games.
To enable this new blend mode, choose the game and go to the “Game Options” submenu to activate it.
Vertical Sync
Vertical synchronization will force the on-screen update (update) when the DS goes into the vertical empty space. This reduces tearing and minor graphic artifacts, but it also has a speed cost.
The DSi can handle it for almost any game (Princess Quest is a game where you could disable it) but the DS can only handle it for the simplest games. So by default it is enabled for DSi and disabled for DS-LITE/PHAT. You can activate it in the “Game Options” (and START-SALVA as you wish).
A story of two cores
ColecoDS supports 2 different cores of the Z80 CPU. DrZ80 is very fast but it is not 100% accurate, so some games don’t work properly. The CZ80 is the 10 percent slower but is much closer to 100% accuracy, and the games generally work great.
For DSi and later, the CZ80 core is the default. For DS-LITE/PHAT, the DrZ80 core is the default.
You can turn this on (and save by game) in GAME OPTIONS. If you want to use the CZ80 core but need a little more speed to make the games playable, you can also play with the Vertical Sync and Frame Skip settings.
The need for speed
If a game doesn’t work at the right speed or has slowdown periods (not attributed to the actual game), here are the things you can try in the order in which I would try it myself:
- Disable Vertical Sync.
- Activate Frame Skip.
- Sete Max Sprites on 4.
- Switch to the core of the fast-pact DrZ80 CPU.
Changelog
- Fixing ADC in decimal mode in the core of the 6502 for the CreatiVision, solving problems such as incorrect viewing of hexadecimal digits in the scores of some games.
- Optimizations and improvements for the CreatiVision driver, including the addition of most common and stable “undocumented” opcodes.
- Improved the accuracy of the emulation for the ADAM system, with the now-initialized memory alternating 0x00 (byte-alty) and 0xFF (and-bedied) (and-bear) experiments, according to AdamEM and Shawn Merrick’s experiments.
Download: ColecoDS Phoenix-Edition v10.1
Download: Blank.cas
Download: cbios.txt
Download: Source code ColecoDS Phoenix-Edition v10.1
Source: gbatemp.net