Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ColecoDS Phoenix Edition: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 4: Line 4:
|description=A Colecovision and ADAM Emulator for the DS/DSi. Original port by Alekmaul.  
|description=A Colecovision and ADAM Emulator for the DS/DSi. Original port by Alekmaul.  
|author=Dave Bernazzani (wavemotion)
|author=Dave Bernazzani (wavemotion)
|lastupdated=2024/02/03
|lastupdated=2024/02/12
|type=Console
|type=Console
|version=9.1
|version=9.2
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/dshomebrew/colecodswav.7z
|download=https://dlhb.gamebrew.org/dshomebrew/colecodswav.7z
Line 131: Line 131:


==Changelog==
==Changelog==
'''V9.2 2024/02/12'''
* Ported the AY sound chip driver from FluBBa to improve MSX1, Einstein and Coleco SGM games.
* Ported most recent SN sound chip driver from FluBBa.
* Allow more than one keyboard press at a time for the MSX1 so keyboard-mapped keys work properly (i.e. UP and SPACE at the same time)
* Cleanup across the board - save states optimized.
'''V9.1 2024/02/03'''
'''V9.1 2024/02/03'''
* Ported the SCC Konami sound driver from FluBBa to make the MSX1 games using that chip sound great.
* Ported the SCC Konami sound driver from FluBBa to make the MSX1 games using that chip sound great.

Revision as of 01:29, 18 February 2024

ColecoDS Phoenix Edition
Colecodswav2.png
General
AuthorDave Bernazzani (wavemotion)
TypeConsole
Version9.2
LicenseMixed
Last Updated2024/02/12
Links
Download
Website
Source

ColecoDS is a Colecovision and ADAM Emulator for the DS/DSi. Original port by Alekmaul.

Phoenix-Edition by Wavemotion with support for Colecovision, ADAM, MSX1, Sord-M5, Memotech MTX, Spectravision SVI, Hanimex Pencil II, Tatung Einstein, SG-1000/SC-3000 and the Creativision.

Features

  • Colecovision game support (.rom or .col files). Requires coleco.rom BIOS.
  • Super Game Module support including AY sound chip.
  • Megacart Bankswitching support (up to 512K).
  • Coleco ADAM game support (.ddp or .dsk files). Requires eos.rom and writer.rom.
  • Sega SG-1000 game support (.sg roms).
  • Sega SC-3000 game support (.sc roms).
  • Sord M5 game support (.m5 roms) - requires sordm5.rom BIOS.
  • MSX1 game support (.msx or .rom or.cas) up to 512K.
  • Spectravideo SVI support (.cas) - requires svi.rom BIOS.
  • Casio PV-2000 support (.pv roms) - requires pv2000.rom BIOS.
  • Hanimex Pencil II support (.pen roms) - requires pencil2.rom BIOS.
  • Tatung Einstein support (.com run-time files only) - requires einstein.rom BIOS.
  • Memotech MTX game support (.mtx or .run) - single loader games only.
  • Creativision game support (.cv) - requires bioscv.rom BIOS.
  • 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.
  • 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/.

Below is the list of BIOS files with CRC32 hashes tested by the author (CRC32, bios file, emulated machine/version):

  • 3aa93ef3 - coleco.rom (original version)
  • a30b0c34 - coleco.rom (faster boot)
  • 94ee12f3 - msx.rom (MSX)
  • c3c590c6 - bioscv.rom (Creativision)
  • ec134953 - einstein.rom (Tatung Einstein)
  • 338d7b59 - pencil2.rom (Hanimex Pencil II)
  • 8f31f297 - pv2000.rom (Casio PV-2000)
  • 92cf9353 - sordm5.rom (Sord M5)
  • 709904e9 - svi.rom (Spectravision)
  • 05a37a34 - eos.rom (ADAM)
  • 58d86a2a - writer.rom (ADAM)

For the MSX, ColecoDS now offers support for various optional BIOS ROMs. The msx.rom, a generic European machine, appears similar to the Goldstar FC-200 or possibly the Casio MX-15. With version 8.2, ColecoDS introduces additional optional MSX BIOS ROMs. You can select these in Configuration and set a global default. The supported BIOS ROMs include:

cx5m.rom (Yamaha): Yamaha's UK/EU machine with 32K of RAM.

  • hx-10.rom (Toshiba) - Toshiba's UK/EU machine with 64K of RM.
  • hb-10.rom (Sony HitBit JP) - Sony HitBit JP machine with 16K of RAM (utilizes the Japanese matrix).
  • fs-1300.rom (National JP) - National JP machine with 64K of RAM (utilizes the Japanese matrix).
  • pv-7.rom (Casio PV-7) - Casio PV-7 with just 8K of RAM. If unavailable, use pv-16.rom or hb-10.rom.

Additionally, for the MSX.ROM, you can substitute one of these standard machines (searched/found in this order):

  • cf-2700.rom (Panasonic CF-2700) - Panasonic CF-2700 UK machine with 64K of RAM in slot 3 (normally slot 1).
  • fc-200.rom (Goldstar FC-200) - Goldstar FC-200 European machine with 64K of RAM in slot 3 (normally slot 2).

Make sure you name the BIOS ROMs exactly as shown and place them into your usual BIOS directory. Once you select an optional BIOS ROM in Configuration, you will also enable that specific MSX machine to be emulated.

Compatibility for each machine can be found on the readme.

User guide

Controllers

  • You can map buttons to either P1 or P2 controllers.
  • Support for Spinner X (P1) and Spinner Y (P2) or mapping both for trackball games.
  • Spinner sensitivity settings: Normal, Fast, Fastest, Slow, Slowest.
  • By default, the spinners are only enabled for the few games that use them - but you can force them by changing the Spinner Speed.

MSX Emulation:

  • ColecoVision keypad is mapped to common MSX1 keyboard keys.
  • In Game Options you can override the '?' key to be any mappable MSX key.
  • For the few games that still require the MSX arrows to play - you can emulate that via the D-PAD in Game Options.
  • There is also a full-sized MSX keyboard available in Game Options (or in global options to set a default for MSX machines).

Keyboards:

  • A number of full keyboard overlays have been designed for accuracy.
  • You can choose full keyboard that matches the emulated machine or alpha keyboard (a simplified keyboard and keys are bigger) on a per-game basis in Game Options.

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.

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.
  • If it's a Colecovision game, make sure RAM MIRROR is disabled. Only a few games need this (it will crash if you set it wrong).

Screenshots

colecodswav3.png

Known issues

  • No more than 1024 files per directory - split ROM files up as needed.
  • Path and filename to a ROM can't be longer than 160 characters. Keep them on the shorter side.
  • Games that utilize voice samples (Squish Em Sam, Wizard of Wor, etc) will not play the speech due to sound emulation limitations.
  • The original 2011 release of StarForce will crash - this is a known bug. There is a patched version of the game StarForce on Atariage.
  • MSX envelope, Einstein and Sord M5 CTC sound and noise emulation is not perfectly accurate (but close enough).
  • MSX Konami SCC sound chip is partially emulated but is not perfectly accurate (Gradius 2/3, Parodius, Salamander, etc. will have music but the pitch won't be perfect - good enough!).

Changelog

V9.2 2024/02/12

  • Ported the AY sound chip driver from FluBBa to improve MSX1, Einstein and Coleco SGM games.
  • Ported most recent SN sound chip driver from FluBBa.
  • Allow more than one keyboard press at a time for the MSX1 so keyboard-mapped keys work properly (i.e. UP and SPACE at the same time)
  • Cleanup across the board - save states optimized.

V9.1 2024/02/03

  • Ported the SCC Konami sound driver from FluBBa to make the MSX1 games using that chip sound great.
  • New overlays for Colecovision Space Shuttle and Utopia.
  • Lots of small tweaks and minor cleanups since the last release.

V9.0 2023/10/21

  • Fixed loading of SC-3000 Survivors Multi/Megacart roms.
  • Slight optimization to I/O read driver.
  • Minor cleanup as time permitted.

V8.9 2023/09/20

  • Further cleanup of the ADAM driver to eliminate title-screen glitches and provide support for 320K disks.
  • Slight optmization across the board resulting in another frame or two of performance.
  • Memory optmization to reduce the footprint of the program - providing about 300K of free resources total.
  • Improved speed of blend mode (it only uses about 10% CPU resources now)

V8.8 2023/09/11

  • Major cleanup of the Coleco ADAM driver so that most games now load up first try and RESET handling is smooth and consistent.
  • For the ADAM, added toggle between full keyboard and the joystick/joypad so now you don't have to choose one layout or the other.
  • Simplified keyboard handling. Now the user just picks 'Full Keyboard' and the emulator will figure out the best keyboard overlay to use based on the machine being emulated.

V8.7 2023/09/07

  • Added .dsk support for MSX1 games (360K SS or 720K DS only).
  • Improved key debounce so that pressing on the virtual keyboard is much cleaner.
  • Minor memory optimization to free up some resources.

V8.6 2023/08/31

  • Added .dsk support for Tatung Einstein games!
  • Improved Tatung Einstein keyboard and joystick handling.
  • Minor graphical tweaks and improvements as time allowed.

V8.5 2023/08/20

  • Added Sord M5 keyboard graphic and improved Sord M5 keyboard handling.
  • Fixed Sord M5 keyboard interrupts so that games like Jumping Jack and Drops play.
  • Added ability to switch Sord M5 BIOS from sordm5.rom to sordm5p.rom when playing PAL games.
  • Added ability to disable the key click when using a game/program that already provides key feedback.
  • Added the SMS mapper for the few SG-1000 games that use them (Most notably Loretta no Shouzou: Sherlock Holmes and the SG-1000 port of Prince of Persia).

V8.4 2023/08/15

  • Added SVI keyboard graphic and improved SVI keyboard handling.
  • Added Sega SC-3000 keyboard graphic and improved SC-3000 keyboard handling.
  • Improved PV-2000 keyboard handling.
  • Added preliminary keyboard support for Hanimex Pencil II - just enough to run BASIC if you dare.
  • Spectravideo SVI-3x8 cartridges supported up to 64K. Load .rom and the emulator will figure it out.
  • Fixed bug with VDP re-enable of interrupts (unsure if this affected anything, but it's corrected anyway).
  • Ability to run games at 90% to 130% on a per-game basis (See game configuration).
  • Improved mixing of SN+AY sound chips for the few games that utilize both.
  • Refactor of keypad graphics and fix for the options overlay so it paints the whole screen without graphical problems (e.g. showing part of the underlying screen). This also frees up precious RAM!
  • Other tweaks, fixes and improvements as time permitted.
  • Hotfix Version 8.4a with fixes for MSX keyboard corner-keys detection and .col files now auto-detect CV, MSX or SVI
  • Hotfix Version 8.4b with hot-spot detection fixes for MTX, SVI and Adam keyboards.

V8.3 2023/08/10

  • Fix for keyboard handler so that more than one key can be pressed at a time (otherwise you get stutter when moving/shooting in keyboard-mapped games).
  • Major overhaul of the Memotech MTX emulation to improve emulation, sound and general stability.
  • New Z80 CTC handler (mainly for Memotech) which provides more accurate sound in Sord M5 and some Einstein games.
  • New Tatung Einstein keyboard graphic and improved keyboard handling.
  • New keymap presets for common keyboard games (QAOP, WASD, ZC-Period, etc.) - use the X button to rotate through these when defining keys.
  • Other tweaks, fixes and improvements as time permitted.

V8.2 2023/08/04

  • Complete rewrite of the keyboard handler for improved visuals, better emulation and universal handling across all emulated machines.
  • New keyboard graphics for ADAM, MSX (International and Japanese layouts), MTX and a simplified Alpha-Numeric keyboard useful for text adventures.
  • New global configuration handling - you can disable the showing of the BIOS screen at startup, set your default MSX BIOS, hide emulator text, among other features.
  • Brighter main font for improved contrast.
  • New MSX BIOS roms can be optionally installed: Panasonic cf-2700, Yamaha cx5m.rom, Toshiba hx-10.rom, Sony Hit-Bit hb-10.rom, National fs-1300.rom, Casio pv-7.rom
  • Other tweaks, fixes and improvements as time permitted.
  • 8.2a - hotfix to correct keyboard click on ADAM keyboard and fix Memotech MTX keyboard to show BREAK (vs STOP)
  • 8.2b - hotfix to set Memotech keyboard country code to 00=English

V8.1 2023/07/22

  • Major rework of the CreatiVision driver for much improved compatibility and loading of BASIC listings.
  • New CreatiVision keypad/keyboard overlay with stylings from 1981!
  • Swap out bloated printf/sprintf for embedded versions.
  • Added screen snapshot by holding L+R buttons while in-game.
  • Other cleanups as time permitted.

V8.0 2023/06/28

  • Minor cleanups only.

V7.9 2023/03/03

  • Fixed TMS9918a driver so we show sprites that cut-off near the edge of the top screen.
  • Fixed TMS9918a driver so we refresh the borders on text-based games.

V7.8 2022/11/13

  • Partial MSX SCC added. Music on Gradius 2/3, Parodius, King's Valley 2, F1 Spirit and Salamander!
  • Better audio channel combining so that games with multiple channels of sound don't sound 'half as loud'.

V7.7 2022/09/05

  • MegaROMs now supported up to 1024k.
  • Minor cleanup across the board.

V7.6 2022/06/28

  • Cleanup of Cassette Menu handling.
  • Improved MSX compatibility.
  • Faster large-ROM loading speed.
  • New Alpha-only Keyboard support.
  • A few minor bug fixes as time allowed.

V7.5 2022/06/18

  • Major update to the way internal memory is handled. It's slimmer, trimmer and much faster across-the-board. More games run at full speed.
  • Fixed EE and SRAM handling on MSX games - those also now back to files on the SD card so you can pick up where you left off.
  • Improvements to the Sord M5 driver so more games run correctly - Mahjong now works.
  • Improvements to the Coleco/ADAM driver so more games run correctly. Boulder Dash works properly and more ADAM disk games run properly.

V7.4 2022/06/05

  • Added back DrZ80 core and fixed Colecovision Boulder Dash so it doesn't crash.
  • Better Einstein CTC handling so timing is a bit more accurate.
  • Improved Einstein memory swap for faster performance.
  • Improved MSX mapper detection - about 30 more games playable without fiddling with settings.
  • MSX Pal game support added (it was only 80% working before this).
  • A few more frames of performance squeezed out to make more games run buttery-smooth.

V7.3 2022/05/31

  • Massive optimization of the VDP core and memory handling so we are now almost 35% faster on Colecovision games and more than 10% faster on all other systems.
  • Due to these optmizations, the DrZ80 core has been removed and only the high-compatibility CZ80 core remains.

V7.2 2022/05/14

  • Improved Einstein driver to allow SHIFT and CONTROL key maps.
  • Added AY Envelope Reset option for the few games that need it (Warp & Warp, Killer Station)
  • Added 2P mapping support for SVI games so MEGALONE (Burken Pak 14) and CRAZY TEETH will play properly.
  • Improved the SG-1000 driver so that the Dahjee and TW bootlegs work.
  • Added F1-F8 as assignable maps on Memotech

V7.1 2022/05/01

  • Fixed PV-2000 driver (broken in 7.0).
  • Minor optmization for the CreatiVision to help on older DS-LITE/PHAT.
  • Minor cleanups as time permitted.

V7.0 2022/04/27

  • Added Creativision emulation support with m6502 CPU core (requires bioscv.rom BIOS).
  • Coleco EEPROM support for Boxxle, Black Onyx, etc.
  • More definable keys for MSX emulation.
  • Minor cleanups as time permitted.

V6.9 2022/04/24

  • Much improved Tatung Einstein support. More than 50 games now run correctly. See readme.md for details.
  • Minor cleanups as time permitted.

V6.8 2022/04/20

  • Hanimex Pencil II support. Only one game dumped - Treasure Hunter.
  • Tatung Einstein support. Only .COM files run and requires einstein.rom BIOS.
  • Key map overhaul - you can now map any keyboard key to any NDS button.
  • Improved configuration of various machines - more games run including massive MTX improvements.
  • MTX MAGROM multi-cart is now supported! This provides 38 games in a 512K binary. Use ROM 1.05 or 1.05a.
  • Improved SVI emulation so games like Super Cross Force don't hang.
  • Numerous small cleanups under the hood.

V6.7 2022/04/10

  • Casio PV-2000 support (.pv rom files) - all 11 games run fine.
  • Improved emulated memory access to gain almost 1 frame of performance.
  • Numerous small cleanups under the hood.

V6.6 2022/04/07

  • CAS icon implemented to provide a menu of cassette-based actions including swapping tape/disk for multi-load games.
  • SC-3000 emulated more fully with support for the SC-3000 Survivors Multi-Cart.
  • PAL vs NTSC now supported for the Memotech MTX, Spectravideo SVI and SC-3000.
  • SAV files have been streamlined and are now smaller/faster. Old saves won't work. Sorry.
  • Better overall memory handling to keep the program size managable.

V6.5 2022/04/02

  • Spectravideo SVI (328) support added (.cas files auto-detected format).
  • MTX Cassette support added (.cas files auto-detected format).
  • Overhaul of full keyboard to support another row of characters and shoulder-button for SHIFT.
  • Increased config database to 1400 entries (from 700 - this version will auto-update)

V6.4 29-Mar-2022/03/29

  • Memotech MTX support added (.mtx and .run files only).
  • Better load file handling so more games are recognized correctly.
  • Other minor cleanups and fixes as time permitted.

V6.3 2022/03/12

  • ADAM Computer support is added! Play .ddp and .dsk games (requires eos.rom and writer.rom).
  • Other minor cleanups and fixes as time permitted.

V6.2 2022/01/29

  • Increased AY noise frequency dynamic range - improves MSX and CV-SGM sounds.
  • Increased AY tone frequency dynamic range - improves MSX and CV-SGM sounds.
  • Diagnoal d-pad mapping now available on SG-1000.
  • Other minor cleanups as time permitted.

V6.1 2022/01/25

  • Added full MSX keyboard overlay - Choose "MSX Full" in Game Options.
  • Improved ASC8 mapper so Bomber King, Batman Rovin and others now playable.
  • Added SRAM support to make Hydlide II, Dragon Slayer II (Xanadu) and Deep Dungeon 2 are now playable.
  • Added 'beeper music' sounds so games like Avenger, Batman - The Movie and Masters of the Universe have sound.

V6.0 2022/01/21

  • Improved MSX compatabilty - more playable games.
  • Added D-PAD to emulate MSX arrow keys.
  • Added D-PAD diagonals emulation.

V5.9 2022/01/19

  • Refactor of memory to gain another 128K of fast VRAM to improve Coleco MegaCart and MSX games.

V5.8 2022/01/16

  • Improved DMA memory handling of MSX to bump mega ROM games speed by up to 10%.
  • Improved loading databaes so more games detect memory mapper correctly.
  • Faster RAM swapping for improved loading speed on games.
  • Other cleanups and improvements under the hood.

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 Flubba for the SN76496 sound core.

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

Thanks to Andy and his amazing Memotech Emulator MEMO which helped getting some preliminary and simple MTX-500 support included.

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

Without Marat - this emulator simply wouldn't exist.

External links

Advertising: