• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
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

Updated crt-pi shader

Scheduled Pinned Locked Moved Help and Support
72 Posts 16 Posters 49.0k 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.
  • R
    Riverstorm @BuZz
    last edited by Riverstorm 17 Aug 2016, 16:48

    @BuZz said in Updated crt-pi shader:

    I run my 1080p screen at 720p for RetroPie

    tvservice -s from a terminal will tell you what mode you are in

    Can you guys clear up some confusion. If you set your TV's output resolution to 720p vs 1080p does the RetroPie try and negotiate an output resolution equal to 720p as that's what the TV will signal back as it's highest possible resolution even though it's capable of higher resolutions?

    Then if your render resolution is lower than your TV (output resolution?) the TV up-scales (the TV decides it's method of up-scaling?) or you can adjust your render resolution to something equal or lower? Would you improve performance by setting your render res low and offloading the upscale to the TV or is this where you loose quality or uniqueness?

    By default isn't the render resolution generally always lower than the output of modern TV's? So you would need to decide render res (via pi hardware) or output res (via TV) to scale?

    If your render resolution is greater than your output then does it clip or down-scale?

    Where does the crt-pi shader "layer" in? After the render res but before the output res seems logical?

    1 Reply Last reply Reply Quote 0
    • B
      BuZz administrators
      last edited by BuZz 17 Aug 2016, 16:52

      The resolution is set by the connecting device - if you mean if you set the video mode to 720p - that's the mode the RPI will output to the TV. The tv will upscale it if it needs to.

      Render resolution is nothing to do with the TV - the RPI will upscale from render resolution to the video output resolution.

      by default the render resolution will match whatever the current video mode is. they will be the same.

      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

      R 1 Reply Last reply 17 Aug 2016, 17:02 Reply Quote 0
      • R
        Riverstorm @BuZz
        last edited by 17 Aug 2016, 17:02

        @BuZz said in Updated crt-pi shader:

        The resolution is set by the connecting device - if you mean if you set the video mode to 720p - that's the mode the RPI will output to the TV. The tv will upscale it if it needs to.

        Sorry Buzz if this is a completely dumb question as I am still missing it. If the TV is set to 720p and the Pi receives a signal from the TV saying output in this mode (this is the output res?) if they match what is there to upscale?

        Render resolution is nothing to do with the TV - the RPI will upscale from render resolution to the video output resolution.

        So render res is coming from the emulator and the pi is the middle layer sort-to-speak that adjusts the render res to match the output res?

        1 Reply Last reply Reply Quote 0
        • B
          BuZz administrators
          last edited by 17 Aug 2016, 17:37

          RPI looks at the EDID information the tv provides and chooses the mode the TV says is recommended. Some TV's give the wrong information (bad firmware etc). RPI will choose the resolution the TV wants in most cases (which would normally be the native resolution).

          The render res is a retroarch feature. the retroarch code uses the dispmanx api to scale from render res to video output res.

          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
          • B
            BuZz administrators
            last edited by 17 Aug 2016, 17:39

            I have a screen downstairs that has a native resolution of 1024x768. However by default a 720p mode is used, as this is the preferred mode in the EDID info. It of course looks wrong. In this case I manually via /boot/config.txt set the screen to 1024x768 @60hz and then it looks correct.

            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
            • R
              Riverstorm
              last edited by 17 Aug 2016, 18:14

              Thanks Buzz I think I have it straight, I think I just need to ponder on it a little. Can I try and apply it to a real scenario with default settings. A games "native" resolution let's say for example is 320x200. Retroarch would upscale it to 640x400 (the default res is 640x480 but it would fill it in vertically but horizontally it would have 40 blank pixels on either side?) From there it would be further upscaled at/to the TV's res (for example 720p which is 1280x720) with some fractional integer. I know I will need to keep reading and asking before it all comes full circle but I don't want to completely muddy this thread.

              C 1 Reply Last reply 17 Aug 2016, 18:26 Reply Quote 0
              • C
                caver01 @Riverstorm
                last edited by 17 Aug 2016, 18:26

                @Riverstorm There is one more step that may apply--your TV's native pixels may not be 1280x720 but rather 1920x1080, so unless you see black borders when your TV is set to 720p, your TV is upscaling to its native resolution at the end.

                My 4-player cocktail style cabinet built as a custom "roadcase"

                R 1 Reply Last reply 17 Aug 2016, 18:44 Reply Quote 0
                • R
                  Riverstorm @caver01
                  last edited by 17 Aug 2016, 18:44

                  @caver01 said in Updated crt-pi shader:

                  @Riverstorm There is one more step that may apply--your TV's native pixels may not be 1280x720 but rather 1920x1080, so unless you see black borders when your TV is set to 720p, your TV is upscaling to its native resolution at the end.

                  Thanks Caver, I didn't think of that at all. A 720p setting on a native 1080p TV would leave a border all the way around unless the pixels stretch? I am guessing if no scaling happened you would have a small 320x200 square in the middle of the screen. So many factors in there including more like integer scaling, etc. I was hoping to grasp just the general steps a game goes through from start (emulator) to finish (TV) but I don't think I quite have a good understanding. Hopefully with time.

                  C 1 Reply Last reply 17 Aug 2016, 20:14 Reply Quote 0
                  • C
                    caver01 @Riverstorm
                    last edited by 17 Aug 2016, 20:14

                    @Riverstorm Actually, by your descriptions I think you do have a good understanding. I don't expect anyone who runs their TV in 720 mode has black borders. That was just to make a point that the TV mode is really just another level of scaling. As Buzz said earlier, he actually likes the way his TV scales from 720.

                    What helps me is to work backwards from the native pixels and decide if I like each step. Assuming I can correctly account for what is doing the scaling, it helps me recognize opportunities. For example, because I know the shader can handle it, I want to give retroarch a resolution as close as I can to native pixels so that these can be used by the shader to create better CRT effects. So, I run at my LCD's full resolution, letting the emulator fill this and giving the shader the most pixels for creating smooth scanlines and curvature effects. Buzz, on the other hand, sounds like he drops his down to 720. He's still getting good effects at that resolution, but he likes how his display upscales beyond that. In fact, anyone with UltraHD is in the same boat, as they are not likely running their Pi at 3840x2160, but something lower and letting their TV upscale.

                    My 4-player cocktail style cabinet built as a custom "roadcase"

                    R 1 Reply Last reply 17 Aug 2016, 21:52 Reply Quote 0
                    • R
                      Riverstorm @caver01
                      last edited by Riverstorm 17 Aug 2016, 21:52

                      @caver01 said in Updated crt-pi shader:

                      Buzz, on the other hand, sounds like he drops his down to 720

                      I appreciate you explaining it. I still feel like I am missing pieces. When you wrote the line above. Where would he be dropping it down to 720p? You change the screen mode reported/sent to the Pi and it thinks the display is a 720p which makes Retroarch render at 720p but the TV itself will upscale to the native res of 1080p?

                      I want to give retroarch a resolution as close as I can to native pixels so that these can be used by the shader to create better CRT effects

                      I prefer this but on the other hand if you allow the TV to upscale in theory it seems it should be a huge performance boost if the resolution is low enough as the Pi doesn't need to do any additional "resolution rendering" work and the TV is taking the load and doing the upscaling ? But when I think like that it contradicts what Buzz wrote which means I am not understanding it.

                      Changing the render resolution (retroarch only) - scaling done by RPI hardware (no performance loss)

                      If I am to far off base you can let me know and I am ok enjoying RetroPie if not completely understanding the logic. :)

                      B 1 Reply Last reply 17 Aug 2016, 22:29 Reply Quote 0
                      • B
                        BuZz administrators @Riverstorm
                        last edited by BuZz 17 Aug 2016, 22:29

                        I appreciate you explaining it. I still feel like I am missing pieces. When you wrote the line above. Where would he be dropping it down to 720p? You change the screen mode reported/sent to the Pi and it thinks the display is a 720p which makes Retroarch render at 720p but the TV itself will upscale to the native res of 1080p?

                        You don't change the screenmode on the TV. You change it on the RPI. In my case, the TV still says to the RPI - "I prefer 1080p". I then configure the RPI via /boot/config.txt to switch to 720p. - the TV will then deal with that signal and upscale it etc.

                        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

                        R 1 Reply Last reply 18 Aug 2016, 14:46 Reply Quote 0
                        • GreenHawk84G
                          GreenHawk84 @BuZz
                          last edited by 17 Aug 2016, 22:33

                          @BuZz said in Updated crt-pi shader:

                          @GreenHawk84 tvservice -s from a terminal will tell you what mode you are in

                          Thanks BuZz, I did this. It shows me "state 0x12000a [HDMI CEA (16) RGB lim 16:9], 1920x1080 @60.00Hz, progressive"

                          So this is also what all of my cores do?

                          1 Reply Last reply Reply Quote 0
                          • B
                            BuZz administrators
                            last edited by BuZz 17 Aug 2016, 22:56

                            @GreenHawk84 That is the video mode you are in, unless you have changed it on a per system or rom basis.

                            Your cores render to whatever the "render resolution" is set to - which by default is the same as the video mode on a RPI2 image, unless you have changed it, or come from an old version of retropie when we had a 640x480 render resolution default. On the RPI1 the render resolution is set to 640x480 for performance reasons.

                            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
                            • R
                              Riverstorm @BuZz
                              last edited by 18 Aug 2016, 14:46

                              @BuZz said in Updated crt-pi shader:

                              You don't change the screenmode on the TV. You change it on the RPI. In my case, the TV still says to the RPI - "I prefer 1080p". I then configure the RPI via /boot/config.txt to switch to 720p. - the TV will then deal with that signal and upscale it etc.

                              That clears up a few things for sure on my misconception of how the TV talks to the Pi! :) So the output res hasn't nothing to do with the TV for the most part.

                              To try again. You start with a low res game like something that's 320x200 that use integer scaling or some other method to upscale the original games resolution to fit the render res, then it's passed up to the output res, that finally the frame passes to the TV that might further scale the image?

                              If you start with a render res that is lower than the output res does it upscale to fit the output res before passing to the TV or would you have a border or something?

                              1 Reply Last reply Reply Quote 0
                              • dankcushionsD
                                dankcushions Global Moderator
                                last edited by 14 Sept 2016, 22:14

                                i've created all the .cfg overrides to automatically use the crt-pi-vertical shader in vertical games in lr-mame2003. check it out :) https://retropie.org.uk/forum/topic/4046/crt-pi-shader-users-automatic-usage-of-crt-pi-vertical-in-vertical-games-in-lr-mame2003

                                1 Reply Last reply Reply Quote 1
                                • F
                                  FAB2TB
                                  last edited by FAB2TB 12 Oct 2016, 18:57 10 Dec 2016, 18:56

                                  Hi everybody,

                                  I am running a Pi3 with the brand new retropie 4.1, I can load and apply every crt-pi shaders and enjoy it but when I load and apply crt-pi-vertical for vertical scrolling games like Strikers 1945 plus for eg it has the same aspect than the crt-pi...scanlines are horizontal and not vertical as it should be...anyone experienced that also?

                                  For your info, I also tried the curved crt-pi-vertical: curves are applied but scanlines are horizontals...

                                  M 1 Reply Last reply 10 Dec 2016, 19:06 Reply Quote 0
                                  • M
                                    mrbwa1 @FAB2TB
                                    last edited by 10 Dec 2016, 19:06

                                    @FAB2TB On my current setup, crt-pi is giving vertical scan lines and crt-pi vertical is giving horizontal lines. I haven't dug in to see what was going on with it. Perhaps it's an issue with the plugin packed in 4.1. I have just been using crt-pi vertical for regular games and crt-pi if needed for vertical scrolling, so I haven't really looked at why they seem to be backwards.

                                    F 1 Reply Last reply 10 Dec 2016, 20:40 Reply Quote 0
                                    • dankcushionsD
                                      dankcushions Global Moderator
                                      last edited by 10 Dec 2016, 19:21

                                      and cfg changes you've made? per game configs?

                                      F 1 Reply Last reply 10 Dec 2016, 20:33 Reply Quote 0
                                      • F
                                        FAB2TB @dankcushions
                                        last edited by FAB2TB 12 Oct 2016, 20:33 10 Dec 2016, 20:33

                                        @dankcushions video_shader_enable = "true" in cfg at configs/all
                                        and then save per core or per game config (or both) after loading and apply the shader within the retroarch interface give me the same results

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          FAB2TB @mrbwa1
                                          last edited by 10 Dec 2016, 20:40

                                          @mrbwa1 if for eg the game video setting has been already rotated maybe it could explain this...in my case if I apply the horizontal or the horizontal curved it works but vertical ones give be the same effect than the horizontal ones

                                          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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received