Hi! Recently I have experienced some problems debugging one of my work-in-progress games. While the game worked smoothly on any MSX2/MSX2+/Turbo-R and emulators, it had severe graphic glitches when executed on a MSX1 machine. After a five-days nightmare, I was able to correct the problem: I was reseting the most significant bit of the VDP register 1. According to the TMS9918/TMS9928/TMS9929 specs, this bit has the following meaning: 0- 4 KB VRAM installed; 1- 16 KB VRAM installed.
According to the MSX TECHNICAL DATABOOK and other MSX references, this bit is meaningless for the MSX, because it has always 16 KB of VRAM. The evidence shows that this bit does produce some effects on MSX1 computers. I suppose that it changes the VRAM mapping or the way the VDP processes the VRAM addresses. I have discovered that the issues arise when the V-blank interruption is acknowledged.
Does anyone have any clues about this? Any information regarding this topic? It will be useful to know exactly the meaning of this bit on the MSX1 computers, so this particular problem could be fixed in all emulators. None of the emulators support this bit at the moment, they just ignore it, as the MSX specification claims. But the tiny TMS9918 seems to be more tricky than expected!
Ideas?