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.4k 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.
    • 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
                                    • BuZzB
                                      BuZz administrators @Riverstorm
                                      last edited by

                                      @riverstorm I set render resolution to default (video res) and video res to 720p. So they are both 720p. Looks good to me on my screen.

                                      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

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

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

                                        @riverstorm I set render resolution to default (video res) and video res to 720p. So they are both 720p. Looks good to me on my screen.

                                        Thanks Buzz this worked perfect and runs the older games listed above just fine. In either 720 or 1080 with both Udb's overlays on and crt-pi shader enabled. Stock is a bit--bit sluggish at 1080 but is completely playable. Overclocked is no problem. I did not have FPS up but just more going off feel.

                                        I also tried Udb's overlays. The 1080 overlay worked in both 720 and 1080 and fit perfect. I am guessing it's just downscaled in 720. You need to set both the group and mode to get the output set to 720. Just the mode doesn't work.

                                        I also did not know the difference between video and output settings in the quick config as they seem like they should be the same logically thinking but video is the one to choose.

                                        One thing that was off and didn't work correctly was Dank's custom shader configs. I used a stock 4.3 image and updated the script, retroarch core and lr-mame2003. When I ran a game it would just show me the top left corner of the game like it was really zoomed in. I am not sure if it was something as simple as a setting to get them working again.

                                        I did get a modest overclock on the arm but decent on the gpu & sdram. The arm_freq up to 1075 (7% increase), gpu_freq (which includes the core_freq & v3d_freq) up to 525 (24% increase) and the sdram_freq up to 525 (24% increase) also.

                                        The arm_freq is a bit modest. It is the same SoC as the Pi 1 but the manufacturing technique improved in the 4 years between releases and they were able to release it as 1,000 MHz stable whereas the Pi 1 was released as 700 MHz stable at the time. I would guess it's really pushed to it's limits already at 1000 but I see some that are getting good silicone at the top of the bell curve of variance are getting 1.2 GHz.

                                        It's already overvolted to 6 but a simple small heatsink barely protruding through an acrylic case kept mine more than cool enough with nothing special.

                                        A good base starting point is 1000 for arm and 500 for gpu & sdram and I worked up from there.

                                        I did get some annoying static-ish feedback noise in Elevator Action but games like Rastan, old classics, etc. worked great.

                                        For shaders 480 looks muddy (I prefer the solid jaggy graphics over this), 720 is acceptable but at 1080 you can clearly see a difference on a 4k TV and looks great. It might come down to performance when choosing which resolution and if using overlays and shaders.

                                        I do like the zero but it seems like a niche market for handhelds or some special project. It's sluggish in everything from bootup, loading games, etc. compared to the 3. I think if you have room the 3 is the way to go but the zero is nice and incredibly small. Easy to velcro to the back of the TV or something. Using thin HDMI and power cables would make it easy to hide as it's quite a bit smaller then the 3 with a case.

                                        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.