I am writing about SCREEN4 and experimenting with different VDP registers (changing tables addresses to be exact). To draw some comparisons with SCREEN4 I am trying to make SCREEN2 use this configuration on the MSX2:
Pattern name table = 0x3800 (R#2 = 0xE) Colour table = 0x0000 (R#3 = 0x7F, R#10 = 0x0) Pattern generator table = 0x2000 (R#4 = 0x7) Sprite attribute table = 0x3c00 (R#5 = 0x78, R#11 = 0x0) Sprite pattern generator table = 0x4000 (R#6 = 0x8)
It almost works, but for some weird reason I can't write sprite patterns at 0x4000
and beyond. I am trying to use LDIRVM BIOS call (0x5c
) to put sprite patterns in there, but the BIOS call writes at 0x2000
instead, messing up the pattern table. Is there an alternative to LDIRVM? Meanwhile, all VRAM after 0x4000
is set to 85
, which display all sprites as vertical lines. Is LDIRVM somehow limited to the 0-0x3FFF
range on SCREEN2 for some reason, even though I am running the code on the MSX2 with lots of VRAM? (Well, not really, it's just OpenMSX...)