Bonjour, un petit message juste pour dire que je suis ce topic depuis le début, en cachette
J'ai une console loose, et quelques jeux français et jap en boite au besoin (si besoin de scans par exemple).
Best posts made by leZone
-
RE: YENO super cassette vision
-
[RB7] Demande de modification de externalscreen.sh
Bonjour,
Je créé ce topic pour expliquer comment contourner le script externalscreen.sh afin de forcer une fréquence vidéo
Et je pose aussi d'autres questions car ce n'est pas parfaitAprès avoir écumé des pages et des tonnes de vidéos, je n'arrive pas à :
- retirer le menu de sélection recalbox (+verbose) au démarrage qui est en 720x400_70Hz
- retirer l'écran de loading de RB7 qui fait un saut de résolution au démarrage
Notez que je débute en linux, il y a 3 jours, je ne savais pas encore ce qu'était nano
Ce que je veux faire :
Forcer Recalbox 7 à se mettre dans une résolution générale fixée à l'avance et sur une sortie vidéo spécifique
Dans mon cas, je veux du 640x480 pixels en 60Hz ou proche (ma carte vidéo sort du 59.94Hz, je vais donc utiliser cela) en VGA
pour mettre mon recalbox PC dans une borne Sega Naomi avec un écran CRT d'origine qui est limité électroniquement en 640 x 480 60HzCe qu'il est possible de faire dans RB7 :
Changer les 2 variables dans recalbox.conf pour le port de sortie et la résolution
MAIS ça ne permet pas de choisir une fréquence préciseCe qu'il faudrait faire :
Modifier le externalscreen.sh pour ajouter toutes les variables disponibles avec xrandr
(et dans mon cas précis, la fréquence --refresh)car par défaut, le script externalscreen.sh renvoie auto en refresh, et ça utilise la fréquence la plus haute (120Hz dans mon cas) et je ne veux pas, il me faut la plus proche de 60Hz, dans mon cas c'est du 59,94Hz
-
J'ai tout de même réussi à forcer le système (procédure ci après)
mais il me reste 2 problèmes de sauts de fréquence/résolutionJe note au passage que malheureusement, sur les forums, beaucoup de personnes renvoient vers la doc sans explications et sans copier/coller la solution
sauf que les pages sur github sont effacées et les liens vers ouiaremakers sont effacés aussi, donc énormément de sujets d'aide sont devenus inutilesMa Recalbox :
recalbox-7.0.1R-x86.img
EmulationStation - v 7.0.1-Reloaded, built Oct 16 2020 - 06:39:51Mon installation:
Recalbox 7 32 bits installé sur HDD Sata 320Go (avec partition activée à la main)
PC X86 (MAXDATA)
Intel Core 2 duo E8400 3Ghz
4 Gb de RAM
Carte mère Intel DQ35JOE
Video intégrée : GMCH 82Q35 (VGA) 256Mb de VRAM fixed , Pas de carte graphique additionnelle, sortie VGA
Audio intégré HDA Intel (STAC9227 Analog), sortie par jack sur la carte mère, réseau intégré par cable RJ45 sur la carte mère
Pas de boot USB possibleCa fonctionne hyper bien, 50 ou 60 fps partout avec les demos fournies dans l'install
-
Voici la procédure de modification que j'ai réalisée
pour forcer recalbox 7 à rester en 640x480 en 59.94 Hz via ma sortie VGA1- commencer par analyser les sorties vidéo possibles :
via Putty (logiciel windows)
ouvrir une session SSH sur votre recalboxlogin as :
root
recalboxrootXrandr me retourne ces infos : (elles vont varier selon votre chipset graphique!)
xrandr
Screen 0: minimum 8 x 8, current 1280 x 1024, maximum 32767 x 32767
DVI1 disconnected primary (normal left inverted right x axis y axis)
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 320mm x 240mm
1280x1024 60.02*
1024x768 85.00 75.03 60.00
800x600 100.03 85.06 75.00 60.32
640x480 120.11 85.01 75.00 59.94
720x400 70.08
VIRTUAL1 disconnected (normal left inverted right x axis y axis)"étoile" signifie le mode actuel, c'est celui affiché par ma RB7 après son installation
2- tester si ça passe sur l'écran et le pc :
en SSH, si je tape la commande suivante, ça fonctionne (à la volée) :xrandr --output VGA1 --mode 640x480 --refresh 59.94
3- j'ai essayé les anciennes méthodes, mais rien à faire
j'ai modifié le xinitrc avec nano, (le /etc/X11/xinit/xinitrc ET sa copie ~/.xinitrc)
la modif est bien dans le fichier enregistré, mais ça ne fonctionne pas au boot de la RB74- sur la RB7, il y a des options pour forcer un écran et sa résolution MAIS PAS sa fréquence
via http:// accès à la recalbox et à recalbox.conf
il y a des paramètres pour changer la résolution :system.externalscreen.prefered=VGA1
system.externalscreen.forceresolution=640x480et ça fonctionne
MAIS pas la fréquence qui passe en 120.11 Hz dans mon cas
(on peut vérifier en ssh via un xrandr et en lisant l'emplacement de *)5- si j'ai bien compris le fonctionnement de RB7 : ces variables sont exploitées par ce script :
externalscreen.sh par strodown
https://gitlab.com/recalbox/recalbox/-/blob/6a86d7af1c078b65aff62990962b1e9462ab9fb9/board/recalbox/x86/fsoverlay/usr/bin/externalscreen.shmais il impossible de spécifier d'autres paramètres de xrand, le script est trop pauvre en options
donc on va le modifier directement en dur ça ira plus viteidéalement, il faudrait créer une nouvelle variable, mais je n'ai pas ce niveau de code
6- on passe en SSH root et on tape dans le tas
passage du disque dur en Ă©criture :
mount -o remount,rw /
copie du script pour backup au cas oĂą :
cd //
cd usr
cd bin
cp externalscreen.sh externalscreen.bakmodification du script en dur :
nano //usr/bin/externalscreen.sh
on modifie ensuite la ligne 42 :
avant :XRANDR_CMD=$(echo "$OUTPUT_MAXRES" | awk -v SEL_OUTPUT="$SEL_OUTPUT" -v FORCE_RES="$FORCE_RES" 'BEGIN {FS="="; printf "xrandr"} $1==SEL_OUTPUT {printf " --output " $1 " --mode " FORCE_RES;} $1!=SEL_OUTPUT {printf " --output " $1 " --off";} END {printf "\n";}')
après: j'ajoute [ " --refresh 59.94"] pour mon cas particulier
XRANDR_CMD=$(echo "$OUTPUT_MAXRES" | awk -v SEL_OUTPUT="$SEL_OUTPUT" -v FORCE_RES="$FORCE_RES" 'BEGIN {FS="="; printf "xrandr"} $1==SEL_OUTPUT {printf " --output " $1 " --mode " FORCE_RES " --refresh 59.94";} $1!=SEL_OUTPUT {printf " --output " $1 " --off";} END {printf "\n";}')
on enregistre (CRTL + O sous nano)
on quitte nano (CRTL + X)on éteint l'ordi depuis recalbox, et on le redémarre pour vérifier que ça fonctionne
ça fonctionne
MAIS
il me reste 2 points noirs dans le boot de RB7Q1 - le menu de sélection de Grub (verbose ou pas) est par défaut dans la résolution technique la plus petit, pour moi c'est 720x400 70.08Hz
et c'est incompatible avec mon écranQuestion 1 : comment supprimer totalement le menu de sélection de grub verbose ? (il ne me sert à rien)
sachant que nano //boot/boot/grub/grub.cfg ne fonctionne pas, car le fichier est protégé par le système contre la modification
et je n'ai pas retrouvé sur cette distribution, les fichiers associés au multiboot qui permettent de modifier le grub via des variablesQ2- ensuite, RB7 passe en 640x480 59.94 Hz
MAIS il repasse en 1280x1024 60.02Hz juste avant le splash screen de loading (image logo RB sur fond noir)
puis il reviens en 640x480 59.94 Hz (image logo RB sur fond blanc et barre de loading) et y resteQuestion 2 : pourquoi ?
je n'ai pas encore trouvé pourquoi, mais ce changement de mode envoie un signal non conforme à la platine de mon écran au risque de le détériorerSi quelqu'un sait comment virer le splash screen de loading, pour tout laisser en noir, ça m'arrangerais, en vous remerciant pour toute aide apportée !