RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    CRT-Pi Shader differs on Pi Zero vs. Pi 3?

    Scheduled Pinned Locked Moved Help and Support
    pi 3zeroshadermonitorcrt-pi
    23 Posts 6 Posters 9.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • davejD
      davej
      last edited by

      The graphics hardware is the same and there's no difference between the way the shader behaves. Check the output resolution on your Pi Zero (in config.txt and retroarch) and also check the overscan settings in the config.txt files.

      D 1 Reply Last reply Reply Quote 0
      • D
        Dochartaigh @davej
        last edited by Dochartaigh

        @davej said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

        The graphics hardware is the same and there's no difference between the way the shader behaves. Check the output resolution on your Pi Zero (in config.txt and retroarch) and also check the overscan settings in the config.txt files.

        I should have mentioned that both of these are 99% stock configurations - maybe 7 lines of code changed system-wide - and the only lines changed regarding video are just to set the shader as CRT-Pi system-wide.

        For /boot/config.txt, correct? Both are identical. Both have disable_overscan=1 (so the image fits the screen), and hdmi_drive=2 (so I have audio) have been changed - all the rest is stock and have # in front of every other line.

        And the other file you're talking about is /opt/retropie/configs/all/retroarch.cfg? That one, in the video section, only has the lines changed to enable CRT-Pi system-wide (identical code on Pi Zero and Pi 3).

        That's why I asked if there was a change between how a Pi Zero and a Pi 3 act in regards to shaders. You're telling me the hardware is identical, so everything else being equal (as it seems to be, and tested on multiples of systems, wires, and dongles), there must be a software change somewhere between the Pi 3 and Pi Zero, correct?

        ...and crap, I edited my original post instead of posting here below....retyping now if you're wondering why the OP is slightly different ;(

        davejD 1 Reply Last reply Reply Quote 0
        • davejD
          davej @Dochartaigh
          last edited by

          @Dochartaigh said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

          That's why I asked if there was a change between how a Pi Zero and a Pi 3 act in regards to shaders. You're telling me the hardware is identical, so everything else being equal (as it seems to be, and tested on multiples of systems, wires, and dongles), there must be a software change somewhere between the Pi 3 and Pi Zero, correct?

          I still think it's most likely to be a configuration issue. The symptom in the Pi Zero image is typical of the vertical resolution not being high enough to get even scanlines. Can you run tvservice -s on both devices (when plugged into the same screen) and post the results?

          1 Reply Last reply Reply Quote 0
          • gizmo98G
            gizmo98 Global Moderator
            last edited by

            Pi zero should use a lower render resolution fot better performance. Just open game startup menu and increase resolution.

            D 1 Reply Last reply Reply Quote 1
            • D
              Dochartaigh @gizmo98
              last edited by

              I will have to wait until I'm home to run tvservice -s on both – but to the lower resolution on the Zero, the Zero's already have slowdown on some SNES games for example so I wouldn't want to have to raise the resolution to get the CRT-Pi shader to work if it's going to slow down things even more (I was even worried – and also wondering – if the CRT-Pi shader by itself slows down things...and if it's advised to NOT run any shaders on the Zero, period).

              What would you suggest? Doesn't the CRT-Pi shader use an overlay of some sort with the black lines drawn into it? (I'm not really sure...just a brief memory it did for some reason). I'm a graphic designer so if that's the case I could I re-draw that graphic (I'm assuming it's a .PNG file which has transparency) to the lower stock-resolution the Pi Zero uses, and I assume change some code somewhere to reference the new file to use on CRT-Pi? (just thinking aloud here...)

              davejD 1 Reply Last reply Reply Quote 0
              • davejD
                davej @Dochartaigh
                last edited by

                @Dochartaigh said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                I will have to wait until I'm home to run tvservice -s on both – but to the lower resolution on the Zero, the Zero's already have slowdown on some SNES games for example so I wouldn't want to have to raise the resolution to get the CRT-Pi shader to work if it's going to slow down things even more (I was even worried – and also wondering – if the CRT-Pi shader by itself slows down things...and if it's advised to NOT run any shaders on the Zero, period).

                The suggestion to run tvservice was to check what the Pi was sending to the TV. From gizmon98's post, it sounds like retroarch is outputting, by default, a lower resolution on the Pi Zero than other Pis.

                Running crt-pi doesn't slow emulation down if you have threaded video on, which is the default. It's the slower single processor that causes emulation speed to be lower on the Pi Zero/1.

                What would you suggest? Doesn't the CRT-Pi shader use an overlay of some sort with the black lines drawn into it? (I'm not really sure...just a brief memory it did for some reason). I'm a graphic designer so if that's the case I could I re-draw that graphic (I'm assuming it's a .PNG file which has transparency) to the lower stock-resolution the Pi Zero uses, and I assume change some code somewhere to reference the new file to use on CRT-Pi? (just thinking aloud here...)

                crt-pi doesn't use overlays but can be used with them for border effects - which is probably where you got the idea from.

                D 1 Reply Last reply Reply Quote 0
                • D
                  Dochartaigh @davej
                  last edited by Dochartaigh

                  tvservice -s

                  Both the Pi Zero, and the Pi 3 say the same exact thing:

                  state 0x12000a [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive
                  

                  I also hit Select+X to enter the menu, then > Settings > Video > on both the Zero and the Pi 3, and the only large differences seem to be "Custom Viewport X', "Custom Viewport Width", and "Custom Viewport Height". I changed the Pi Zero to have the same settings as the Pi 3 and the bands of lighter/darker are still there on the Pi 3 when the CRT-Pi shader is on. One thing to note is the menu isn't exactly the same between these, although they're using the same emulator it says...

                  alt text

                  Any thoughts on what to try next?

                  dankcushionsD 1 Reply Last reply Reply Quote 0
                  • dankcushionsD
                    dankcushions Global Moderator @Dochartaigh
                    last edited by

                    @Dochartaigh custom viewport doesn't do anything unless your aspect ratio index is set to custom. but that's not the solution - 640x480 is default for pi 1/0 and is configurable via runcommand (retroarch framebuffer setting)

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      Dochartaigh @dankcushions
                      last edited by

                      @dankcushions said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                      @Dochartaigh custom viewport doesn't do anything unless your aspect ratio index is set to custom. but that's not the solution - 640x480 is default for pi 1/0 and is configurable via runcommand (retroarch framebuffer setting)

                      Thank you for the info, but can you please translate that for me? These settings are all default on the Pi Zero (besides turning the CRT-Pi shader on). It seems like the Zero's resolution is set to 588x480 by default (if that's what the Custom Viewport Width/height numbers I see are talking about)?

                      And to get into runcommand I hold a key while the game loads, correct? If I got to "framebuffer" there and change it to 640x480 will the CRT-Pi shader run correctly? If so, how do I make that change system-wide so the shader runs correctly on all systems (think I may have the option to change that setting permanently in that menu for all roms run with that emulator, right? - then just do the same for the other emulators/systems).

                      If not, what other options do I have? I've tried this on literally 4 individually setup-from-scratch Pi Zero's - and about double that number of Zero's in cards I cloned....that would leave me to believe that NOBODY can correctly run shaders like CRT-Pi on a stock Zero, right? I mean what else could be going on in that number of installs? (and again, tried all different TV's and monitors, all different HDMI cables, all different mini HDMI to HDMI adaptors even...).

                      dankcushionsD 1 Reply Last reply Reply Quote 0
                      • dankcushionsD
                        dankcushions Global Moderator @Dochartaigh
                        last edited by dankcushions

                        @Dochartaigh said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                        @dankcushions said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                        @Dochartaigh custom viewport doesn't do anything unless your aspect ratio index is set to custom. but that's not the solution - 640x480 is default for pi 1/0 and is configurable via runcommand (retroarch framebuffer setting)

                        Thank you for the info, but can you please translate that for me? These settings are all default on the Pi Zero (besides turning the CRT-Pi shader on). It seems like the Zero's resolution is set to 588x480 by default (if that's what the Custom Viewport Width/height numbers I see are talking about)?

                        no like i said they don't mean anything in your context. you're not using a custom viewport.

                        And to get into runcommand I hold a key while the game loads, correct?

                        yes

                        If I got to "framebuffer" there and change it to 640x480 will the CRT-Pi shader run correctly?

                        no. like i said, 640x480 is the default for the 1/0. video output (e.g. 1080p) is the default for pi 2/3. ~~you'd want to change it to video output. ~~ (see @BuZz comment below)

                        remember that shaders have scaling/moire artefacts at all resolutions (unless you use integer scaling). i get them at 1080p and am developing something to mitigate that. see https://retropie.org.uk/forum/topic/4046/crt-pi-shader-users-automatic-usage-of-crt-pi-vertical-in-vertical-games-in-lr-mame2003/55

                        but 1080p is at least better than 480. however 480 is default for the pi zero because the hardware is weak.

                        If so, how do I make that change system-wide so the shader runs correctly on all systems (think I may have the option to change that setting permanently in that menu for all roms run with that emulator, right? - then just do the same for the other emulators/systems).

                        i think you have to do it per system. (see @BuZz's post below)

                        If not, what other options do I have? I've tried this on literally 4 individually setup-from-scratch Pi Zero's - and about double that number of Zero's in cards I cloned....that would leave me to believe that NOBODY can correctly run shaders like CRT-Pi on a stock Zero, right?

                        your shader IS running, you just don't like how it looks. i'm the same even at 1080p.

                        1 Reply Last reply Reply Quote 0
                        • BuZzB
                          BuZz administrators
                          last edited by

                          To change the default use the configuration editor. Runcommand should be used for per emulator /Rom overrides

                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                          dankcushionsD 1 Reply Last reply Reply Quote 1
                          • dankcushionsD
                            dankcushions Global Moderator @BuZz
                            last edited by

                            @BuZz whoops! edited my post :)

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Dochartaigh @dankcushions
                              last edited by

                              @dankcushions said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                              your shader IS running, you just don't like how it looks. i'm the same even at 1080p.

                              I LOVE the shader on the pi 3 on a 1080p TV/monitor. Like it's changed my retro world! But it looks nothing like that on the Pi Zero. On that post you linked to, of the topmost vertical image, although I can't zoom in to the pixel level, I think that may have similar stripes or moire pattern to what I'm getting....but I ONLY get those on the Zero, NOT my Pi 3 (that I've noticed at least).

                              So, since I'm a total novice with all this, and knowing the limitations of the Pi Zero, what would you suggest? If I'm hearing you correctly, if I want the same look of the CRT-Pi shader (as I see it on my Pi 3) on the Pi Zero I'll have to be in 1080p resolution (which I change in the runcommand window, NOT by hitting Select+X which I posted the screenshot of last night, right?) -- but that may slow down the Zero which I definitely don't want (since IMO it can just barely do NES emulation without slowdown).

                              Please let me know if I'm understanding you guys correctly. All I want is the same shader to look the same on the Pi Zero as it does on the Pi 3 - as long as it doesn't affect performance.

                              BuZzB 1 Reply Last reply Reply Quote 0
                              • BuZzB
                                BuZz administrators @Dochartaigh
                                last edited by

                                @Dochartaigh render resolution is lower on the pi1/zero specifically because of performance. However, you might get away with changing the video mode in /boot/config.txt to 720p, and then setting render res to config file resolution (which is video output by default) which should look decent. I run my RetroPie on my rpi3 in 720p.

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                davejD 1 Reply Last reply Reply Quote 0
                                • davejD
                                  davej @BuZz
                                  last edited by

                                  @BuZz said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                                  @Dochartaigh render resolution is lower on the pi1/zero specifically because of performance. However, you might get away with changing the video mode in /boot/config.txt to 720p, and then setting render res to config file resolution (which is video output by default) which should look decent. I run my RetroPie on my rpi3 in 720p.

                                  It's worth reminding people that you need to overclock in order to run the crt-pi shader at full speed at 1080P. Although the Pi Zero runs the CPU at 1000Mhz by default, it will still need the boost to core and RAM speed provided by the Turbo overclock setting in raspi-config.

                                  BuZzB 1 Reply Last reply Reply Quote 1
                                  • BuZzB
                                    BuZz administrators @davej
                                    last edited by

                                    @davej thanks.

                                    To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      Dochartaigh
                                      last edited by Dochartaigh

                                      OK, so I'm back and ready to try this again. Have a nice overclocked Zero setup and want to get CRT-Pi shader working like it works on my Pi 3. I just cloned the card in case I mess up anything...

                                      In boot/config.txt I uncommented hdmi_mode and set it to 4 for 720P like Buzz suggested. Do I have to change the hdmi_group as well? (seems to be working on my HDMI monitor without that).

                                      I then hit a button while launching a ROM to enter runcommand. Choose "Select RetroArch render res for lr-quicknes(config)" to "use config file resolution" - same horrible banding...when changed to "Use video output resolution" TADA!!! Super nice CRT-Pi shader goodness!

                                      I'm so happy I can't even tell you (and I don't even play these Zero's much at all - just like solving a problem -with all your help- that's plagued me for months!). Thank you!

                                      BuZzB 1 Reply Last reply Reply Quote 1
                                      • BuZzB
                                        BuZz administrators @Dochartaigh
                                        last edited by

                                        @Dochartaigh use the configuration editor and you can set render res to video output res for all libreto cores. Runcommand is more for per emulator settings. You will see in there it's 640x480 by default on the zero.

                                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          Dochartaigh @BuZz
                                          last edited by Dochartaigh

                                          @BuZz

                                          @BuZz said in CRT-Pi Shader differs on Pi Zero vs. Pi 3?:

                                          @Dochartaigh use the configuration editor and you can set render res to video output res for all libreto cores. Runcommand is more for per emulator settings. You will see in there it's 640x480 by default on the zero.

                                          So I was changing it (through runcommand) from 640x480 to 720P (1280x720), right? That's what the "Use video output resolution" (which was set to 720P in config.txt).

                                          You would think that would drop the performance, right? Seems to be fine (but I am now running overclocked - so that could be it as well).

                                          Stupid question: How do you use a keyboard on the configuration editor? (I always edit the files through FTP or SSH). All the controller buttons seem to do things like delete a line or insert a space, and my keyboard doesn't seem to be able to go in there and change like an individual character in a line of code (it likewise seems to only be able to uncomment a line - which leaves the # on a line above, NOT edit something like changing "1" to a "4").

                                          1 Reply Last reply Reply Quote 0
                                          • RiverstormR
                                            Riverstorm
                                            last edited by

                                            Using a 4k TV I am seeing the same issue on a Zero using crt-pi (looks terrible) where as a Pi 3 with crt-pi looks fine on 4k. I am running a fresh 4.3 image patched to the current version/script along with the Retroarch core & lr-mame2003 updated. I tried crt-pi with the defaults, as well as, a few different custom viewport settings with very little difference.

                                            The Pi detects the 4k TV as:

                                            state 0x12000a [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive
                                            

                                            Just to summarize above the solution was to downgrade the detected output from 1080p to 720p and upgrade the render from 480p to 720p? Does the TV take care of the last step by upscaling to 4k (3840 × 2160) as it does fill the screen nicely or is it actually only displaying at 1080p. I couldn't tell as the TV would only show it as 16x9 and not the actual resolution.

                                            It would have been nice to keep the render at 480 for performance reasons. So basically the shader is applied to the 480p frame which just isn't enough lines of resolution to produce a decent result and then upscaled to the output?

                                            The performance seemed fine with games like Donkey Kong, Frogger, Pac-Man, Dig Dug, Galaga, etc. but that was at 480. I will try this tonight.

                                            I think 4k is here to stay, well at least until a majority of broadcasts are 4k then it will be on to 8k. I think they are just doing anymore because they can and not out of necessity surely. Well maybe science and medical but on the home consumer front it's just sales. It's a nice crisp picture with Ultra HD Blu-ray but I don't need to spot a gnat on a water buffalo's ass from 5 meters across the room but still nice.

                                            I run my RetroPie on my rpi3 in 720p.

                                            @BuZz - Do you set both output and render to 720p? Is 720p sufficient for a shader to look good?

                                            BuZzB 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.