JonBrawn wrote:Why Orange?
That's likely because the image contains quite some orange colour to begin with, and the image converter correspondingly puts orange as background (or auxiliary) colour, which is then "masked off" at those places where it isn't supposed to show.
Now, if the FPGA doesn't get the colour RAM data fetch quite right, that "masking" *) wouldn't work as intended, and orange over black is a rather good signal colour, i.e. easily recognizable. This should be especially apparent where orange is set as background colour and, for whatever reason, the FPGA processes the 8x1 tile as hires where it should have been rendered as multicolour. There, a more or less solid 8x1 block in orange is then likely to "shine through". But this isn't the only type of fault in the display, only maybe the one easiest to see.
It might be helpful for debugging, if
tokra wrote:?
could prepare debug versions of the tiger picture - the original one, and four others that only contain $00, $55, $AA, $FF in the bitmap. The $00, $55 and $FF pictures should show the distribution of background, border and auxiliary colours is right, the $AA picture should show whether the colour RAM data fetch works as supposed. Finally, a version of the picture with background, border, auxiliary colours set to 0, and colour RAM data set to 1 (white hires) should show whether the bitmap fetch is correct.
Even if these all show fine on their own, they then need to be perfectly vertically aligned. Otherwise, a mis-alignment of colour RAM data easily leads to the consequences I laid out above.
*) The image converter choses the combination of background, border and auxiliary colour for each raster line, which results in the smallest quantization error for that line. In doing so, it is free to assign any combination of foreground colour and multicolour enable to each of the 88/8 = 11 colour RAM attributes present in that raster line. If the converter takes orange as background, because it is an important colour, but most of the raster is black, it then likely sets the foreground colour to black to do that masking. That's how its working could be interpreted. The algorithm actually has no idea that method could be interpreted as such, though. It's a side effect of how it aims to minimize the quantization error.