More actions
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=2023/ | |lastupdated=2023/08/04 | ||
|type=Console | |type=Console | ||
|version=8. | |version=8.2 | ||
|license=Mixed | |license=Mixed | ||
|download=https://dlhb.gamebrew.org/dshomebrew/colecodswav.7z | |download=https://dlhb.gamebrew.org/dshomebrew/colecodswav.7z | ||
Line 205: | Line 205: | ||
==Changelog== | ==Changelog== | ||
'''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''' | '''V8.1 2023/07/22''' | ||
* Major rework of the CreatiVision driver for much improved compatibility and loading of BASIC listings. | * Major rework of the CreatiVision driver for much improved compatibility and loading of BASIC listings. |
Revision as of 01:34, 6 August 2023
ColecoDS Phoenix Edition | |
---|---|
General | |
Author | Dave Bernazzani (wavemotion) |
Type | Console |
Version | 8.2 |
License | Mixed |
Last Updated | 2023/08/04 |
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)
User guide
ADAM Compatibility
The emulated ADAM is not completely bug-free but generally will run most tape images (.ddp) or disk images (.dsk).
The emulated ADAM is a 128K system (64K internal memory and 64K expanded RAM) - enough for almost any game.
Usage tips:
- Sometimes when loading an ADAM game the system doesn't run, just hit RESET and it will probably load.
- By default, RAM is cleared when you reset the ADAM. In Game Config you can change this Memory Wipe to 'RANDOM' which may improve the ability to load some games.
- If the game uses a CP/M disk, try chaning the Memory Wipe to 'ADAM CPM' which helps.
- You can turn on the full ADAM keyboard with the Configuration of Overlays (choose 'ADAM KEYBOARD'). It's not all ADAM keys but should be enough to play games.
- The tape or disk images do not automatically write back to your SD card, you have to hit the little Cassette icon to make that happen (and only when the tape/disk is idle - it won't save if the tape/disk is busy reading/writing).
MSX Compatibility
Considering this is a Colecovision emulator, the MSX1 support and compatibility is reasonably high.
In Game Options you will notice that the default MSX Mapper is set to "GUESS" which does a fairly good job loading the ROM - especially for 32K or smaller games.
MSX1 cassettes are supported in .CAS format. You can use the START and SELECT buttons for the common bload and run commands. MSX2 games are not supported and will not run.
Usage tips:
- A small number of games don't work with the open-source C-BIOS (MSX is not a single machine but a standard - there are lots of machines and lots of BIOS files).
- In this case you would need a real msx.rom BIOS. You can set this up in Game Options.
- If you have an MSX.ROM bios, it will use it by default (MSX.ROM with a CRC32 of 94ee12f3 was tested, it's used by default in a lot of other emulators).
- Most 64K games use the ASC16 memory mapper - so you can try that one, but a few (e.g. Mutants from the Deep) are linear mapped from 0-64K and you will need to pick LINEAR64 in Game Options.
- The auto-detection on KONAMI8, KONAMI-SCC and ASCII8/16 mappers is pretty good, but some games don't detect well - you should try various mappers if the "larger than 64K" game won't run.
- 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 another clean 512K version can load and run great.
- With a little diligence in trying different mapping/BIOS combinations, you should be able to achieve a 97% run rate on MSX1 games.
The MSX memory is laid out as follows:
- SLOT0: MSX BIOS (first 32K... 0xFF after that)
- SLOT1: Cartridge Slot (this is where the game ROM lives)
- SLOT2: Empty (0xFF always)
- SLOT3: RAM (64K)
Memotech MTX Compatibility
The Memotech MTX runs at 4MHz which is faster than the Colecovision (and MSX, M5, SG, etc). This is reasonably well emulated - though the sound is not perfect due to some CTC chip timing differences from real hardware.
Also, only about 80% of the games load and run properly - some games use more complex loaders and are not well supported by ColecoDS. Sometimes you will have to run a [a1] or [a2] alternate dump of a game to get it to run properly.
Of the two types (.mtx and .run), the .RUN files are generally better supported (the excellent MEMU MTX emulator has a good selection).
Usage tips:
- There is support for the MTX MAGROM project, this is a multi-cart. You can use either 1.05 or 1.05a of the MAGROM 512K binary file - just rename as .MTX and load it by running the game and pressing the START button to launch the menu.
- The MTX emulated is a base MTX-512 system with 64K of RAM. This should allow most games to run.
- Once the game is loaded into memory you will be sitting at the BASIC prompt. At this prompt you need to LOAD "" (if .MTX) or RUN the game (if .RUN).
- You can press the DS Start button (quick access key) to enter the proper command automatically. Alternatively, you will find the RUN commands in the Cassette Icon Menu.
Spectravideo SVI Compatibility
This emulator will support .cas files for the Spectravideo SV-328 (64K machine).
You can use the START and SELECT buttons for the common bload and run commands.
Sega SC-3000 Compatibility
This emulator supports .sc files as ROM only (not cassettes) but ColecoDS will support the amazing SC-3000 Survivors Multi-Cart and MEGA-Cart.
Strongly prefer the Multi-Cart as it's smaller and contains the same selection of tape games. Just rename the 2MB or 4MB binary as .sc to load in ColecoDS.
Casio PV-2000 Compatibility
This emulator supports .pv files as ROM only (not cassettes).
Rename any .bin files you find as .pv so the emulator will load them correctly.
Hanimex Pencil II Compatibility
There is only one known game dumped at this time - Treasure Hunt. Fortunately it's a fun game! Unfortunately, came on 2 ROM chips. So you have to "glue" the two ROMs together.
If you can find a late MAME "Software List" from 2020 or later, you will find treasure.zip which contains two ROM files:
- pen702a.bin (8k)
- pen702b.bin (4k)
To glue these together - in windows use the command line: copy /b pen702a.bin + pen702b.bin TreasureHunt.pen
or in Linux: cat pen702a.bin pen702b.bin > TreasureHunt.pen
This should leave you with a 12k ROM called TreasureHunt.pen which is now playable on your ColecoDS system.
Tatung Einstein Compatibility
The base 64K machine is emulated. Right now only .COM files will play.
Out in the interwebs, you will mostly only find .dsk files and the .COM files need to be extracted from them.
The easiest way is to use one of the following programs, dsktool or EDIP v1e which you can find in the extras folder.
With either of these tools, you should be able to extract more than 50 .COM games that currently work.
Creativision Compatibility
The Creativision uses a different CPU - the m6502 (same as used in the Apple II).
The system requires roms be renamed to .CV so the correct driver will load and the bioscv.ROM must be present in the normal BIOS area. All known Creativision games run properly under ColecoDS.
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).
Controls
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
By default, the spinners are only enabled for the few games that use them - but you can force them by changing the Spinner Speed.
That should be enough to get most MSX1 cart games running.In Game Options you can also 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.
As of version 6.1 there is also a custom overlay for "MSX Full" keyboard.
Screenshots
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 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
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.
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.