I have only just started testing out the iOS release of ScummVM. So far, it seems to work great on my iPad Pro 2nd generation.
I have a question about shaders. I find that quite a lot of the very demanding or newer shaders do not work (not surprising) but I was disappointed that I could not get some of my favorite "older" CRT shaders (i.e. lottes) to work. Many of them will either not load at all, or will show distortions such as one half of the screen being a different shade to the other, or fine lines bisecting the screen on either the x or y axis - kind of like the stabilizer wire you would see across Trinitron CRT screens back in the day.
I did find that crt-nobody works reasonably well (being a simple "scan-line only" shader) on the 11-inch iPad screen @ 2388x1668 resolution.
Does anyone know of any of the more advanced CRT shaders being converted for better iOS compatibility? i.e. perhaps it takes some tweaks to the glsl files? I do not know enough about shader programming to do this myself.
I should mention that all the shaders I have tested work fine in both latest MacOS and Windows 11, so it is a issue specific to iOS compatibility.
Shaders in iOS
Moderator: ScummVM Team
Re: Shaders in iOS
Hi
Some of the shaders requires a higher version of OpenGL than what’s used in the iOS backend. The iOS backend implements OpenGL ES 2.0, which is a subset of Open GL but instead optimized for mobile platforms.
iOS has support for OpenGL ES 3.0 as well that would allow for more shaders. However not all iOS devices support that.
So for now the iOS backend only implements OpenGL ES 2.0 context. It also depends on which iOS device you’re using. I tried the lotte shader on my iPhone 12 mini and it worked with Indiana Jones and the last crusade.
Which device are you using and which game?
Some of the shaders requires a higher version of OpenGL than what’s used in the iOS backend. The iOS backend implements OpenGL ES 2.0, which is a subset of Open GL but instead optimized for mobile platforms.
iOS has support for OpenGL ES 3.0 as well that would allow for more shaders. However not all iOS devices support that.
So for now the iOS backend only implements OpenGL ES 2.0 context. It also depends on which iOS device you’re using. I tried the lotte shader on my iPhone 12 mini and it worked with Indiana Jones and the last crusade.
Which device are you using and which game?
Re: Shaders in iOS
Thanks. That all makes sense. My iPad model is 11-inch iPad Pro 2nd generation (2020). The issues are not dependent on specific games - it seems to be an issue with general compatibility with iOS or on my device hardware. I get the same results with about 10 different games I have tested.
Actually, lottes and lottes fast do 'work' to the extent that they will load without error messages, or massive graphic corruption, but I do see the following issues:
Lottes: screen is visibly divided into four equal quadrants, each of which displays a slightly different visual effect -hard to describe, but it is like a different shadow mask effect in each quadrant, or the distance between scanlines is different
Lottes-fast: there is a consistent effect across the whole screen, but with a visible slightly blue-tinted line (about 1 pixel wide) running straight down the middle of the screen vertically
Perhaps these issues can be overcome with settings adjustments within the shader, but so far I have not had any success. It seems like the issue is with how the implementation of OpenGL is processing the shader code in its entirety.
Actually, lottes and lottes fast do 'work' to the extent that they will load without error messages, or massive graphic corruption, but I do see the following issues:
Lottes: screen is visibly divided into four equal quadrants, each of which displays a slightly different visual effect -hard to describe, but it is like a different shadow mask effect in each quadrant, or the distance between scanlines is different
Lottes-fast: there is a consistent effect across the whole screen, but with a visible slightly blue-tinted line (about 1 pixel wide) running straight down the middle of the screen vertically
Perhaps these issues can be overcome with settings adjustments within the shader, but so far I have not had any success. It seems like the issue is with how the implementation of OpenGL is processing the shader code in its entirety.