Jump to content
IGNORED

ColecoDS - An Emulator for the DS/DSi/3DS - Official Release and Discussion Thread


Recommended Posts

image.png.cf6eae3bcc3433c29f4c2bcae3f25fc1.png

 

ColecoDS is an emulator for all things Colecovision and ADAM for your DS/DSi/XL/LL:  https://github.com/wavemotion-dave/ColecoDS

 

Just put out the 9.1 release (the first ColecoDS release of 2024) which adds a real Konami SCC driver for improved sound on the MSX1 games that take advantage of that powerful audio chip.

 

Everything is polished - the Colecovision and ADAM compatibility is very high with just about every game and program playing perfectly. Most of the 'cousin' systems (MSX1, PV-2000, Sord M5, SG-1000, MTX, Tatung Einstein and SVI) are similarly running very close to perfect. I've also added custom overlays for the two new Team Pixelboy games released at Christmas (Space Shuttle and Utopia).

 

I'm well over 300 hours on this emulator.. massive thanks to @alekmaul for the original port and to everyone that has provided feedback, suggestions and help along the way.

Features :

  • Colecovision game support (.rom or .col files). Requires coleco.rom BIOS.
  • Super Game Module support with 32K and AY sound chip.
  • Megacart Bankswitching support (up to 1024K).
  • Supercart Bankswitching support (up to 512K including flash support)
  • Activision PCB support (including up to 32K of EEPROM)
  • 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 or .dsk) up to 1024K
  • Spectravideo SVI support (.cas or .rom) - 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 (.dsk files or .com run-time files) - requires einstein.rom BIOS
  • Memotech MTX game support (.mtx or .run or .com files) - single loader games only.
  • Creativision game support (.cv) - requires bioscv.rom BIOS - supports ROMs up to 32K.
  • 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.

 

image.thumb.png.4634d6d910393752a634a9be4aa3567c.png

 

 

image.thumb.png.b43ac3899f7c440b69add5a5fcbe570f.png

  • Like 4
  • Thanks 3
  • 2 weeks later...
ColecoDS v9.2 is released.
 
This version brings in a new (proper!) AY sound chip driver to make all of the latest SGM homebrews plus MSX1, Tatung Einstein and SVI games sound their best. My old driver was a "Fake AY" which just turned the AY sound chip writes into equivalent SN (Colecovision) chip writes. But that was never adequate - the AY has a wider dynamic range, full Envelope support for cool and funky sound generation and more robust noise handling. Some programmers didn't utilize the full capabilities of the AY and for that, my old "Fake AY" driver was fine... but for the best sounding games, with a true AY driver, we now get the full range of dynamic sounds of this awesome chip!
  • Like 7
  • 1 month later...

ColecoDS 9.4 is available:  https://github.com/wavemotion-dave/ColecoDS 

 

Since the Colecovision, ADAM and SGM support is pretty much complete and running at high compatibility, the last couple of releases have been improvements to many of the cousin systems. This version brings in improvements for the Spectravision SVI 3x8 and the Tatung Einstein. 

 

image.png.6670ba19f9193ad30ea0f22dd916f9f2.png

  • Like 4
  • 2 weeks later...

I'm working hard getting the ADAM emulation updated for the next release. I've got two full DSDD (320K) disk drives enabled plus a standard Tape drive (256K) with a new menu to select whatever media you want.

 

I'm excited! I might be the only one :)

 

image.png.f4b58870ff9a3aba08055481d3289890.png

 

I've also got the 1MB expanded RAM working on the DSi and above (the DS-Lite/Phat will have to "struggle" with just 128K of RAM - the base 64K and one bank of expanded 64K .... though to my knowledge, everything known to mankind should run with that configuration).

  • Like 4
  • Thanks 1

https://github.com/wavemotion-dave/ColecoDS

V9.5: 30-Mar-2024 by wavemotion-dave

  • ADAMnet improvement for disk/tape handling. Improved timing, improved caching and more disk/tape games should load and run correctly.
  • DSi gets a massive 2MB of Expansion RAM for the Adam (32 banks of 64K). DS-Lite/Phat still has 128K (base 64K plus the standard 64K expansion RAM).
  • Adam now properly handles 320K disks and three drive bays are virtually attached (two 320K disk drives and the internal Tape drive at 256K).
  • Adam full keyboard now uses an LED indicator under the CAPS LOCK button to indicate status.
  • Adam has improved keyboard graphic with more keys added.
  • Adam no longer mirrors RAM as a Colecovision would.
  • Adam optimization provided 5% improved emulation speed which should make most everything playable even on the older DS-Lite/Phat.
  • Adam supports the 32K expanded ROM and running carts under Adam emulation - name your ROMs as .adm so it loads into the right place in memory.
  • Tatung Einstein now has two proper standard 200K disk drives.
  • Tatung Einstein full keyboard now uses LED indicators under the SHIFT/CTRL/GRAPH and ALPHA LOCK keys for a visual improvement.
  • Tatung Einstein properly handles the backspace key when using the Alpha-Numeric keyboard overlay.
  • 2000 individual game configurations are supported - save/load states optimized and numerous tweaks under the hood.


This one is a big update. Save states and configs are changed to allow more flexibility for me into the future. Sorry.

This release started as a cleanup of the Tatung Einstein driver but got out of hand with a desire to really get the Coleco ADAM emulation up to a much higher compatibility level. I had a breakthrough in disk/ddp handling and decided to really pour on the additions for the ADAM to bring it to a nice new plateau.

I've reworked the top row of the keyboard graphic to squeeze in another key and make it a bit more authentic looking - obviously with space constraints, I've had to take some liberties with the layout to fit on the DS screen with the goal of keeping the SmartKeys reasonably centered.
 

1711796506983.png
 
 
In settings you can change the speed of the AdamNet drive handling. The default is FAST - but if you want a somewhat more authentic experience, you can choose SLOW or SLOWER - neither of which is quite as slow as an original Coleco disk (or tape) drive ... but you'll get longer loading (with sound effects!) and more visible time on loading screens and maybe that's your jam. Me? I'm old enough now that I don't want to waste too much of my remaining life-force waiting for things to load :)
 
I hope you guys enjoy it! Do let me know if you use the emulator - I'm well over 500 development hours into this now and feedback is hugely appreciated.
  • Like 4
  • 2 weeks later...

https://github.com/wavemotion-dave/ColecoDS

 

V9.6: 08-Apr-2024 by wavemotion-dave

  • Removed DrZ80 core - the high quality CZ80 core is all that remains.
  • Complete overhaul of the Adam handlers to clean and refine - jettisoned conversion to FIAD in favor of simple raw sector dumps.
  • Fix for games like Best of Broderbund (dsk and ddp) now load properly.

 

Finally getting to the point where the AdamNet and disk/ddp handling is working smoothly with some of the holdout games now loading and running properly.

 

I've also jettisoned the entire DrZ80 core which was faster than the CZ80 core but did not have the same high-level of compatibility. I've made enough improvements over the years to gain the speed needed that we can run everything under the new higher-accuracy Z80 core. DrZ80 served me well - but like many things in life, it's time to move on. That also freed up about 40K of precious DS resources for future expansion.

  • Like 1
  • Thanks 1

Hi everyone, I have a Nintendo Dsi with box and original instruction manual. I wanted to try this out , but since I am a right-handed game player, I don't think this is going to be a good option for me.

 

I would like to sell or trade this Nintendo Dsi console system to someone who may be interested in this Colecovision emulator / Colecovision portable gaming system!

 

IMG_1037.thumb.jpg.9d92ca57c00a8e87abc5a633419442c9.jpg

 

If anyone is interested, please let me know. Send me a private message.

 

thank you,

 

 

Tim

https://github.com/wavemotion-dave/ColecoDS

 

V9.7: 16-Apr-2024 by wavemotion-dave

  • Fixed Colecovision RAM mirrors such that Boulderdash runs properly.
  • The Heist now forces RAM to clear (all zeros) as it is known to be picky about contents of RAM on power up.
  • Fix EEPROM sequential reads so Activision PCB games like Jewel Panic work correctly.
  • Added the Wildcard and Print buttons on the virtual ADAM keyboard. All ADAM virtual keys should now be present.
  • Added new configuration options to select the Colecovision mode to run in - you can force ADAM emulation, force PCB types, and set EEPROM sizes, etc.
  • New global option to auto-patch for 'Fast BIOS' to force the 15 second wait down to 3 seconds.
  • Minor cleanup and optimizations to the Adam core.

ColecoDS is asymptotically approaching 100% compatibility. No emulator quite reaches that state of perfection but for classic and homebrew Colecovision carts (with and without SGM), I'd put ColecoDS at the arbitrarily precise 98.3% level. I have no scientific proof for this number - it's just a wet finger in the air guess.

 

Some users were operating with non-original BIOS to cut down on the 15 seconds of COLECOVISION banner time... and some of these BIOS files were a bit too drastic in their modifications and caused some compatibility problems. I strongly recommend you use the original Colecovision BIOS with a CRC32 of 3aa93ef3 - to that end, I've added a global option that will patch a single byte (in memory - leaving your original BIOS pristine) to drive the 15 seconds of banner display down to about 3 seconds. Slow enough that you get the nostalgic feels of the game "loading" but fast enough that you get on with your gameplay quickly.

 

Lastly - someone asked me recently what am I going to do when I get to the release after 9.9... of course I'll simply go to 10.0 - because, as it turns out, there are lots of numbers in the universe.

 

image.png.3f4599a91c2438ccb2f87ba37b674918.png

  • Like 4
1 hour ago, wavemotion said:

Fixed Colecovision RAM mirrors such that Boulderdash runs properly.

Wait, does that mean Boulder Dash has problems running on the ADAM? That'd be news to me...

 

48 minutes ago, Pixelboy said:

Wait, does that mean Boulder Dash has problems running on the ADAM? That'd be news to me...

No... it means that when I coded the mirrors for the colecovision emulation I got it wrong. For emulation purposes, I write to all mirror locations so that the readback (which is generally more frequent) is fast - and I goofed one of the mirrors.

 

So Boulderdash occasionally writes and reads from the 0x6C00 block - which would work fine on an ADAM provided whatever it wanted there was likewise written to 0x6C00. But in my emulation, I had this bug:

image.thumb.png.a4c60555c55c30212e88ea812cb37eb1.png

 

So when the game wrote to memory, I wrote it to all mirror locations EXCEPT 0x6C00 (I wrote 0x6800 twice). This was the only game that I had trouble with for years until I discovered my mistake with mirror handling.  With my bug, the game would run but would occasionally (but not always) hang later in the first stage. Interestingly enough, other games that utilize RAM mirrors worked fine - probably because they were not specifically affected by the one broken mirror (7 years of bad luck).

 

Dave

  • Like 2

https://github.com/wavemotion-dave/ColecoDS

V9.8: 23-Apr-2024 by wavemotion-dave

  • Cleanup of MSX BIOS handling - we now support the Panasonic CF-2700 directly. See MSX BIOS section for details.
  • MSX status line now shows RAM (based on machine chosen) on the status line (was previously showing ROM size which no other machine in ColecoDS did).
  • MSX Caps Lock now has LED indicator on the virtual keyboard.
  • Added ROM/CAS/DSK size and CRC32 on the main screen after choosing a game.
  • Numerous fixes for Save/Load states especially for the MSX and Einstein.
  • Improved memory handling to free up some DS resources for future expansion.

There were a lot of changes "under the hood" on this one. Hopefully I didn't break anything image.gif.3c85a2fb26c8ef0a6518efeeebcaa6ac.gif

  • Like 1
  • Thanks 3

Spent some time this weekend polishing up the Colecovision overlay handling. Not a ton of CV games utilize the overlays - feels like a missed opportunity in some ways but maybe they were saving costs?  Or maybe the typical arcade port didn't need an overlay. Anyway, I added a couple new virtual overlays to bring the total up to 12 supported overlays and cleaned up a few older ones - and it should now auto-apply the correct overlay if you're using a ROM with a known good checksum (you can still select the overlay manually in the game config).

 

image.thumb.png.3e2b21bc98e73cc2d4b6e04b7728ce3a.png

  • Like 4

https://github.com/wavemotion-dave/ColecoDS

V9.9: 02-May-2024 by wavemotion-dave

  • Added overlays for Blackjack and War Room. Improved War Games overlay.
  • Added KANA lock LED indicator for Japanese MSX keyboard layouts.
  • Correctly read-back the PPG Port B (needed to make the KANA lock work but is more accurate overall).
  • Improvements to various Coleco PCB types for more accurate emulation of actual hardware.
  • Like 3
  • 1 month later...
32 minutes ago, Jess Ragan said:

This works with the 3DS? Through Twilight Menu, I presume.

Yes, seems a number of people are using it on a 3DS (or 2DS) via TWL++. 
 

I have a 2DS but run it via an R4 clone cart. Works fine but runs in the original DS compatibility mode (slower CPU). 

  • Like 1
  • 2 months later...

https://github.com/wavemotion-dave/ColecoDS 


V10.0: 10-Aug-2024 by wavemotion-dave

  • Adam Sound Enhancer module support to allow AY sound games to play (mostly MSX ports to the ADAM)
  • Ignore files that start with a '.' or '_' (mostly to help filter out clear non-game files).
  • Minor cleanup, tweaks and a bug fixes.

Just a small update with some spit-and-polish.

 

Support now for Adam Sound Enhancer (it was partially working in V9.9) that will provide the AY sound chip (similar to the Super Game Module but for ADAM which already has the extra memory). This will allow the new Telemetry MSX ports to play properly (you will see the 'AY' indicator above the keyboard so you know you're in Sound Enhancer mode).

 

 

  • Like 7
  • 4 weeks later...

https://github.com/wavemotion-dave/ColecoDS 

V10.1: 03-Sep-2024 by wavemotion-dave

  • Fix for the ADC decimal-mode instruction in the 6502 core for the CreatiVision. This fixes a number of problems including hex-digits showing on scores for some games.
  • Tweaks and optimizations for the CreatiVision driver. Added most of the common/stable 'undocumented' opcodes.
  • Improved emulation accuracy for the ADAM with memory now initialized to alternating 0x00 (even bytes) and 0xFF (odd bytes) per AdamEM and experiments from Shawn Merrick.
  • Like 3
  • 2 months later...

Almost ready to release V10.2 .... just need to test another 200 games on it! :D

 

Someone noticed that two SGM games were not running properly - The Castle and Castle Excellent both by Collectorvision would not startup properly. 

 

After some debug, I discovered that both games have an unusual startup sequence (not wrong of course... just unusual) in that the BIOS is disabled before the SGM is enabled. This sequence is fine for actual hardware but my emulator had an edge case that was not handled well: I was enabling the SGM module if the BIOS became disabled even if the SGM module was not explicitly enabled by PORT53 bit 0.  I had a comment that said this was 'likely correct based on a post on the AA forums' but for the life of me I can't find that post and now I feel like I've gaslit myself!

 

It looks like I added that handling almost 3 years ago which is why I'm a slightly leery of taking it out without a full re-test across all games. That process is a bit slow but so far, no problems.

 

Hopefully this will fix the last few holdouts on Colecovision SGM games running on ColecoDS.  Asymptotically approaching full compatibility... feels like one never quite gets there :)

 

Edit:

 

And... 10.2 is released!

https://github.com/wavemotion-dave/ColecoDS

 

  • Like 1
  • Thanks 1

And here's an update that nobody will care about.

 

V10.2a: 11-Nov-2024 by wavemotion-dave
* Added support for the 31-in-1 and 63-in-1 multicarts.

 

I finally got around to adding the support for the X-in-1 multicarts. These use a banking scheme that swaps out the entire 'bank' of 32K from 8000h using read hotspots at FFC0h and above. 

The last 32k chunk of the binary is the starting bank and contains the menu/loader.

 

If you find the 63-in-1 rom out in the wild, it's usually in two pieces (EEPROM 1 and 2) - you will have to glue those pieces together to form a single rom. So let's say the two parts were called part1.rom and part2.rom...

 

In Windows Command Line:  copy /B part1.rom + part2.rom 63-in-1.rom

In Linux Command Line: cat part1.rom part2.rom > 63-in-1.rom

 

ColecoDS should automagically figure out that these are X-in-1 carts... but if not, you can select the 31-in-1 mode in Configuration for those games.

 

think this completes support for Colecovision banking schemes that I'm aware of. We now support:

 

  • Megacart (MC) up to 1024K
  • Supercart (SC) with Flash support up to 512K
  • Activision PCB with EE support (up to 1024K ROM and up to 32K EEPROM)
  • X-in-1 Multicarts (up to 2MB ROM)


If there is something I'm missing, do let me know!

  • Like 5

Was up early this morning and working on an alternate sound driver for ColecoDS that would render digitized speech of games like Sewer Sam, Squish-em-Sam and Wizard of Wor. 

 

The normal sound driver has excellent fidelity on the little DS handhelds but is done by sampling periodically in a thread that is not tied specifically to the emulation itself. This allows it to be very efficient but when games utilize a more direct manipulation of the SN sound chip (to produce "poor-man" wav-like output)... that standard driver isn't sampling fast enough.

 

So this alternate driver will sync with the emulation and sample once per scanline.  It comes at a significant CPU cost and it isn't perfect... but the speech is quite recognizable (admittedly it's not much better on real hardware). This alternate sound driver still needs some tweaks and I'm only going to enable it on the few games that need it since the fidelity of the driver is otherwise not up to the really nice handling of more traditional sound output methods.

 

Does anyone know of other games (besides the two Sam games and WoW) that use digitized speech techniques?

 

Edit: Vanguard (2019) has speech... but it's pretty rough sounding on my new driver. I tried to search YouTube and it sounds rough there as well - though maybe it sounds better on real HW.

 

 

  • Like 3

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...