Well, perhaps you can write some typical tests specifically to investigate this behaviour. If you have some good test case with a video or screenshot showing the output, or even better, if you understand what the hardware is doing in that test, we can start to think of how to emulate it.
I'll write a program with all the differences I've found so far from real hardware and open MSX. Apparently, I give you a lot of work since Metal limit
For what I know so far:
* line interrupt: the real VDP doesn't allow to disable/enable display and sprites during a line interrupt, open MSX yes, the real VDP will always wait the VBL to taking action.
* impossible to blit certain areas of the memory (that I really do not understand), I'll provide you a rom with one example + the code.
regards,
Joël
oh, only a 32k area. strange. my RAM banks theory does not fit.
new funny theory: a vram area for important data is protected from blitter driver bugs
because, when I see the shitload of vram of the gfx 9000, I think "sin cos mul tables". to be used with vpeek.
the 9990 design might think of a usage with a little computer, little cpu RAM, all bucks spent on the vram.
well, the "shield important cpu data" theory
I assume that vpoke vpeek still work in this area.
or this one:
part of the charset is protected from blitter overwrite bugs. the usual charset for the level graphics.
and in the rest the blitter can run wild for software sprites and stuff.
JOel: thanks. For that 2nd thing: can you find out details about which area is not allowed and what actually happens? (Which data is taken?)
For the 1st thing: can you give us a demo program to show the issue so we can test it on openMSX to confirm the fix, once we have it?