https://github.com/wavemotion-dave/ColecoDS
V5.2: 04-Jan-2022 by wavemotion-dave
- 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.
Another big one... re-wrote the AY sound handler which fixes noise and un-breaks envelopes. Noise was an easy fix - and now some of the little missing sounds like ship explosions and such are fully emulated. That has been a long-standing bug in the AY sound core ... in the past that only affected a few Colecovision Super Game Module games but now with MSX support there are hundreds of games that use the AY sound core - and those should be sounding much more accurate.
Also the volume envelope is finally "working". It's been completely broken since day 1... and now it works but is not accurate. Still, this solves all of the high-pitch noises that plagued some games (Boulder Dash, Sinbad, Driller Tanks, Joe Blade and others). I haven't got the timing right yet... so while the sounds are much better (not having a high-pitched background noise while you're playing is a huge step in the right direction!), it's also not as accurate as it can be. I'll work on this in the near future.
I gained a bit of speed on the larger megaroms... but lost a little speed with the new AY sound core. Call it a wash more or less.
I also discovered that a few games assume a real MSX bios - mostly due to bad programming they make direct calls and assume locations of some routines. So I've provided the ability to use the real msx.rom bios. To be honest, I really like the built-in C-BIOS for 99% of games but the choice is yours if you want to run with a real BIOS. There are about 100 different MSX machines - no idea if some BIOS is better than others... which is mostly why I like the open-source C-BIOS
For those that are curious... Sound Envelopes are supported by the AY sound chip (but not the Colecovision SN sound chip). This allows a programmer to set a pattern and the chip will automatically change the volume over time to produce sound effects. This can be a rising tone, falling tone, oscillating tone, etc. Here is the AY envelop shape chart direct from the datasheet for the chip. I'm emulating all this now - but I don't have the timing quite right so the sounds might end a little sooner or extend a bit longer due to the way I'm clocking the envelope counter. I think I can fix this.
View attachment 292418