ColecoDS Phoenix Edition

From GameBrew
ColecoDS Phoenix Edition
Colecodswav2.png
General
AuthorDave Bernazzani (wavemotion)
TypeConsole
Version5.7
LicenseMixed
Last Updated2022/01/12
Links
Download
Website
Source

ColecoDS is a Colecovision Emulator for the DS/DSi, based on ColecoDS by Alekmaul.

Because the chips used in the Colecovision Hardware were so common in that era, other systems tended to be very close to the CV in terms of hardware. Often only the IO/Memory was different.

As such, this emulator also supports cartridge (not disk or cassette) games from Sord M5, the SG-1000 and the MSX1.

Features

  • Colecovision game support (.rom or .col files).
  • Super Game Module support including AY sound chip.
  • Megacart Bankswitching support (up to 512K).
  • Full Controller button mapping and touch-screen input.
  • High-Score support - 10 scores per game.
  • Save/Load Game State (one slot).
  • Video Blend Mode (see below) and Vertical Sync.
  • LCD Screen Swap (press and hold L+R+X during gameplay).
  • Overlay support for the few games that need them.
  • Super Action Controller, Spinner and Roller Controller (Trackball) mapping.
  • Sega SG-1000 game support (.sg roms).
  • Sord M5 game support (.m5 roms) - requires sordm5.rom BIOS.
  • MSX1 game support (.msx or .rom) up to 512K.
  • Full speed, full sound and full frame-rate even on older hardware.

Installation

To run requires a coleco.rom BIOS to be in the same directory as the emulator or else in /roms/bios/ or /data/bios/.

  • For Sord M5 games, you will also need an 8k sordm5.rom bios in the same directory as the coleco.rom BIOS.
  • SG-1000 emulation does not need a BIOS.
  • MSX emulation does not need a BIOS (C-BIOS used), but you can put msx.rom in /roms/bios/ or /data/bios/ and the emulator will use that instead.

User guide

Blend Mode

This is one of the huge change added to ColecoDS. In this mode, two frames are blended together, which can be particularly useful for certain games, where DSi LCD cannot hold onto the pixels (e.g. bullets that are only 1 pixel wide on screen) long enough to be visible. Below are some of the recommended settings:

  • DSi non XL/LL - Use Blend Mode for the games that benefit from it (Space Fury, Galaxian, etc).
  • DSi XL/LL - Don't bother. The XL/LL screen decay is slower and games look great as-is.
  • DS-LITE/PHAT - You can try it but the framerate might drop below 60 on some games.

To enable this new blend mode, pick your game and go into the Game Options sub-menu and turn it on.

Vertical Sync

This setting will force the update (refresh) of the screen when the DS goes into the vertical blank. This reduces tearing and minor graphical artifacts but comes at a cost of speed.

The DSi can handle it for almost all games (Princess Quest is one game where you might turn it off) but the DS can only handle it for the more simple games. So by default it's enabled for DSi and disabled for DS-LITE/PHAT.

You can toggle this in the Game Options.

CPU cores

ColecoDS supports 2 different Z80 CPU cores:

  • DrZ80 - Fast but is not 100% accurate so some games do not run right. Default to DS Lite/Phat.
  • CZ80 - 10% slower but is much closer to 100% accurate and games generally run great. Default to DSi.

You can toggle this (and save on a per-game basis) in GAME OPTIONS. If you want to use the CZ80 core but need a bit more speed to make the games playable - you can also play with Vertical Sync and Frame Skip settings.

MSX Compatibility

Considering this is a Colecovision emulator, the MSX1 support and compatibility is reasonably high. If a game doesn't run, you can try these suggestions:

  • A small number of games don't work with the open-source C-BIOS. In this case you would need a real msx.rom BIOS. You can set this up in Game Options.
  • Games greater than 48K tend to use memory mappers. The emulator will guess but that's often not good enough. Use Game Options to try different mappers.
  • Some of the really big games (128K or larger) run slow. If you're not getting full frame rate, you can try switching to the DrZ80 core (not all games will run with this) and/or you can disable Vertical Sync and/or enable Frame Skip. Recommend you turn off Vertical Sync at a minimum to get the most speed from large MSX games.
  • Occasionally one ROM won't run but an alternate dump might. For example, the 384K version of R-Type is a bit of a mess for the emulator to handle, but someone made a clean 512K version that loads and runs great.

Optimize game speed

If a game just isn't running at the right speed or has periods of slowdown (not attributed to the actual game), here are the things you can try in the order:

  • Turn off Vertical Sync.
  • Turn on Frame Skip.
  • Set Max Sprites to 4.
  • Switch to the DrZ80 fast CPU core.

Controllers

You can map buttons to either P1 or P2 controllers.

There is full support for Spinner X (P1) and Spinner Y (P2) or map both of them to get support for trackball games. These also work for games like Turbo steering. You can change the spinner sensitivity to one of five different settings (Normal, Fast, Fastest, Slow, Slowest).

For the MSX emulation, the colecovision keypad is mapped as follows:

1 2 3
4 5 STOP
M1 M2 M3
SPC 0 RET

Screenshots

colecodswav3.png

Known issues

  • Borders are not correctly rendered - only a few games utilize them and are still fully playable without this.
  • Games that utilize voice samples (Squish Em Sam, Wizard of Wor, etc) will not play the speech.
  • 64K Activision PCB carts have no EEPROM support (Black Onyx, Boxxle - both playable without saves).
  • The original 2011 release of StarForce will crash - this is a known bug. There is a patched version of the game StarForce on Atariage.
  • Sord M5 games are not sound accurate due to CTC emulation issues.
  • MSX envelope sound and noise emulation not accurate (close enough).
  • MSX Konami SCC sound chip is not emulated (Gradius 2/3, Salamander, etc. won't have music).

Changelog

V5.7 2022/01/12

  • Fixed RESET of Colecovision games.
  • Added MSX keypad template and configurable MSX key '5'.
  • Improved detection of 32K MSX basic games for better compatibility.
  • Allow 64K ROMs to be loaded in linear memory.
  • Allow 48K ROMs to be memory mapped.
  • Allow 32K ROMs to be loaded at 0K, 4K or 8K.

V5.6 2022/01/11

  • Improved loading of MSX 8K, 16K and 32K ROMs for higher compatibility.
  • Fixed so we only return joystick input for Port 1.
  • Fixed bug in memory write to Slot 1 (rare).
  • Minor cleanups across the board.

V5.5 2022/01/09

  • Major improvement in speed for MSX megaROM games.
  • Fixed RESET of MSX megaROM games.
  • Slight optmizations to all emulation cores.

V5.4 2022/01/07

  • AY Envelope sound handler improved - more games sound right.
  • MSX, SG-1000 and Sord M5 SAVE/LOAD states working.
  • Press X on ROM selection to force-load MSX game cart (in case auto-detect fails).
  • Faster audio processing to gain us almost 5% speed boost across the board.
  • Fix controls when launched from TWL++.
  • More cleanups and minor improvements under the hood.

V5.3 2022/01/06

  • Added MSX config to set BIOS on per game basis.
  • Added MSX config to set mapper type.
  • Upgraded Config Database to 800 entries.
  • Upgrade High Score Database to 575 entries.
  • Upgrade roms per directory to 1024 entries.
  • Autodetect between CV and MSX .rom files.
  • Revised MSX controller map for better game support.
  • AY optmization so MSX games run faster.

V5.2 2022/01/04

  • MSX1 now supports 256K and 512K mega ROMs.
  • AY Sound core re-written so noise and envelopes work (not perfectly accurate but good enough).
  • Optional you can use msx.rom BIOS if found in the usual places.

V5.1 2022/01/03

  • MSX1 emulation now supports some of the common Mappers - some of the 128K games work but you'll probably have to turn off Vert Sync and turn on Frame Skip to get it to run full speed.
  • MSX1 emulation is now 64K Main RAM.

V5.0 2022/01/02

  • MSX1 game support up to 32K Standard Loader (.msx format).
  • New 3/4 Frameskip (show 3 of 4 frames) to help DS-LITE.

Release notes.

Credits

Thanks to Alekmaul who provided the baseline code to work with and to lobo for the menu graphical design.

Thanks to Reesy for the DrZ80 core.

Thanks to Flubba for the SN76496 sound core.

Thanks to the C-BIOS team for the open source MSX BIOS (see cbios.txt).

Special thanks to Marat Fayzullin, as the author of ColEM which is the code for the core emulation (specifically TMS9918 VDP and the CZ80 CPU core). If not mistaken, the original port was circa ColEM 2.1 with some fixes and updated Sprite/Line handling from ColEM 5.6

External links

Advertising: