ColecoDS - Improved

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Version 8.3 is up at: https://github.com/wavemotion-dave/ColecoDS
V8.3: 10-Aug-2023 by wavemotion-dave
  • 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.

    Tons of updates... Memotech MTX all straightened out. Tatung Einstein got a new keyboard. Cleanup across the board.

    1691676829583.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Version 8.4 is up at: https://github.com/wavemotion-dave/ColecoDS

V8.4: 15-Aug-2023 by wavemotion-dave
  • 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.

The Keyboards Strike Back... more improvements to the keyboard handling across the board. I think the keyboard emulation on most of the Coleco-cousin systems are now pretty robust.

1692100176269.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
It will be possible to add the option to play kss music files from MSX and vgm from Sega Master System.
I believe (for the MSX anyway... don't know about SMS) that it would require FM-Pac/YM2413 which is probably not in the cards for this engineer. But it's released on github so maybe someone will come along and add it :)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
New build coming soon... I finally figured out the last of the Sord M5 gremlins. The whole Z80 CTC timer channel 3 was the problem. This thing sort of accumulates a number of different possible interrupt triggers in a cascade style. The two most important of which are the VDP (interrupting on every frame) and the Keyboard (triggering on key presses). I've got that sorted out finally - and now the last of the Sord M5 holdouts are working fine (mostly SPC games like Jumping Jack and Drops which would refuse to play previously).

To celebrate, I've got a new SORD M5 keyboard graphic ready to roll.

1692442826568.png



The Sord M5 wasn't the most popular computer - only a couple dozen games and programs created for it... but there are some must-plays if you're a fan of the 8-bit 'Coleco-style' gaming. Namely Apploon and Up Up Balloon which are favorites of mine.

1692442978229.png
 

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
470
Trophies
0
Age
23
XP
1,262
Country
Italy
New build coming soon... I finally figured out the last of the Sord M5 gremlins. The whole Z80 CTC timer channel 3 was the problem. This thing sort of accumulates a number of different possible interrupt triggers in a cascade style. The two most important of which are the VDP (interrupting on every frame) and the Keyboard (triggering on key presses). I've got that sorted out finally - and now the last of the Sord M5 holdouts are working fine (mostly SPC games like Jumping Jack and Drops which would refuse to play previously).

To celebrate, I've got a new SORD M5 keyboard graphic ready to roll.

View attachment 389130


The Sord M5 wasn't the most popular computer - only a couple dozen games and programs created for it... but there are some must-plays if you're a fan of the 8-bit 'Coleco-style' gaming. Namely Apploon and Up Up Balloon which are favorites of mine.

View attachment 389131
Since this emulator runs so many Z80 machines...why not add ZX Spectrum too while you're at it? :rofl2:
I bet implementing the PC Speaker would be pretty difficult though
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Since this emulator runs so many Z80 machines...why not add ZX Spectrum too while you're at it? :rofl2:
I bet implementing the PC Speaker would be pretty difficult though
The MSX had an internal speaker - very few games used it except for 'Lazy Spectrum' ports. But I do support it.

Anyway, ZXDS is the defecto Spectrum emulator for the DS. Well worth it - though it won't run from TWL++ easily.
Post automatically merged:

Version 8.5 is up at: https://github.com/wavemotion-dave/ColecoDS

V8.5: 20-Aug-2023 by wavemotion-dave
  • 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).

Edit: really hate the auto-merge feature. I understand why... but... why?!
 
Last edited by wavemotion,

assassinz

Visoly 512 Flash Advance Linker Xtreme Master!
Member
Joined
Mar 17, 2003
Messages
1,295
Trophies
2
Location
The Internet
XP
1,392
Country
United States
This machine has beaten me.

View attachment 389481

Three times I've tried to get the WD1770 Floppy Disk controller emulated and hooked in. Three times it's ended in virtual tears.

I hate giving up...

"He never gives up, he'll stay 'til the fight's won! Wavemotion will dare!"
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Believe it or not... this is actually progress!

You don't want to know how many hours it took to get here. I'm writing my own WD1770 floppy disk controller interface for the Tatung Einstein.

1693153520116.png




Edit 8 hours later... and it works! The Tatung Einstein can go f*ck itself :)
This will only be the second emulator to run Tatung Einstein games - MAME was the only one that had support for this odd machine.

1693173651610.png
 
Last edited by wavemotion,

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
470
Trophies
0
Age
23
XP
1,262
Country
Italy
Believe it or not... this is actually progress!

You don't want to know how many hours it took to get here. I'm writing my own WD1770 floppy disk controller interface for the Tatung Einstein.

View attachment 390691



Edit 8 hours later... and it works! The Tatung Einstein can go f*ck itself :)
This will only be the second emulator to run Tatung Einstein games - MAME was the only one that had support for this odd machine.

View attachment 390734
Holy crap...not gonna lie, you're as close as a person could get to godhood! You're basically the expert of 8-bit machines
 
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Getting close to a new release. Daily check in adds some nice touches for the Tatung Einstein. New diskette loading sounds which I love. New diskette icon with the ability to swap disks and save a diskette that has been written to.

As an aside, the only other Einstein emulator on the planet (MAME) doesn't handle WD1770 saves properly for this machine so you can't write any data. I got it working :) To my knowledge, this is the only Einstein emulator that handles disk reads and writes.

1693308135323.png
 

ber71

Well-Known Member
Member
Joined
Apr 24, 2019
Messages
562
Trophies
0
Age
58
XP
2,469
Country
Spain
Hi Dave, I guess there is some copypaste typo in the readme.
These bios share the same crc32: hb-10.rom and pv-7.rom. Or, who knows, perhaps they are different machines with the same bios, really. 😵‍💫
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
V8.6: 31-Aug-2023 by wavemotion-dave
  • Added .dsk support for Tatung Einstein games!
  • Improved Tatung Einstein keyboard and joystick handling.
  • Minor graphical tweaks and improvements as time allowed.

This is a big one!

Tatung Einstein Compatibility :​

The base 64K machine is emulated. Both .dsk files and .COM files will play. For both, you would load the file and press the START button to boot them (for .com files, it will load the file at 0x100 and auto-run... for .dsk files the START button will emulate the CTRL-BREAK needed to boot the diskette). Out in the interwebs, you will mostly only find .dsk files and the .COM files can be extracted from them. The easiest way is to use either Charlie Robson's einSDein-vitamins or EDIP to extract .COM files from disk images. Or just stick to .dsk files which are a bit more authentic to the experience of using a Tatung Einstein.

Two Tatung Einstein disk drives are supported. The default drive 0: is a standard single-sided, 40 track, 10 sector-per-track diskette with about 190K disk space available. This is the drive that will hold and load your .dsk file image when you run the emulation.

The second drive 1: is a persistent RAM Disk that can be saved back to the SD card on your DS/DSi. This comes pre-formatted (and you can re-initialize it using the DISK icon menu) with 190K of storage. To the emulator, it looks just like a standard second disk drive. You can copy often used programs and utilities to this disk - I use it to stash away a few flavors of XBAS so I've always got the right one on hand to play games.

Both drives support read/write capabilities however, the writing will NOT auto-back those changes to your SD card. I might change that behavior in the future - but for now, any changes written to the emulated disks are transient until you go into the DISK icon menu and save them back to the SD card. I'm fairly confident that the disk write works fine - but until I get more testing hours from field-use, I don't want to inadvertently screw up an original .dsk image and leave the onus on the user to save out the disk for now.

Speaking of disk images, there are several places to find them... but I would recommend seeking out the 'Tatung Einstein Gamebase' which generally has disk images properly formatted and auto-booting for a more streamlined experience. Seek those out.

Lastly, in addition to the standard 8K einstein.rom BIOS file (required for Einstein emulation), you can optionally provide an einstein2.rom file that will load (up to 8K) into 0x4000. This is the extra ROM slot in a real Einstein and can be used to house diagnostics roms or things like flexi-dos.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile
This machine has beaten me.

View attachment 389481

Three times I've tried to get the WD1770 Floppy Disk controller emulated and hooked in. Three times it's ended in virtual tears.

I hate giving up...
Port the environment to VS2012(Visual Studio 2012), here's a template to do it fairly easily:

ToolchainGenericDS-utils


or

ToolchainGenericDS-project3D

The first one has DLDI Driver + FATFS debugging on VS2012 natively (that is, you mount a FAT32 image under the DLDI layer, which then hooks to FATFS then TGDS-Filesystem API.

The second one has the ability to run either as native ToolchainGenericDS 3D Project (OpenGL) through VS2012, or NDSDisplayListUtils (GX debugger on VS2012), or then as native ToolchainGenericDS 3D Project on NintendoDS using the TGDS SDK.

As long as you're using C source code you should be good debugging things on VS2012 then porting back to NDS, it'll save you years, if not decades, of development.
 

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
470
Trophies
0
Age
23
XP
1,262
Country
Italy
Another machine that is supported, but not previously adverted: Othello Multivision. I've just loaded a few games and these work as intended, because the Multivision is no more than a sg1000 clone.
I get more fun testing stuff around than actually playing games :shy:
Jeremy Parish will be happy to hear this, I'm sure :rofl:
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Another weekend... another new feature. MSX1 Floppy Disk loading is now added.

I'm using the FastDROM released freely back in 2006 as a replacement for one of the standard port-based I/O mapped floppy controllers.

Right now, it only handles 720K disks (3.5" DD, 2-sides, 80 tracks and 9 sectors per track) which is pretty much how you will find 95% of MSX1 disk based software .dsk images.

Reading and writing supported - but I don't yet write-back to SD card (...soon).

1693773773839.png



Another machine that is supported, but not previously adverted: Othello Multivision. I've just loaded a few games and these work as intended, because the Multivision is no more than a sg1000 clone.
I get more fun testing stuff around than actually playing games :shy:
Cool! Yeah, it's basically an SG-1000 with a bit of camouflage. Glad it works!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,349
Country
United States
Version 8.7 is released at: https://github.com/wavemotion-dave/ColecoDS

V8.7: 07-Sep-2023 by wavemotion-dave
  • 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.
And for the first time in forever, my to-do list on ColecoDS is down to just one item :)

1694083174876.png
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @salazarcosplay, Good.