I am on the Android port if that means anything. I do have lovely injector installed though.
Log:
Oops! The game crashed:
Error validating vertex shader code:
Line 104: ERROR: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' temp highp float' and a right operand of type ' const int' (or there is no acceptable conversion)
Line 104: ERROR: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.
Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~BETA-1016c-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.8.0
Platform: Android
Steamodded Mods:
1: SystemClock by Breezebuilder [ID: SystemClock, Priority: 100000, Version: 1.7.1, Uses Lovely]
2: Malverk by Eremel_ [ID: malverk, Priority: -999999, Version: 1.1.3a, Uses Lovely]
3: Talisman by MathIsFun_, Mathguy24, jenwalter666, cg-223, lord.ruby [ID: Talisman, Version: 2.6, Uses Lovely]
Lovely Mods:
1: Trance
2: MobilePatches-master
Stack Traceback
===============
(3) field C function 'newShader'
(4) Lua method 'inject' at Steamodded file 'src/game_object.lua:3216'
Local variables:
self = table: 0x6e0a418480 {key:malverk_texture_selected, registered:true, original_key:texture_selected, _saved_d_u:true, full_path:Mods/Malverk-main/assets/shaders/applied.fs (more...)}
file = string: "#if defined(VERTEX) || __VERSION__ > 100 || defined(GL_FRAGMENT_PRECISION_HIGH)\
\9#define MY_HIGHP_OR_MEDIUMP highp\
#else\
\9#define MY_HIGHP_OR_MEDIUMP mediump\
#endif\
\
\
extern MY_HIGHP_OR_MEDIUMP vec2 texture_selected;\
extern MY_HIGHP_OR_MEDIUMP number dissolve;\
extern MY_HIGHP_OR_MEDIUMP number time;\
extern MY_HIGHP_OR_MEDIUMP vec4 texture_details;\
extern MY_HIGHP_OR_MEDIUMP vec2 image_details;\
extern bool shadow;\
extern MY_HIGHP_OR_MEDIUMP vec4 burn_colour_1;\
extern MY_HIGHP_OR_MEDIUMP vec4 burn_colour_2;\
\
vec4 dissolve_mask(vec4 tex, vec2 texture_coords, vec2 uv)\
{\
if (dissolve < 0.001) {\
return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, shadow ? tex.a*0.3: tex.a);\
}\
\
float adjusted_dissolve = (dissolve*dissolve*(3.-2.*dissolve))*1.02 - 0.01; //Adjusting 0.0-1.0 to fall to -0.1 - 1.1 scale so the mask does not pause at extreme values\
\
\9float t = time * 10.0 + 2003.;\
\9vec2 floored_uv = (floor((uv*texture_details.ba)))/max(texture_details.b, texture_details.a);\
vec2 uv_scaled_centered = (floored_uv - 0.5) * 2.3 * max(texture_details.b, texture_details.a);\
\9\
\9vec2 field_part1 = uv_scaled_centered + 50.*vec2(sin(-t / 143.6340), cos(-t / 99.4324));\
\9vec2 field_part2 = uv_scaled_centered + 50.*vec2(cos( t / 53.1532), cos( t / 61.4532));\
\9vec2 field_part3 = uv_scaled_centered + 50.*vec2(sin(-t / 87.53218), sin(-t / 49.0000));\
\
float field = (1.+ (\
cos(length(field_part1) / 19.483) + sin(length(field_part2) / 33.155) * cos(field_part2.y / 15.73) +\
cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) ))/2.;\
vec2 borders = vec2(0.2, 0.8);\
\
float res = (.5 + .5* cos( (adjusted_dissolve) / 82.612 + ( field + -.5 ) *3.14))\
- (floored_uv.x > borders.y ? (floored_uv.x - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve)\
- (floored_uv.y > borders.y ? (floored_uv.y - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve)\
- (floored_uv.x < borders.x ? (borders.x - floored_uv.x)*(5. + 5.*dissolve) : 0.)*(dissolve)\
- (floored_uv.y < borders.x ? (borders.x - floored_uv.y)*(5. + 5.*dissolve) : 0.)*(dissolve);\
\
if (tex.a > 0.01 && burn_colour_1.a > 0.01 && !shadow && res < adjusted_dissolve + 0.8*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) {\
if (!shadow && res < adjusted_dissolve + 0.5*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) {\
tex.rgba = burn_colour_1.rgba;\
} else if (burn_colour_2.a > 0.01) {\
tex.rgba = burn_colour_2.rgba;\
}\
}\
\
return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, res > adjusted_dissolve ? (shadow ? tex.a*0.3: tex.a) : .0);\
}\
\
number hue(number s, number t, number h)\
{\
\9number hs = mod(h, 1.)*6.;\
\9if (hs < 1.) return (t-s) * hs + s;\
\9if (hs < 3.) return t;\
\9if (hs < 4.) return (t-s) * (4.-hs) + s;\
\9return s;\
}\
\
vec4 RGB(vec4 c)\
{\
\9if (c.y == 0.)\
\9\9return vec4(vec3(c.z), c.a);\
\
\9number t = (c.z < .5) ? c.y*c.z + c.z : -c.y*c.z + (c.y+c.z);\
\9number s = 2.0 * c.z - t;\
\9return vec4(hue(s,t,c.x + 1./3.), hue(s,t,c.x), hue(s,t,c.x - 1./3.), c.w);\
}\
\
vec4 HSL(vec4 c)\
{\
\9number low = min(c.r, min(c.g, c.b));\
\9number high = max(c.r, max(c.g, c.b));\
\9number delta = high - low;\
\9number sum = high+low;\
\
\9vec4 hsl = vec4(.0, .0, .5 * sum, c.a);\
\9if (delta == .0)\
\9\9return hsl;\
\
\9hsl.y = (hsl.z < .5) ? delta / sum : delta / (2.0 - sum);\
\
\9if (high == c.r)\
\9\9hsl.x = (c.g - c.b) / delta;\
\9else if (high == c.g)\
\9\9hsl.x = (c.b - c.r) / delta + 2.0;\
\9else\
\9\9hsl.x = (c.r - c.g) / delta + 4.0;\
\
\9hsl.x = mod(hsl.x / 6., 1.);\
\9return hsl;\
}\
\
vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords )\
{\
vec4 tex = Texel(texture, texture_coords);\
\9vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba;\
\
vec4 SAT = HSL(tex);\
if (texture_selected.g > 0 || texture_selected.g < 0)\
SAT.g = 0.2 * SAT.g;\
SAT.b = SAT.b*0.4;\
\
\9tex = RGB(SAT);\
\9// tex.a = tex.a*0.5;\
\
\9return dissolve_mask(tex*colour, texture_coords, uv);\
}\
\
extern MY_HIGHP_OR_MEDIUMP vec2 mouse_screen_pos;\
extern MY_HIGHP_OR_MEDIUMP float hovering;\
extern MY_HIGHP_OR_MEDIUMP float screen_scale;\
\
#ifdef VERTEX\
vec4 position( mat4 transform_projection, vec4 vertex_position )\
{\
if (hovering <= 0.){\
return transform_projection * vertex_position;\
}\
float mid_dist = length(vertex_position.xy - 0.5*love_ScreenSize.xy)/length(love_ScreenSize.xy);\
vec2 mouse_offset = (vertex_position.xy - mouse_screen_pos.xy)/screen_scale;\
float scale = 0.2*(-0.03 - 0.3*max(0., 0.3-mid_dist))\
*hovering*(length(mouse_offset)*length(mouse_offset))/(2. -mid_dist);\
\
return transform_projection * vertex_position + vec4(0,0,0,scale);\
}\
#endif"
(*temporary) = table: 0x70f1580c20 {skew:Shader: 0xb400006ff97329d0, booster:Shader: 0xb400006ff9732090, gold_seal:Shader: 0xb400006ff9732e70, background:Shader: 0xb400006ff972f000 (more...)}
(*temporary) = string: "malverk_texture_selected"
(5) Lua method 'inject_class' at Steamodded file 'src/game_object.lua:183'
Local variables:
self = table: 0x70f72045f0 {__index:table: 0x70f72045f0, set:Shader, subclasses:table: 0x70f1a0c500, required_params:table: 0x70f1a0c180, inject:function: 0x70f6ebc2d8, super:table: 0x6e1adc2758 (more...)}
inject_time = number: 5.052e-06
start_time = number: 3.28677
end_time = number: 3.28677
o = table: 0x6e0a418480 {key:malverk_texture_selected, registered:true, original_key:texture_selected, _saved_d_u:true, full_path:Mods/Malverk-main/assets/shaders/applied.fs (more...)}
(for generator) = C function: builtin#6
(for state) = table: 0x70f1a0c138 {1:malverk_texture_selected}
(for control) = number: 1
i = number: 1
key = string: "malverk_texture_selected"
(6) Lua field 'injectObjects' at Steamodded file 'src/game_object.lua:257'
Local variables:
class = table: 0x70f72045f0 {__index:table: 0x70f72045f0, set:Shader, subclasses:table: 0x70f1a0c500, required_params:table: 0x70f1a0c180, inject:function: 0x70f6ebc2d8, super:table: 0x6e1adc2758 (more...)}
(7) Lua field 'injectObjects' at Steamodded file 'src/game_object.lua:259'
Local variables:
class = table: 0x6e1adc2758 {take_ownership:function: 0x70f19ea930, register:function: 0x70f15de100, check_dependencies:function: 0x70f19e9d70, __index:table: 0x6e1adc2758 (more...)}
(for generator) = C function: builtin#6
(for state) = table: 0x6e1adc2840 {1:table: 0x6e1adc2bc8, 2:table: 0x6e1adc3380, 3:table: 0x6e1adc3980, 4:table: 0x6e1adc3ea0, 5:table: 0x6e1adc44f0, 6:table: 0x6e1adc5708, 7:table: 0x6e1adc6620 (more...)}
(for control) = number: 23
_ = number: 23
subclass = table: 0x70f72045f0 {__index:table: 0x70f72045f0, set:Shader, subclasses:table: 0x70f1a0c500, required_params:table: 0x70f1a0c180, inject:function: 0x70f6ebc2d8, super:table: 0x6e1adc2758 (more...)}
(8) Lua field 'injectItems' at Steamodded file 'src/loader.lua:608'
(9) Lua global 'initSteamodded' at Steamodded file 'src/loader.lua:661'
(10) Lua upvalue 'su' at file 'game.lua:221'
Local variables:
self = table: 0x70f9935be0 {DRAW_HASH:table: 0x70f9aff720, DRAW_HASH_BUFF:2, F_NO_SAVING:false, UIT:table: 0x70f98ffcd0, shared_debuff:table: 0x6e1adf3768, shared_soul:table: 0x710083ca10 (more...)}
settings = nil
settings_ver = nil
new_colour_proto = table: 0x70f9b02380 {Diamonds:table: 0x70f9b025a0, Hearts:table: 0x70f9b024b0, Clubs:table: 0x70f9b02780, Spades:table: 0x70f9b026b8}
sound_files = table: 0x70f157b108 {1:ambientFire1.ogg, 2:ambientFire2.ogg, 3:ambientFire3.ogg, 4:ambientOrgan1.ogg, 5:button.ogg, 6:cancel.ogg, 7:card1.ogg, 8:card3.ogg, 9:cardFan2.ogg (more...)}
shader_files = table: 0x70f1580c68 {1:CRT.fs, 2:background.fs, 3:booster.fs, 4:debuff.fs, 5:dissolve.fs, 6:flame.fs, 7:flash.fs, 8:foil.fs, 9:gold_seal.fs, 10:holo.fs, 11:hologram.fs (more...)}
(11) Lua method 'start_up' at file 'main.lua:2230'
Local variables:
self = table: 0x70f9935be0 {DRAW_HASH:table: 0x70f9aff720, DRAW_HASH_BUFF:2, F_NO_SAVING:false, UIT:table: 0x70f98ffcd0, shared_debuff:table: 0x6e1adf3768, shared_soul:table: 0x710083ca10 (more...)}
(12) Lua field 'load' at file 'main.lua:960'
(13) Lua function '?' at file 'main.lua:907' (best guess)
(14) global C function 'xpcall'
(15) LÖVE function at file 'boot.lua:368' (best guess)
Local variables:
result = boolean: true
main = nil
(16) global C function 'xpcall'
(17) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
inerror = boolean: true
deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
I am on the Android port if that means anything. I do have lovely injector installed though.
Log: