First post, by M-HT
There is an error in hq2x / hq3x scalers.
In file src/gui/render_templates_hq.h (in function diffYUV) the lines 44, 49, 54 are the same and look like this:
mask = diff >> 31; // -1 if value < 0, 0 otherwise
Since diff is an unsigned integer, the result won't be -1 if value < 0, but the result will be 1.
To get the correct result, the lines should to be modified to look like this:
mask = ((Bit32s)diff) >> 31; // -1 if value < 0, 0 otherwise