• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login

RetroArch Mirror Mode

Scheduled Pinned Locked Moved General Discussion and Gaming
retroarchmirrortutorial
16 Posts 6 Posters 2.6k 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.
  • M
    mediamogul Global Moderator
    last edited by 1 Jan 2019, 19:02

    With a new year comes new challenges. Today I thought it'd be fun to try mirroring a few games that I know forward, but not necessarily backward. The idea comes from the 'Mirror Mode' Sega included in their Mega Drive/Genesis classics collection on Steam and the tutorial to make the magic happen was written by team RetroArch's Hunter K. which can be found here. My personal docket of games to try today are 'Super Mario Bros.', 'Contra' and 'Goonies II'. I've already tried SMB and it really is a trip playing a game this familiar in such an unfamiliar way. Anyway, happy new year and may all your hangovers be fleeting.

    RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

    1 Reply Last reply Reply Quote 3
    • M
      mediamogul Global Moderator
      last edited by 2 Jan 2019, 05:25

      There wasn't really a wellspring of interest in this, but for the sake of posterity, I should add that for this to work, you may have to replace the image-adjustment.glsl file distributed with RetroPie with this alternative for the shader parameters to become available. I had a lot of fun with this today and I'll likely revisit it pretty often to breathe new life into some old favorites. 'Contra' was especially fun and beating it backwards would be great bragging rights.

      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

      1 Reply Last reply Reply Quote 1
      • O
        OneSwitch
        last edited by 20 Apr 2019, 20:51

        Very interested in this. Could you give a few more tips on how to get it working, please? Do you copy and paste the code you pointed to and overwrite the image-adjustment.glsl contents and save? Where do I find that file?

        May need this for use in a Space Invaders machine that makes use of a mirror.

        M 1 Reply Last reply 22 Apr 2019, 16:33 Reply Quote 0
        • M
          mediamogul Global Moderator @OneSwitch
          last edited by mediamogul 22 Apr 2019, 16:33

          @OneSwitch said in RetroArch Mirror Mode:

          Do you copy and paste the code you pointed to and overwrite the image-adjustment.glsl contents and save?

          You can handle it all in the GUI by accesing the 'Shaders' menu from the RetroArch quick menu. You would first change the 'Shader Passes' from '0' to '1' and then select 'shader #0 N/A'. From there, navigate to your newly downloaded image-adjustment.glsl and select 'Apply Changes'. For your purposes of only flipping the image, all that's left to do is select 'Shader Parameters' and then set the desired axis flip from the bottom of the resulting menu. You can then go back one menu and save the game preset to make it stick.

          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

          1 Reply Last reply Reply Quote 0
          • O
            OneSwitch
            last edited by OneSwitch 22 Apr 2019, 21:37

            Thanks for getting back. I struggled with the newly downloaded bit....

            I found that I need to right-click on the RAW box at this link to save it: https://github.com/libretro/glsl-shaders/blob/master/misc/image-adjustment.glsl. I'm doing that on a Windows PC.

            I could then use Filezilla to copy that file across to my Raspberry Pi/RetroPie.... here...

            configs\all\retroarch\shaders\presets\

            ...and with your extra help, working a treat. Thank you so much! Brilliant. Will work in an old Space Invaders machine etc. if I can't get the old hardware working.

            1 Reply Last reply Reply Quote 0
            • O
              OneSwitch
              last edited by 22 Apr 2019, 21:49

              I have one more question. I'm trying to layer a second shader to give nice scan lines on Space Invaders.

              I tried crt-pi-vertical.gls. If I use that as the second shader, it seems to be ignored. If I use it as the first shader, it gives a strange sickly effect. Would love to get both working well together if possible.

              M 1 Reply Last reply 22 Apr 2019, 23:03 Reply Quote 0
              • M
                mediamogul Global Moderator @OneSwitch
                last edited by 22 Apr 2019, 23:03

                @OneSwitch said in RetroArch Mirror Mode:

                I tried crt-pi-vertical.gls. If I use that as the second shader, it seems to be ignored. If I use it as the first shader, it gives a strange sickly effect. Would love to get both working well together if possible.

                I'm afraid I don't have any experience with shader compatibility issues. Perhaps someone else may have some thoughts.

                RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                1 Reply Last reply Reply Quote 0
                • O
                  OneSwitch
                  last edited by 23 Apr 2019, 05:54

                  Thanks @mediamogul - Best I've manged to get is using...

                  shader No.0: image-adjustment.glsl
                  shader No.1:scanline.glsl

                  ...the crt-pi-vertical and crt-pi shaders that I'd prefer to be using look nasty when combined with the flipping image-adjustment.glsl shader (and cause quite jerky play too, I assume because of the extra work they cause the RetroPie).

                  1 Reply Last reply Reply Quote 0
                  • O
                    OneSwitch
                    last edited by 1 May 2019, 19:26

                    Got the issue fixed here: https://github.com/libretro/glsl-shaders/issues/88

                    Using Notepad++ on a PC, I saved the code below into a file (I called mine "image-adjustment2.glslp").

                    Then used Filezilla to save it to the path configs\all\retroarch\shaders\presets\

                    Then I'd load the game, go to shaders... load shader preset (image-adjustment2.glslp) .... apply changes .... shader parameters - flip vertical axis.... play. I believe that should work on a Taito Space Invaders quite nicely. Will try ASAP.

                    shaders = "2"
                    shader0 = "../misc/image-adjustment.glsl"
                    filter_linear0 = "false"
                    wrap_mode0 = "clamp_to_border"
                    mipmap_input0 = "false"
                    alias0 = ""
                    float_framebuffer0 = "true"
                    srgb_framebuffer0 = "false"
                    scale_type_x0 = "source"
                    scale_x0 = "1.000000"
                    scale_type_y0 = "source"
                    scale_y0 = "1.000000"
                    shader1 = "../crt/shaders/crt-pi.glsl"
                    filter_linear1 = "false"
                    wrap_mode1 = "clamp_to_border"
                    mipmap_input1 = "false"
                    alias1 = ""
                    float_framebuffer1 = "true"
                    srgb_framebuffer1 = "false"
                    parameters = "ia_target_gamma;ia_monitor_gamma;ia_overscan_percent_x;ia_overscan_percent_y;ia_saturation;ia_contrast;ia_luminance;ia_black_level;ia_bright_boost;ia_R;ia_G;ia_B;ia_ZOOM;ia_XPOS;ia_YPOS;ia_TOPMASK;ia_BOTMASK;ia_LMASK;ia_RMASK;ia_GRAIN_STR;ia_SHARPEN;ia_FLIP_HORZ;ia_FLIP_VERT;CURVATURE_X;CURVATURE_Y;MASK_BRIGHTNESS;SCANLINE_WEIGHT;SCANLINE_GAP_BRIGHTNESS;BLOOM_FACTOR;INPUT_GAMMA;OUTPUT_GAMMA"
                    ia_target_gamma = "2.200000"
                    ia_monitor_gamma = "2.200000"
                    ia_overscan_percent_x = "0.000000"
                    ia_overscan_percent_y = "0.000000"
                    ia_saturation = "1.000000"
                    ia_contrast = "1.000000"
                    ia_luminance = "1.000000"
                    ia_black_level = "0.000000"
                    ia_bright_boost = "0.000000"
                    ia_R = "1.000000"
                    ia_G = "1.000000"
                    ia_B = "1.000000"
                    ia_ZOOM = "1.000000"
                    ia_XPOS = "0.000000"
                    ia_YPOS = "0.000000"
                    ia_TOPMASK = "0.000000"
                    ia_BOTMASK = "0.000000"
                    ia_LMASK = "0.000000"
                    ia_RMASK = "0.000000"
                    ia_GRAIN_STR = "0.000000"
                    ia_SHARPEN = "0.000000"
                    ia_FLIP_HORZ = "1.000000"
                    ia_FLIP_VERT = "1.000000"
                    CURVATURE_X = "0.100000"
                    CURVATURE_Y = "0.150000"
                    MASK_BRIGHTNESS = "0.700000"
                    SCANLINE_WEIGHT = "6.000000"
                    SCANLINE_GAP_BRIGHTNESS = "0.120000"
                    BLOOM_FACTOR = "1.500000"
                    INPUT_GAMMA = "2.400000"
                    OUTPUT_GAMMA = "2.200000"
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • C
                      celly
                      last edited by 1 May 2019, 21:21

                      Really neat idea. I’m gonna try this later on a few games I know pretty well, and see how far I can throw a controller in rage.

                      Currently Playing: Tetris (Gameboy)

                      1 Reply Last reply Reply Quote 1
                      • O
                        OneSwitch
                        last edited by 6 Sept 2019, 09:59

                        One related question... Is it possible to do this sort of thing with Emulation Station? I.e. flip the screen horizontally so that you can play the game in a mirror on a CRT TV (either with Pi2Scart or composite 4:3 output)?

                        I'm told RecalBox can do this, but I'd love to stick with the RetroPie set-up I know well in comparison.

                        I've posted here too: ES Github issues

                        mituM dankcushionsD B 3 Replies Last reply 6 Sept 2019, 11:21 Reply Quote 0
                        • mituM
                          mitu Global Moderator @OneSwitch
                          last edited by 6 Sept 2019, 11:21

                          @OneSwitch said in RetroArch Mirror Mode:

                          I'm told RecalBox can do this

                          How exactly can it do this ?
                          Emulationstation does not have shader support, so what you're asking is not yet implemented.

                          1 Reply Last reply Reply Quote 0
                          • dankcushionsD
                            dankcushions Global Moderator @OneSwitch
                            last edited by 6 Sept 2019, 13:27

                            @OneSwitch why is this an ES issue? presumably once you've loaded the game, it's now a game issue. there doesn't seem much point in fixing it in ES if there's no a solution for the games as well. never mind if you load the command prompt/retropie-setup menu...

                            O 1 Reply Last reply 6 Sept 2019, 16:07 Reply Quote 0
                            • B
                              barbudreadmon @OneSwitch
                              last edited by 6 Sept 2019, 13:51

                              @OneSwitch said in RetroArch Mirror Mode:

                              I'm told RecalBox can do this

                              Whoever told you this is probably saying crap. Afaik :

                              • the only thing you could do to ES is rotate it (by using the rpi firmware display_rotate config), which is different from flipping
                              • for flipping you'd need a compatible emulator (i don't think there are many apart from RA + shaders, and it wouldn't even affect RA's menu)

                              FBNeo developer - github - forum

                              mituM 1 Reply Last reply 6 Sept 2019, 14:39 Reply Quote 0
                              • mituM
                                mitu Global Moderator @barbudreadmon
                                last edited by mitu 9 Jun 2019, 15:43 6 Sept 2019, 14:39

                                @barbudreadmon said in RetroArch Mirror Mode:

                                the only thing you could do to ES is rotate it (by using the rpi firmware display_rotate config), which is different from flipping

                                EmulationStation (the RetroPie fork) has a --screenrotate option which allows you to rotate it - independent of any RPI configuration - https://github.com/RetroPie/EmulationStation/pull/348.

                                However, it doesn't do flipping (mirroring), that's why I'm curious if the Recalbox ES fork has any additional features like this - or if the mirroring to which @OneSwitch refers is done outside of ES.

                                EDIT: @OneSwitch there is another option - using Reshade. It's an external application that can apply shaders to DirectX/OpenGL externally. However, it's a Windows only application, so it's not going to work with RetroPie.

                                1 Reply Last reply Reply Quote 1
                                • O
                                  OneSwitch @dankcushions
                                  last edited by OneSwitch 9 Jun 2019, 17:08 6 Sept 2019, 16:07

                                  @dankcushions said in RetroArch Mirror Mode:

                                  is an ES issue? presumably once you've loaded the game, it's now a game issue. there doesn't seem much point in fixing it in ES if there's no a solution for the games as well. never mind if you load the command prompt/retropie-setup menu...

                                  With HDMI, you can flip the screen horizontally (and I think vertically), to give an image of everything that will look the right-way around when viewed in a mirror.

                                  With component/SCART output suitable for a CRT TV, you can use a RetroArch shader to get the image flipped and rotated so it works perfectly in a mirror too (see this forum post). This is good, but obviously, all the menus, the screensaver (easier to fix) and general RetroPie/ES menus are the wrong way around. It would be very nice to find a fix for that last piece of the puzzle.

                                  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