diff --git a/default/inc_fx.glsl b/default/inc_fx.glsl index 91e0b8b..2a6a37b 100644 --- a/default/inc_fx.glsl +++ b/default/inc_fx.glsl @@ -271,8 +271,9 @@ subroutine(fx_stage_sub) vec4 fx_9(vec2 vUV, sampler2D previous, sampler2D feedb float k1 = 100. * (1. - zoom) + 10.; float inv_k = 1. / k1; uv2 = floor(uv2 * k1) * inv_k; - int start_char = charset_ctrl.x > 0. ? cp437_sets[int(charset.x * CP437_SETS) * 2] : 0x01; - int char_span = int((charset_ctrl.x > 0. ? cp437_sets[int(charset.x * CP437_SETS) * 2 + 1] : 255)); + int charset_index = int(charset.x * (CP437_SETS - 1)); + int start_char = charset_ctrl.x > 0. ? cp437_sets[charset_index * 2] : 0x01; + int char_span = int((charset_ctrl.x > 0. ? cp437_sets[charset_index * 2 + 1] : 255)); char_span = int(char_span * max(1. - charset.y, 1. / (char_span * .75))); ivec2 uv2i = ivec2(uv2 * k1); int code = ((charset_ctrl.y < 1. || (uv2i.x % 2 ^ uv2i.y % 2) > 0) ? 1 : 0) * (start_char + int((rand(uv2i) + char_delta) * char_span) % char_span);