You´re welcome.
The MSX1 VDP is pretty slow, generally the emulators and VHDL implementations allow faster access and I've heard of bugs/differences in the bit for sprite collision detection.
When I developed Zombie Near for MSXdev'10 I didn't had a MSX to test (and still I don't have it, but looking forward to have one), so to stand in the safe side I preferred to use only BIOS calls for VDP access.
A recent translation to Colecovision also gave me some headache, as the Z80 runs slightly faster and the VDP showed black junk over screen.
bios is not an option when you must get rid of it (to use 64k).
Instead of direct access, write 1 function to write other to read and you must adjust only 2 functions instead of the entire code. Also, get the current vdp port at 0006h and use it instead of assuming it as 99h/98h.
bios is not an option when you must get rid of it (to use 64k).
Instead of direct access, write 1 function to write other to read and you must adjust only 2 functions instead of the entire code. Also, get the current vdp port at 0006h and use it instead of assuming it as 99h/98h.
You would be surprised, my latest version of Zombie Near uses full 64K addressing space and still uses MSX BIOS for setup of VDP address, then switches banks to write data directly to VDP.
not surprised as any dos game that uses CALSLT does the same. But then again, you have the cost of changing slots.
If you need to make several transfers per frame that could be a bottleneck.