ColecoDS - Improved

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
443
Trophies
0
Age
39
XP
1,763
Country
France
No worries at all, @CrashMidnick. As far as I'm concerned, we're all friends and there isn't anything OT in one of my threads!

The mods in this area seem pretty relaxed anyway... even my double (and triple) posts don't get merged/flagged... maybe I've bought myself a little bit of goodwill with my efforts :D

Anyway... I have no doubt that I could ask Alek from the sources to AMEDS and get it humming (fix speed / sound). But it's always a matter of time/effort for the payoff... and in my case the payoff is playing more classic games. Most of the Amstrad stuff I want to play, I can do on ZXDS so my motivation is not high. As an American, the ZX, CPC and BBC Micro weren't household names (as a kid, I had heard of exactly zero of them!). I tend to put most of my effort into the systems I had used as kid - if only for this 50 year old to recapture a bit of the simplicity of being 10 again.

Thanks Dave for your kind words.

TBH I would do the same (work on my fav devices first) if I had the skills :)
North American/European and Japanese markets were very different back in the time. This was a real pleasure in middle/late '90 when emulation became a thing to discover new consoles/computers or region locked titles we always dreamed of :)

What I like with you emulators is the way they are polished and how you push the limit of the hardware to reach almost 100% compatibility. You are a perfectionist ;)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Just out of curiosity, will we be seeing you tackle MSXDS in the remote case this emulator will be definitely completed/updated? :rofl:
Probably not... but it's best to never say never :D

I do have the sources for this - but have failed to get it to build using the more modern tools and in the middle of debugging that, Alek responded to me on ColecoDS and I took that up instead.

Given that I'm mainly interested in MSX1 (rather than MSX2/+/R), I will just use ColecoDS as my MSX1 emulator going forward as it has the features I want (key maps, high score support, config options, etc). I will shortly check in 5.2c with support for a couple new mega ROM mappers plus a way in config to select the mapper ("GUESS" mapper type is the default - which turns out isn't better than about 70% in guessing correctly) so you can force a mapper to be used. This should make many more large MSX1 games playable on the emulator.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Confirmed.

Code:
#define MAX_ROMS       512
#define MAX_ROM_LENGTH 128

It's 512 ROMs and a filename up to 128 characters. Do you want me to raise this?
Admittedly, I set this at 512 thinking nobody would ever reach it as there were only like 150 classic Colecovision carts and maybe as many homebrews... but with all the new emulator support - well, it's gotten out of hand :)
 
  • Like
Reactions: banjo2

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
443
Trophies
0
Age
39
XP
1,763
Country
France
Thanks.

My MSX romset (shared between colecoDS & msxds) contains about 940 roms (including alt roms). I can split this into 2 folders, no problem on my side but if you just need to change the values above in your code to get more then it could be nice :)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Just checked in 5.2d with up to 1024 roms per directory (and I extended the filename up to 160 characters). That's still within our memory limitations :)

It also has 2 new mappers and mapper selection in options so you should be able to get almost anything to run now (though the really big games may be too slow).
 

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
140
Trophies
0
Age
21
XP
370
Country
Italy
Probably not... but it's best to never say never :D

I do have the sources for this - but have failed to get it to build using the more modern tools and in the middle of debugging that, Alek responded to me on ColecoDS and I took that up instead.

Given that I'm mainly interested in MSX1 (rather than MSX2/+/R), I will just use ColecoDS as my MSX1 emulator going forward as it has the features I want (key maps, high score support, config options, etc). I will shortly check in 5.2c with support for a couple new mega ROM mappers plus a way in config to select the mapper ("GUESS" mapper type is the default - which turns out isn't better than about 70% in guessing correctly) so you can force a mapper to be used. This should make many more large MSX1 games playable on the emulator.
Would it at least be feasible to implement SCC emulation for larger games like Salamander and Nemesis 2/3?
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Would it at least be feasible to implement SCC emulation for larger games like Salamander and Nemesis 2/3?
Right now I can’t even run the Konami SCC games at full speed. Implementing a new sound core won’t help that any 😁

If I could get the speed up… maybe. But this remains a CV emulator and is fully optimized as such. Those large games require me to swap in/out big chunks of memory into the 64K Z80 address space. A real MSX emulator would handle memory and banking much more efficiently.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Version 5.3 is released: https://github.com/wavemotion-dave/ColecoDS

V5.3: 06-Jan-2022 by wavemotion-dave
  • 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 optimization so MSX games run faster.
Another big one... a lot of under the hood improvements. Faster MSX emulation. Auto-detect .ROM type for MSX vs CV. The two databases got upgrades - this will happen automatically when you launch the new version and will not affect your existing configs or high-scores (yay!). You can also set the BIOS type (C-BIOS or real msx.rom BIOS) on a per-game basis so you should be able to get like 95% of the MSX1 cartridge library to run now.

Some clever reader might wonder "why 575 high score entries?" ... that's what fits in 128K of flash memory. So most SD cards of significant size use 32K blocks of memory and 575 fits nicely in 4 blocks. I could make it larger but, really... who will have 575 games they want to track high scores on?!

Improved MSX controller mapping as well to support more games. Basically it's this:

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

This allows almost all MSX games to be started/run. I'm toying with replacing '5' with 'ESC' but not sure yet.
I am also toying with adding a mini-MSX keyboard but I really don't want to morph this CV emulator more than it already has :)

Enjoy!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
The mini-MSX keyboard would honestly be great
It's only a couple hours of effort, but I'm trying to work out exactly what it buys us in terms of playing Cart-based MSX games.

I did find a bug in the AY envelope handler and just checked in 5.3a - this makes games like BoulderDash, Time Crisis, Eggerland Mystery 2 and a few others sound right! It's not perfect but getting better!
 

Harry7228

Member
Newcomer
Joined
Jan 7, 2022
Messages
6
Trophies
0
XP
121
Country
Netherlands
Hi, i am a great fan of your emulators. You are a hero! In my childhood I had a friend with a ColecoVision console, (I myself had a Philips Videopac G7000) we always played Donkey Kong, Smurf and Nova Blast. I have many good memories of that time. Thanks for riviving my childhood!

But I have a question: When I start a game from Twilight Menu++, the game controls in ColecoDS are not working. If I choose 'End Game' and start a game from within ColecoDS the controls are fine. This is with each game I try.
I tested this on a DS-Lite, with the latest version of Twilight Menu++. Is this a problem with my Twilight installation or with ColecoDS?
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
Hey @Harry7228 - thanks for the kind comments about the work I've done.

TWL++ support just came in for ColecoDS and yes there is a known defect where it doesn't read the config/key file when launched from TWL++ (but as you say, you can just re-load the file and it runs fine).

I've checked in a fix for this - @RocketRobz will pick this up when he does his next official build of TWL++.

For now you can live with it as-is... or you can go to https://github.com/wavemotion-dave/ColecoDS and grab the ColecoDS.nds that was just checked in today and place it in /_nds/TwilightMenu/emulators/ where it will upgrade the existing emulator.

As a bonus, this latest check-in fixes sound for a few games (pretty much the entire Coleco Library - including SGM games should be fine) and gives a nice boost in speed due to some audio optimizations. So DS-LITE users can rejoice :)
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
688
Trophies
1
XP
4,810
Country
United States
https://github.com/wavemotion-dave/ColecoDS

V5.4: 07-Jan-2022 by wavemotion-dave
  • 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.
 
General chit-chat
Help Users
    KenniesNewName @ KenniesNewName: But can it run 1.0