The difference between the Commodore and the Philips is that the Philips uses a 'real' chipset, as in 82xx-chips, made by Intel or a second-source (such as AMD or NEC).
Commodore uses a single-chip solution, the Faraday FE2010. By the looks of it, the Faraday chipset is not a 100% exact clone, which means that things like the DRAM refresh and timer chip run at a slightly different phase relative to the CPU.
So to make the code work properly on a machine like the Commodore, we would have to rewrite all cycle-exact routines to match the Commodore's specific behaviour (and do the same for every other incompatible clone that we encounter). Clearly this is way beyond the scope of this project.
Therefore we can conclude that *some* clones are able to run the demo 100% correctly (which is actually better than what we initially aimed for). But certainly not all of them.
The old style IBM CGA card however is a VERY important ingredient to get the demo working 100% as intended.
There is one problem with non-Motorola 6845 chips, which we might address. Currently the background colour and hsync width are hardcoded to values that worked best on our development systems. This includes a hsync width of 16, which is set with value 0 (since it is a 4-bit register with range 0-15). Apparently not all 6845 clones interpret a value of 0 as 16 (which they should, as the original Motorola chip does so).
If we modify our code somewhat so that the values can be set in the loader, and all effects query these values, rather than using hardcoded values, it would be easy to adjust these values for incompatible 6845-chips.
We do not know whether or not there are 100% exact IBM CGA clones out there (one would think that cheap Taiwanese clones would just copy the board 1:1, as it's just built from off-the-shelf chips anyway). We do know however, that popular third-party solutions from ATi and Paradise are not 100% exact clones. Neither outputs the proper artifact colours in any mode. Aside from that, their CRTC behaviour is somewhat off, meaning the Kefrens bars cycle-exact effect will not look exactly as intended.
Other than that, the demo will work on these cards.
Another thing we are working on is to get the demo working with DOS 2.x. During development we used PC-DOS 3.30. Apparently some 3.x-only code snuck in there. Most parts already seem to work under DOS 2.x, but it's the loader that crashes. While this is no big deal really (you can boot even the oldest of PCs with 3.30 or higher, if they meet our memory requirements), it should probably be easy to make the code work with 2.x as well.
Making it work with DOS 1.x is going to be a lot more difficult, since it does not implement functionality for TSRs/background processes. This means that our loader would have to be rewritten. On the other hand, if we need to implement this functionality ourselves anyway, we basically don't need DOS at all anymore, so we could convert the demo to a booter easily.