Manuel: Hopefully my theory on why this occurs is a workable one for a fix .
I was talking about the issue with Keith over Twitter, and because of this theory I suggested he try 8-pixel offsets, which indeed solved the issue, so to me that’s gotta be it .
About the write mask, as the VDP commands always operates on 16 bits at once, the mask is just a logic operation on those. For the 0 bits it selects DC rather than WC. A mask is used internally to deal with unaligned pixel coordinates, friendly of them to expose the functionality to the end user as well.
I have to say the V9938 often gets criticised here for its slow command engine implementation, after considering a bit more deeply the V9990 implementation, Yamaha really stepped up their game there.
p.s. So as the PC-Engine advertised being a “16-bit computer” due to having a 16-bit VDP even though the CPU was 8-bits, I guess with the V9990 our MSX is equally 16-bit, certainly if you add the R800!
does this mean that on v9990 it is not possible to scroll the entire screen horizontally by brute force at 1px steps?
does this mean that on v9990 it is not possible to scroll the entire screen horizontally by brute force at 1px steps?
good question.
maybe everything goes well when you run the blitter in the right direction
For high performance, I think it’s pipelined to read the next unit of pixel data before it writes the previous result
when the source gets shifted by 0..3 nibbles
some pipelining is inherent to it
there must be some shift register bits as buffer
does this mean that on v9990 it is not possible to scroll the entire screen horizontally by brute force at 1px steps?
good question.
maybe everything goes well when you run the blitter in the right direction
someone should verify on real hw
the docs sound like in P1 mode the blitter copies in layer A and layer B simultaneously. usualy you block one copy with write mask.
the shift register pathes got to be a bit different than in other modi.
does this mean that on v9990 it is not possible to scroll the entire screen horizontally by brute force at 1px steps?
There is no such restriction on copies. I think hit9918 is spot on saying “some pipelining is inherent to it”, that sounds like a good reason to have a buffer step between reading and writing.
@keith56 did you ever solved this issue? We have similar issues, not the same, but also wrong pattern data. Funny thing is, we have the issue only with the PowerGraph.... but not on the original G9k from sunrise, or Hans his G9k, only with the PowerGraph.. so i wonder if there is something odd with the hardware we never discovered now we get more into G9k.
It is always the same machine only different g9k hardware.
Sorry, but it is solved... it seems alcohol was solving the issue this time.. just by cleaning the contacts on the slot pins ... never knew that alcohol could solve issues as well