Unsolved Rotation de l'écran à 90°
-
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 -
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.
-
@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.
-
Merci pour les informations.
J’essaierais avec la version 6.1 puis je marquerais le sujet comme résolu. -
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 ? -
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).
-
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
-
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 !!!! -
l'option s'appelle tate de mémoire
-
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 ! -
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
-
@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).