Unsolved Rotation de l'écran à 90°
-
@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
#endifvoid main()
{
vec4 _oColor;
vec2 _otexCoord1;
vec2 _otexCoord2;
_r0020 = VertexCoord.xMVPMatrix[0];
_r0020 = _r0020 + VertexCoord.yMVPMatrix[1];
_r0020 = _r0020 + VertexCoord.zMVPMatrix[2];
_r0020 = _r0020 + VertexCoord.wMVPMatrix[3];
_r0022 = _r0020.xvec4( height, 0.00000000E+00, 0.00000000E+00, 0.00000000E+00);
_r0022 = _r0022 + _r0020.yvec4( 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.wvec4( 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.yvec2( -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.yvec2( -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;
#endifvoid 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 -
@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 -
dans retroarch. c est le menu qui s ouvre
-
@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 !
-
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 -
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 -
@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" -
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... -
Pour ceux que ça intéresse, la rotation d'ES est bien possible, à l'aide de --screenrotate <x> (où x = 1 à 3).
-
Je comprends pas trop comment il fait faire !
Pourrais je avoir des précisions svp