Wow I didn't know the 9918 got character masking in VDP(3)!
VDP(3) = VDP(3) XOR 16 is snipping each charset down to halve a charset. So when using the chars 128-255, by enabling the mask register, 0-127 are shown.
This is charset switching / doublebuffering without writing the nametable!
Pippols, Malaika, dviks gng, I guess they all work by ADDing values to the chars and then write to the nametable.
Can replace this by a simple copy loop and do the switching with the mask register. Going further, you can spread the nametable workload across 8 scrollsteps. Like on C64 or on 9938. Getting rid of most of that 768 bytes workload.
And character masking does not affect the sprites! Heaven!
Login or register to post comments