Hi,
While working on the V9958 emulation in live.bluemsx.com I ended up a bit confused about how horizontal scroll actually works (in particular the lower 3 bits and edge masks). If someone could help me understand I'd be very thankful.
What I'm trying to fully understand is how the first 24 pixels of a scan line (including border) is rendered given the horizontal scroll register. Assume with hscroll = 0, the following pixels are rendered (I assume):
b b b b b b b b 0 1 2 3 4 5 6 7 x x x x x x x
where b is 8 left border pixels and x'es are the next 8 pixels on the scan line.
so first question: With hscroll = 1 how are the pixels 0-7 mapped (e.g.):
b b b b b b b 0 1 2 3 4 5 6 7 x x x x x x x x
or
b b b b b b b b b b b b b b b 0 1 2 3 4 5 6 7 x
or something else
second question assume border masking is set, which pixels are masked (both in the hscroll = 0 case and when hscroll = 1)
third question, how is border masking looking at the right border?
Any thoughts that can help me fully understand this is appreciated.