Can you give an exact description of the way the shader has changed? Do you have backups of your project from before you updated? Are you sure it isn't something wrong with your project or you haven't made a change to the shader that you've forgotten about?
Yes, I saved an executable version before I updated GMS. I'm positive the shader is still the same, I've double checked it with the standard hue shift code too.
This is how the normal correct version looks from GMS 1.4.1398
This is the new update to GMS v1.4.1757
As you can see the levels and leaves that use the shader are different colors completely, it's as if the saturation is way to high as well.
shader code:
// Vertex GLSL ES
// Simple passthrough vertex shader
//
attribute vec3 in_Position; // (x,y,z)
//attribute vec3 in_Normal; // (x,y,z) unused in this shader.
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}
------------------------------------------------------------
// Fragment GLSL ES
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
const mat3 rgb2yiq = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);
const mat3 yiq2rgb = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.1070, 1.7046);
uniform float hue;
void main() {
vec3 yColor = rgb2yiq * (texture2D(gm_BaseTexture, v_vTexcoord).rgb*v_vColour.rgb);
float originalHue = atan(yColor.b, yColor.g);
float finalHue = originalHue + hue;
float chroma = sqrt(yColor.b*yColor.b+yColor.g*yColor.g);
vec3 yFinalColor = vec3(yColor.r, chroma * cos(finalHue), chroma * sin(finalHue));
gl_FragColor = vec4(yiq2rgb*yFinalColor, texture2D(gm_BaseTexture,v_vTexcoord).a);
}