Massive overhaul - not quite ready for a new release, but I did just check in 1.5c for the adventurous among you!
https://github.com/wavemotion-dave/SpeccySE
The Spectrum CPU core has been overhauled to bring in a more cycle-accurate emulation. It's still not perfect - mainly because I'm still rendering a scanline at a time... but it's now close enough to make the 'multi-color' games look and play correctly.
The 'multi-color' techniques are varied but generally come down to accurate timing of the ZX Spectrum ULA (video chip) driving the display vs the code knowing where in the drawing the ULA is. With careful timing by clever programmers, the colors can be switched around just after one line has been drawn and before the next starts. With conventional ZX Spectrum games the resolution of color is normally in 8x8 pixel blocks (that is... any 8x8 block can only contain 2 colors). With the 'multi-color' technique this can be 8x4, 8x2 or 8x1 (meaning colors can be changed on every scanline). The downside for the game programmer is that it takes quite a bit of ZX CPU power to render in this way... leaving very little CPU time for the actual gameplay. Therefore, amongst the many thousands of games available for the ZX Spectrum, only a few dozen games utilize this technique.
Having said that... they are some of the most amazing games on the system!!
Highly recommend you play Gluf, Ringo, Pyluk, Old Tower, Yazzie128, Buzzsaw+ and Get out of Mars.
This new driver is fully enabled on all games - whether or not the game uses multi-color techniques - so classic games will play much closer to real hardware. This new driver is fully enabled for both the DSi and DS-Lite/Phat -- it took some serious work this week to speed up the driver to the point where it plays nicely on all DS hardware.
I had to wipe existing Save States and the Configuration - sorry about that. But this was a radical overhaul. It's not perfect (and I now have an even deeper appreciation for what Patrik Rak accomplished with ZXDS) - but it's much closer and game-play wise it should be pretty solid. I will continue to improve as my skill allows.
I would appreciate any feedback you have on this version before I push out a 1.6 release.