I made a few more timing fixes that fix some issues with a few of the more sensitive tech demos out there.
Oh! and CUTEDEMO relied on latching behavior of x-scroll which is now corrected.
Oh! also relied on sprite evaluation not happening in DMG when sprites are turned off. This is actually an easy to see hardware difference between it and CGB, where sprites are always evaluated.
GBVideoPlayer is now working as well, which relies on careful timing between STAT interrupts and y-scroll latching. So it's pretty cool to see it working. It will crash at the end though since the ROM is not padded to a standard size. I'll make a fix for that eventually.
At the same time I am being careful to make sure all the various test ROMs still work, so overall these are small but important accuracy improvements.
As a bonus, the notorious dycptest2 test ROM now looks correct:
So things are moving forward pretty well.
EDIT: CUTEDEMO still has what appears to be some BG color latching behaviour that needs to be implemented in the 'zilog inside' scene. I would need to see it running on real hardware to make sure though.