When I added a background picture I noted that I missed a row of pixels on the right side.
The 15 bit mode with Kalms c2p_4rgb888_3rgb555h8_040
writes 11 pixel-bits from a 32 bit register. It does so by omitting the blue-component of the last pixel in the register. This is actually well documented like that. Nevertheless, I still managed to mix up my math and then only looked at the custom registers when I couldn't make the black stripe go away. The solution is to make the screenbuffer 220 pixels wide, as Dodke also mentioned in the Subside thread at Pouet
. This actually neatly fits the 640 screen display window, because 220*32/11=640!
This are the values for the copperlist of a 220 pixel RGB on a 640 highres screen:
dc.w diwstrt,$4581,diwstop,$f9c1 ;16:9, 180 lines
Maybe that is helpful for someone. I actually inlined saturation into the c2p code, as proposed by Blueberry over here
, and now work from a 4RGB666 buffer. This is quite a neat screenmode!