Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Unsolved Rotation de l'écran à 90°

    Emulateurs Arcade/PC/Console
    rotation lécran 90°
    9
    21
    5127
    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.
    • TheDude
      TheDude last edited by

      Re : rotation de l'écran à 90° ?

      Bonjour,
      Je me permets de relancer le sujet.
      J'ai bien compris la modif dans le fichier config.txt afin de modifier l'orientation de l'écran mais si l'on souhaite juste modifier l'orientation d'un jeux (ex:1941) ?
      Faudrait-il faire une modification dans la config de retroarch ? (je n'ai rien trouvé....)

      Merci d'avance pour vos réponse.

      Config: recalBox 6.0
      mame2010

      Bkg2k 1 Reply Last reply Reply Quote 0
      • acris
        acris last edited by

        Bonjour
        mame 2010 n'est pas celui conseillé pour ce type de jeu car de mémoire, jai pas vérifié, il ne dispose pas d'options aussi avancé que mame 2003 ou mame 2003 plus.

        l OPTION pour faire une rotation est TATE. Et je pense que tu devrais changer , ou downgrader tes roms vers 0.78

        Lire :
        https://docs.libretro.com/library/mame_2003/

        TATE Mode (On/Off): Enable if rotating display for vertically oriented games (Pac-Man, Galaga, etc). Requires video_allow_rotate = "false" setting in RetroArch.cfg or core override file

        https://docs.libretro.com/library/mame2003_plus/

        TATE Mode From the Japanese 縦 (ta-te) meaning "vertical", TATE Mode renders vertical games lengthwise along the display. This mode is intended for use with rotating monitors and portable devices that can make the full use of their viewable area for games which used vertical monitors.

        1 Reply Last reply Reply Quote 0
        • Bkg2k
          Bkg2k Staff @TheDude last edited by

          @thedude Actuellement, c'est faisable, mais un poil compliqué (et mal documenté).

          Avec la 6.1, d'ici quelques jours ce sera facilement réalisable.

          1 Reply Last reply Reply Quote 0
          • TheDude
            TheDude last edited by TheDude

            Merci pour les informations.
            J’essaierais avec la version 6.1 puis je marquerais le sujet comme résolu.

            1 Reply Last reply Reply Quote 0
            • GDEHON
              GDEHON last edited by GDEHON

              Je suis ton sujet ça m'intéresse
              J'aimerais aussi pouvoir pivoter l'image sur certains jeux d'arcade (ceux verticaux forcément)... Pourquoi pas en mettant un interrupteur sur gpio à la place de ceux utilisables pour on/off
              Ou pourquoi pas créer un system mame-v et fba-v ?

              1 Reply Last reply Reply Quote 0
              • Bkg2k
                Bkg2k Staff last edited by

                Dans la 6.1 pour pourrez facilement surcharger la conf retroarch par jeu, ou pour un repertoire complet (ce qui vous permettrait de mettre tous les jeux verticaux dans un sous-repertoire).

                1 Reply Last reply Reply Quote 0
                • nordicpower
                  nordicpower last edited by

                  Bonjour à tous,

                  @Bkg2k Je rencontre la même difficulté avec le jeu mame Toki que je souhaite faire pivoter de 90°.

                  Comment peux-t-on surcharger le paramétrage de ce jeu (jujub.zip) depuis que le RB 6.1 ? Je ne trouve pas d'option à ce sujet dans l'écran de retroarch.

                  Merci

                  1 Reply Last reply Reply Quote 0
                  • babastorm
                    babastorm last edited by

                    Bonsoir,
                    Je recherche également comment configurer retroarch pour afficher un groupe de jeu en vertical...mais je sèche complet, je trouve pas l'option...je suis en 6.1.1.
                    Pouvez-vous me dire comment s'appelle cette option ? et ou la trouver ?
                    Merci par avance, et bonne fêtes aux membres et à l'équipe Recalbox !!!!

                    1 Reply Last reply Reply Quote 0
                    • acris
                      acris last edited by

                      l'option s'appelle tate de mémoire

                      1 Reply Last reply Reply Quote 0
                      • babastorm
                        babastorm last edited by

                        Salut @acris !
                        L'option est dans retroarch ? j'ai regardé tout les parametres vidéo de retroarch, j'ai rien qui s'appele TATE... c'est propre à Mame ? (on peut pas l'avoir sur d'autres émulateurs ?)

                        En fait, c'est pour ma c**ktail, j'ai modifié mon config.txt dans boot pour faire une rotation de l'écran à 90° afin d'avoir les menus recalbox vers le joueur 1

                        Ensuite, j'ai installé un shader mirroir, pour avoir les jeux de tous les émulateurs en mode..mirroir, mais celui-ci provoquant à son tour une rotation écran à 90°, ben ça annule ma rotation et mes jeux ne sont plus orienté vers les joueurs...
                        Du coup, si on peut dire à retroarch (pas que Mame, mais tous les emulateurs) de faire une rotation 90°, je retrouverais mes jeux dans le bon sens 😉 !
                        Je pock @Bkg2k aussi, on sait jamais 😄 !

                        1 Reply Last reply Reply Quote 0
                        • acris
                          acris last edited by acris

                          dans quick menu pour mame.
                          https://docs.libretro.com/library/mame_2003/
                          https://docs.libretro.com/library/mame2003_plus/

                          attention l'option n'est pas présente dans tous les cores de mémoire

                          GDEHON 1 Reply Last reply Reply Quote 0
                          • babastorm
                            babastorm last edited by

                            @acris
                            Mince !
                            Bon, j'ai une autre piste : Le shader est peut-être modifiable pour l'empécher de tourner de 90° ?
                            Je poste le code ici, on sait jamais si quelque chose tape dans l'oeil d'un codeur :

                            mirror.glslp :

                            shaders = "1"
                            shader0 = "shaders_glsl/mirror/c**ktail_mirror.glsl"
                            filter_linear0 = "false"
                            wrap_mode0 = "clamp_to_border"
                            mipmap_input0 = "false"
                            alias0 = ""
                            float_framebuffer0 = "false"
                            srgb_framebuffer0 = "false"
                            parameters = "height;width;location_y;location_x;ZOOM"
                            height = "-1.145000"
                            width = "1.750000"
                            location_y = "0.800000"
                            location_x = "-0.500000"
                            ZOOM = "1.000000"

                            c**ktail_mirror.glsl :
                            #pragma parameter height "Image Height" -1.145 -6.0 6.0 0.01
                            #pragma parameter width "Image Width" 2.0 0.0 10.0 0.05
                            #pragma parameter location_y "Image Location Y" 0.75 -4.0 4.0 0.005
                            #pragma parameter location_x "Image Location X" -0.5 -4.0 4.0 0.005
                            #pragma parameter ZOOM "Image Zoom" 1.0 0.0 2.0 0.005

                            #if defined(VERTEX)

                            #if VERSION >= 130
                            #define COMPAT_VARYING out
                            #define COMPAT_ATTRIBUTE in
                            #define COMPAT_TEXTURE texture
                            #else
                            #define COMPAT_VARYING varying
                            #define COMPAT_ATTRIBUTE attribute
                            #define COMPAT_TEXTURE texture2D
                            #endif

                            #ifdef GL_ES
                            #define COMPAT_PRECISION mediump
                            #else
                            #define COMPAT_PRECISION
                            #endif
                            COMPAT_VARYING vec4 _color1;
                            COMPAT_VARYING float _frame_rotation;
                            struct input_dummy {
                            vec2 _video_size;
                            vec2 _texture_size;
                            vec2 _output_dummy_size;
                            float _frame_count;
                            float _frame_direction;
                            float _frame_rotation;
                            };
                            struct output_dummy {
                            vec4 _color1;
                            };
                            vec4 _oPosition1;
                            vec4 _r0020;
                            vec4 _r0022;
                            vec2 _r0024;
                            vec2 _r0026;
                            COMPAT_ATTRIBUTE vec4 VertexCoord;
                            COMPAT_ATTRIBUTE vec4 COLOR;
                            COMPAT_VARYING vec4 COL0;
                            COMPAT_VARYING vec4 TEX0;
                            COMPAT_VARYING vec4 TEX1;

                            uniform mat4 MVPMatrix;
                            uniform COMPAT_PRECISION int FrameDirection;
                            uniform COMPAT_PRECISION int FrameCount;
                            uniform COMPAT_PRECISION vec2 OutputSize;
                            uniform COMPAT_PRECISION vec2 TextureSize;
                            uniform COMPAT_PRECISION vec2 InputSize;

                            #ifdef PARAMETER_UNIFORM
                            uniform COMPAT_PRECISION float height;
                            uniform COMPAT_PRECISION float width;
                            uniform COMPAT_PRECISION float location_y;
                            uniform COMPAT_PRECISION float location_x;
                            uniform COMPAT_PRECISION float ZOOM;
                            #else
                            #define height -1.145
                            #define width 2.0
                            #define location_y 0.75
                            #define location_x -0.5
                            #define ZOOM 1.0
                            #endif

                            void main()
                            {
                            vec4 _oColor;
                            vec2 _otexCoord1;
                            vec2 _otexCoord2;
                            _r0020 = VertexCoord.xMVPMatrix[0];
                            _r0020 = _r0020 + VertexCoord.y
                            MVPMatrix[1];
                            _r0020 = _r0020 + VertexCoord.zMVPMatrix[2];
                            _r0020 = _r0020 + VertexCoord.w
                            MVPMatrix[3];
                            _r0022 = _r0020.xvec4( height, 0.00000000E+00, 0.00000000E+00, 0.00000000E+00);
                            _r0022 = _r0022 + _r0020.y
                            vec4( 0.00000000E+00, width, 0.00000000E+00, 0.00000000E+00);
                            _r0022 = _r0022 + _r0020.zvec4( 0.00000000E+00, 0.00000000E+00, 1.00000000E+00, 0.00000000E+00);
                            _r0022 = _r0022 + _r0020.w
                            vec4( 0.00000000E+00, 0.00000000E+00, 0.00000000E+00, 1.00000000E+00);
                            _oPosition1 = _r0022;
                            _oColor = COLOR;
                            _r0024 = VertexCoord.xvec2( 0.00000000E+00, 1.00000000E+00);
                            _r0024 = _r0024 + VertexCoord.y
                            vec2( -1.00000000E+00, 0.00000000E+00);
                            _otexCoord1 = _r0024 + vec2( location_y, location_x);
                            _r0026 = VertexCoord.xvec2( 0.00000000E+00, 1.00000000E+00);
                            _r0026 = _r0026 + VertexCoord.y
                            vec2( -1.00000000E+00, 0.00000000E+00);
                            _otexCoord2 = -(_r0026 + vec2( 1.0 - location_y, -1.0 - location_x));
                            gl_Position = _r0022;
                            COL0 = COLOR;
                            TEX0.xy = _otexCoord1;
                            TEX1.xy = _otexCoord2;
                            }

                            #elif defined(FRAGMENT)

                            #if VERSION >= 130
                            #define COMPAT_VARYING in
                            #define COMPAT_TEXTURE texture
                            out vec4 FragColor;
                            #else
                            #define COMPAT_VARYING varying
                            #define FragColor gl_FragColor
                            #define COMPAT_TEXTURE texture2D
                            #endif

                            #ifdef GL_ES
                            #ifdef GL_FRAGMENT_PRECISION_HIGH
                            precision highp float;
                            #else
                            precision mediump float;
                            #endif
                            #define COMPAT_PRECISION mediump
                            #else
                            #define COMPAT_PRECISION
                            #endif
                            COMPAT_VARYING vec4 _color1;
                            COMPAT_VARYING float _frame_rotation;
                            struct input_dummy {
                            vec2 _video_size;
                            vec2 _texture_size;
                            vec2 _output_dummy_size;
                            float _frame_count;
                            float _frame_direction;
                            float _frame_rotation;
                            };
                            struct output_dummy {
                            vec4 _color1;
                            };
                            vec4 _TMP1;
                            vec4 _TMP0;
                            uniform sampler2D Texture;
                            COMPAT_VARYING vec4 TEX0;
                            COMPAT_VARYING vec4 TEX1;

                            uniform COMPAT_PRECISION int FrameDirection;
                            uniform COMPAT_PRECISION int FrameCount;
                            uniform COMPAT_PRECISION vec2 OutputSize;
                            uniform COMPAT_PRECISION vec2 TextureSize;
                            uniform COMPAT_PRECISION vec2 InputSize;

                            #ifdef PARAMETER_UNIFORM
                            uniform COMPAT_PRECISION float height;
                            uniform COMPAT_PRECISION float width;
                            uniform COMPAT_PRECISION float location_y;
                            uniform COMPAT_PRECISION float location_x;
                            uniform COMPAT_PRECISION float ZOOM;
                            #endif

                            void main()
                            {
                            vec4 _color;

                            //fix for clamping issues on GLES
                            vec2 fragCoord1 = TEX0.xy * InputSize / TextureSize;
                            vec2 fragCoord2 = TEX1.xy* InputSize / TextureSize;

                            _TMP0 = vec4(0.0);
                            if ( fragCoord1.x < 1.0 && fragCoord1.x > 0.0 && fragCoord1.y < 1.0 && fragCoord1.y > 0.0 )
                            _TMP0 = COMPAT_TEXTURE(Texture, TEX0.xy / ZOOM);
                            _TMP1 = vec4(0.0);
                            if ( fragCoord2.x < 1.0 && fragCoord2.x > 0.0 && fragCoord2.y < 1.0 && fragCoord2.y > 0.0 )
                            _TMP1 = COMPAT_TEXTURE(Texture, TEX1.xy / ZOOM);

                            _color = _TMP0 + _TMP1;
                            FragColor = _color;
                            return;
                            

                            }
                            #endif

                            FMO 1 Reply Last reply Reply Quote 0
                            • GDEHON
                              GDEHON @acris last edited by

                              @acris said in Rotation de l'écran à 90°:

                              dans quick menu pour mame.
                              https://docs.libretro.com/library/mame_2003/
                              https://docs.libretro.com/library/mame2003_plus/

                              attention l'option n'est pas présente dans tous les cores de mémoire

                              Bonjour
                              Est ce le menu avec tabulation ?
                              Merci

                              1 Reply Last reply Reply Quote 0
                              • acris
                                acris last edited by

                                dans retroarch. c est le menu qui s ouvre

                                1 Reply Last reply Reply Quote 0
                                • FMO
                                  FMO @babastorm last edited by

                                  @babastorm : bonjour, j'ai le même problème avec ma table c**ktail. Avec la version précédente de Retroarch, je parvenais à forcer la rotation supplémentaire nécessaire pour l'effet miroir.

                                  (tips issue de : )
                                  https://www.reddit.com/r/RetroPie/comments/97x016/tutorial_split_screen_c**ktail_mode_on_retropie/

                                  As-tu trouvé l'astuce depuis ? La fonction TATE ROTATION ?

                                  merci !

                                  1 Reply Last reply Reply Quote 0
                                  • acris
                                    acris last edited by

                                    le fonctionnement pour les overrides de recalbox a été modifié à cause de la mise à jour de retroarch qui fonctionne différents.
                                    je suppose qu'il faut passer maintenant par les surcharges :

                                    Rotation de l'écran : https://recalbox.gitbook.io/documentation/v/francais/utilisateur-avance/surcharge-de-configuration/surcharges-retroarch#rotation-de-lecran
                                    https://recalbox.gitbook.io/documentation/v/francais/utilisateur-avance/surcharge-de-configuration
                                    https://recalbox.gitbook.io/documentation/v/francais/utilisateur-avance/surcharge-de-configuration/surcharges-retroarch

                                    FMO 1 Reply Last reply Reply Quote 0
                                    • normanx9
                                      normanx9 last edited by

                                      Lance le jeu souhaité puis fait "hotkey+B"
                                      Dans le menu de retroarch il faut aller dans : "réglages"
                                      "Interface utilisateur"
                                      Et mettre l'option "afficher les réglages avancés" Sur activé
                                      Et la l'option de rotation apparaitra dans les réglages vidéo et dans option du core
                                      Plus qu'à faire un remplacement de configuration pour le core

                                      1 Reply Last reply Reply Quote 0
                                      • FMO
                                        FMO @acris last edited by

                                        @acris Merci pour ce tips. La rotation fonctionne désormais parfaitement en créant le fichier config :
                                        nom-rom.zip.retroarch.cfg dans le répertoire des roms avec ce paramètre :
                                        video_rotation = "1"

                                        1 Reply Last reply Reply Quote 1
                                        • Scanlinator
                                          Scanlinator last edited by

                                          Salut,
                                          je rebondis sur ce post , bien que je vienne de Retropie. Je n'ai pas eut de pb pour configurer ES (le raspberry quoi) en mode portrait ainsi que les jeux individuellement dans retroarch. Mais je réagis, car ayant testé quelques jeux, j'ai tout de suite remarqué des baisse de performances notables. Un petit tour sur de nombreux forum spécialisés pour apprendre que ce mode de rotation du pi est très bouffeur de ressources . Pour l'explication technique, ceux à qui ça parle "display_rotate does NOT change the way the screen image is actually displayed, it only changes the way the framebuffer is filled by the GPU"

                                          Donc à tout ceux qui utilisent la rotation dans le config.txt de boot, ce n'est malheureusement pas une bonne idée et vous allez perdre du fps/synchro même sur des jeux peu gourmand (1941 semble décrocher par moment dès l'écran titre).
                                          La bonne solution est de rester en horizontal sur le pi , et de basculer la rotation dans retroarch , par jeux. Là c'est absolument nickel. Et pour ce qui est du front-end, si celui que vous utilisez n'a pas d'option TATE (Attract mode a cette option par exemple), ou n'est pas dédié (vertipie etc) alors je n'ai pas encore vu de solution pour changer le sens...

                                          1 Reply Last reply Reply Quote 0
                                          • Scanlinator
                                            Scanlinator last edited by

                                            Pour ceux que ça intéresse, la rotation d'ES est bien possible, à l'aide de --screenrotate <x> (où x = 1 à 3).

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

                                            Want to support us ?

                                            87
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com