The development of Bus Stuffing took far longer than I expected. While the results are awesome:
(yes, these are actual images generated by my 2600!) regrettably some 2600 Junior and some 7800 consoles just don't work correctly with it, resulting in vertical lines, incorrect colors, and even system crashes:
It appears to be a hardware issue with those systems, and I don't wish to offer up games for sale that won't work on some 2600s (I'd be OK if the problem was restricted to some 7800s).
So Chris Walton (creator of some awesome homebrews, such as Juno First and Chetiry!) and I decided to take what we learned creating the Bus Stuffing driver and come up with an improved version of DPC+ called CDF. CDF features:
Fast fetch mode
5 cycle TIA updates like DPC+
double that of DPC+ and BUS. In DPC+ and BUS after drawing the gameplay area I had to reassign the datafetchers to display the score/lives/level/etc, which took a bit of overhead. With 32 datastreams there should be enough to go around without having to reassign them midscreen.
All datastreams work exactly the same and have an X.Y increment. Harmony/Melody driver code is simpler (smaller) when all datastreams work the same, plus they're more flexible supporting increments such as 2.0, 1.5, 1.0, 0.5, etc. 2.0 is very useful for flicker blind displays like the 128x200 bitmap or the Draconian logo.
datastreams configured by C(or ARM) code
In DPC+ datastreams could only be configured by 6507 code, taking scanlines worth of processing time to do so. In BUS and CDF this is done in C, which is much faster.
3 voice music
Just like DPC+ and BUS
digital sample support
like BUS - no need to set aside a 2K of Display Data, which was a major headache in Frantic
more efficient driver
the driver's smaller, like BUS, so more ROM (2K) and RAM (2K) is available for the game
designed for C (or ARM) code
most features will require the use of C or ARM code.
Chris has been writing the driver for the Harmony/Melody while I've been adding support to Stella. We're far enough along that I've started in on the Draconian reboot as a test case. So far I have the 2-color 96 pixel kernel going using 14 of the datastreams.
Stella (changes not yet committed, I'm still working on the audio):
You can use RESET and SELECT to go between the menu and a "game" screen:
ROM - Harmony only at this time: