New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.
-
@msp430 said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
For whom do you recommend the lcd-version and for whom the crt-version?
The LCD versions are for the handheld systems : Game Boy/Color/Advance, PSP, Atari Lynx, Gamegear... it replicates the "pixels are slightly apart" effect on the original hardware.
The CRT versions are for all the systems which were plugged into a CRT TV. It replicates the "TV screen display is a light beam" effect on the original hardware.
As far as I understand it is best to multiply the resolution (probably lines as colums are weird) by a whole number (eg: 2, 3, 4) so the original pixels get sized up consistently. Shaders add dark lines (?) so the optimum should be [pixel per original pixel] + number of dark lines per original line. What ist this "magic number" for your shaders? (I hope someone understand this ...)
The "multiply" thing is to have a pixel-perfect resulting image. You don't count the scanlines for that.
If you want the sizes for each systems, here they are: https://github.com/cosmo0/retropie-overlays/blob/master/RESOLUTIONS.md
Is there any reason not to use your RPi3 shaders on a RPi0?
Yes: it will be too slow. The pi3 is juuuust fast enough, any lower hardware (pi2, pi1, pi0) will have low framerate.
-
Everything @cosmo0 said is right. There is a slight possibility that a rpi2 could run one of these. Maybe only at a lower resolution than 1080P, though.
I did specifically write these so at 1080P you wouldn't have to use integer scaling or manually set the screen sizes. All of the screenshots are at 1080P with standard settings (4:3 aspect or core aspect, integer set to off, etc).
@cosmo0 said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
@msp430 said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
For whom do you recommend the lcd-version and for whom the crt-version?
The LCD versions are for the handheld systems : Game Boy/Color/Advance, PSP, Atari Lynx, Gamegear... it replicates the "pixels are slightly apart" effect on the original hardware.
The CRT versions are for all the systems which were plugged into a CRT TV. It replicates the "TV screen display is a light beam" effect on the original hardware.
As far as I understand it is best to multiply the resolution (probably lines as colums are weird) by a whole number (eg: 2, 3, 4) so the original pixels get sized up consistently. Shaders add dark lines (?) so the optimum should be [pixel per original pixel] + number of dark lines per original line. What ist this "magic number" for your shaders? (I hope someone understand this ...)
The "multiply" thing is to have a pixel-perfect resulting image. You don't count the scanlines for that.
If you want the sizes for each systems, here they are: https://github.com/cosmo0/retropie-overlays/blob/master/RESOLUTIONS.md
Is there any reason not to use your RPi3 shaders on a RPi0?
Yes: it will be too slow. The pi3 is juuuust fast enough, any lower hardware (pi2, pi1, pi0) will have low framerate.
-
@cosmo0 said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
Is there any reason not to use your RPi3 shaders on a RPi0?
Yes: it will be too slow. The pi3 is juuuust fast enough, any lower hardware (pi2, pi1, pi0) will have low framerate.
I thought shaders are calculated in the GPU. As all PIs have the same GPU there should be no difference.
-
@msp430 said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
I thought shaders are calculated in the GPU. As all PIs have the same GPU there should be no difference.
I didn't know that...
However, since the RAM bandwidth is shared between the GPU and the CPU, maybe that makes a difference?
If not, then yes, the performance would be identical on all pi. That would be a good news :) -
pi3 and 0's GPU v3d part is clocked 20% faster than pi2 & 1, and yes the system bandwidth will be better in pi3.
in my experience it's the system bandwidth that's the bottleneck with these kind of shaders. you can find some genesis/nes games that would hammer the bus so much that crt-pi would drop frames.
-
@dankcushions said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
in my experience it's the system bandwidth that's the bottleneck with these kind of shaders
The GPU and frequencies/speeds (gpu_freq & v3d_freq) are identical between the 3 and Zero. The CPU and RAM are quite different.
The thing that pops to mind is v6 vs v8 which is 32 vs. 64-bit architecture. Is any of the code written for 64-bit on the Pi 3? If it's math heavy maybe some calculations fall back to the CPU which is 20% faster by default than the Zero. Quad core vs single if there is any multi-threading and double the RAM which is a shared pool, L2, caching, data-path size, etc.
If they are 32-bit single-threaded apps I would be curious as to the bottleneck but maybe you can't treat one "component" in isolation as the culprit as the processor is a few generations older. It would be great to run these on a Pi Zero.
-
Can anyone share their zfast crt standard settings to make it look like the crt-pi shader?
-
@ghogan42 Is it normal to have stuttering in games after adding an overlay on top of your shaders?
-
If i just use zfast_crt_standard or zfast_crt_curve Shader everything runs smoothly.
-
If i just use the Retrorama overlay (or any other) everything runs smoothly.
-
If i run both together i get slowdown in all games (very visible on Sonic 1 where the clouds or palm tress passing by on the background stutter). I still get 60fps but the game is no longer smooth.
Have tried this on 2 different Raspberry Pis with Retropie 4.3.15 @1080p
Any ideas?
-
-
@NightRune
Yes, overlays + shaders stresses the GPU a lot (a lot more than it should, certainly).
I have seen somewhere (on this forum or at libretro's, I can't remember) a calculation on the GPU load between shaders, overlays, and a combination. Using shaders + overlays multiplies the load, not add.The only solution I found is to set the resolution to 720p (as seen in my overlay pack, which uses these shaders). Since the games are so low-res anyway, I don't think it changes much.
-
@nightrune said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
@ghogan42 Is it normal to have stuttering in games after adding an overlay on top of your shaders?
-
If i just use zfast_crt_standard or zfast_crt_curve Shader everything runs smoothly.
-
If i just use the Retrorama overlay (or any other) everything runs smoothly.
-
If i run both together i get slowdown in all games (very visible on Sonic 1 where the clouds or palm tress passing by on the background stutter). I still get 60fps but the game is no longer smooth.
Have tried this on 2 different Raspberry Pis with Retropie 4.3.15 @1080p
Any ideas?
Yep. Overlays suck up a lot of performance on these slow gpus. It's what made it difficult to get something running on the SNES Classic, where I wanted to use the overlay selected in the UI.
So if the shader is barely fullspeed as it is, then you can't afford the drop that comes with an overlay. And I never tested the rpi version for speed with an overlay either. I would have guessed that the standard version had a shot of 60fps at 1080p with an overlay but if you're getting stuttering than that's just not true. Kind of a bummer.
-
-
What is the latest version of this shader pack and would a 720p version work best for the RPi2?
-
with the shaders everything looks really nice but i have a problem as soon as i apply the zfast curvature vertical shader. The image becomes very washy... very very different sharpness compared to the standard without curvature! Anyone else observed this?
-
@robertvb83 I can't verify this on my system with zfast_crt_curve at 1600x1200. Which screen resolution are you using? Did you try to change the shader parameters? (Although I don't remember any that would make the picture more or less blurry.)
-
@nightrune said in New CRT/LCD shaders for RPI3. They run at 60fps at higher resolutions and are configurable.:
Have tried this on 2 different Raspberry Pis with Retropie 4.3.15 @1080p
Any ideas?
You could decrease the resolution to 720p. But I read, those shaders are made for 1080p and in my experience, the result isnt't perfect then. But I am not 100% to which resolution it is meant to. There are 2 different video modes you can select from, if you go to run command by pressing button while starting a game:
-
Select default video mode for emulator
I think, this one is for output mode for displaying the final image and for compatibility with the monitor or tv. I think, this one don't make much difference in performance, its more like specifying the format. This way your monitor or tv don't need to rescale the image format to native 1080p. -
Select RetroArch render res for emulator
This one is actually what matters I think. Changing the resolution should have a big impact on performance. This is to what my understand is, the pixel work done before its going to output.
As said above, I am not entirely sure if I am correct here and how the shaders correlate to each of these settings and where they apply on the pipeline. You could reduce render resolution to 720p and chose default video mode to 1080p. I don't know how this looks like and how it performs. I moved to a real CRT pc monitor and set both settings to 640*480px (480p) (and still use some sort of filters) and overclocked it. So, I can't verify anymore. Just wanted bring up this for discussing.
You don't want overclock right? Maybe it would help a little.
-
-
the GBA gamma settings are a nice touch - are they enabled for ALL systems which would use the zfast_LCD? How would I disable this option?
-
@clyde maybe i missed something completely with the resolution... i use 1280*1024 4:3 Monitor.
Only with this curved version of the shader i have this blurryness... Is this shader only for higher res? -
@robertvb83 If nobody gets to it before I do, I can give a look at curved vs. non-curved on my 1280x1024 display. I have been running the curved version since I switched to this shader.
One thing I will say is that I will not be surprised if I confirm that curved gets a little blurry. One of the problems with curvature at lower resolutions is that sharp stair-stepping as the lines curve will result in severe moire patterns. That problem can get pretty bad for some games using the CRT-PI shader at our resolution, but it is noticeably improved with zfast. I now wonder if the smoothing you are noticing is perhaps the silver lining.
Anyway, I will try to check on my system to see if I can confirm what you are seeing.
-
@caver01 i tried this in 1942 and found it to be terribly blurry with zfast_curvature.
-
@robertvb83 Here are two screenshots, paused at about the same place:
WITH CURVATURE:
WITHOUT CURVATURE:
It definitely gets a little softer with curvature, but for me it is not horrible at all. In fact, it is quite acceptable for what you get I think.
Now, I run in fullscreen 'tate' mode, so if I ran this game rotated, it being vertical, the effect would probably be worse as there would be few pixels available to create the scanlines.
-
@caver01 Here it is again, CURVE/No CURVE:
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.