Recalbox Forum

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

    Bouton poussoir pour changer la résolution de la recalbox

    Recalbox Général
    poussoir résolution recalbox
    4
    11
    2730
    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.
    • GomiBoy
      GomiBoy last edited by GomiBoy

      Bonjour à tous !
      J'utilise ma recalbox dans 2 configs bien distinctes :

      • sur la télé de mes potes (le 720p par défaut c'est bien)
      • sur une mini-borne dédiée avec écran 10 pouces, et là il faut du 800x600 (et ce n'est pas détecté)

      Du coup j'arrête pas de devoir me connecter en SSH avec putty, pour changer le mode video dans recalbox.conf ET dans /boot/config.txt pour les interfaces, ce qui est plus coton (remonter la partition en RW et tout).
      Il faut une connexion web et ce n'est pas très spontanné comme manip, quoi.

      Alors je me suis dit :
      "Eh ce serait cool un bouton-poussoir sur un GPIO qui ferait le switch entre mes 2 modes préférés !"

      Et j'y suis presque (je pense), l'idée ce serait de jongler entre 2 fichiers recalbox.conf et recalbox.bak (par ex), l'un en 720p l'autre en 800x600... et un script bash pour les intervertir (les renommer quoi).

      Problème : sur des fichiers normaux ça marche (sous Debian en tout cas), mais il semble que je ne puisse pas renommer recalbox.conf...
      Protégé en écriture ?

      J'ai essayé
      mount -o remount, rw /boot
      mais non... et
      killall emulationstation
      mais toujours pas...

      Qu'est-ce que je dois faire pour que mon script puisse prendre la main sur le fichier recalbox.conf ?
      Et idem pour /boot/config.txt ?

      Pour info, mon script bash :

      mount -o remount, rw /boot
      mv /recalbox/share/system/recalbox.bak recalbox.next
      mv /recalbox/share/system/recalbox.conf recalbox.bak
      mv /recalbox/share/system/recalbox.next recalbox.conf
      mv /boot/config.bak /boot/config.next
      mv /boot/config.txt /boot/config.bak
      mv /boot/config.next /boot/config.txt
      reboot

      Je n'ai pas encore essayé de le déclencher via le GPIO, il faudrait déjà qu'il marche via la console... là j'ai ça :

      mv: can't rename '/boot/config.next': No such file or directory
      (et ça reboot, )

      Par contre j'ai testé le principe sous Raspbian, j'arrive à lancer un bash qui échange 2 fichiers texte et reboot quand je connecte le GPIO3 avec le GROUND... j'étais tout content 🙂
      Je me suis inspiré largement de cet article

      boot -> bash .sh via init.d -> script python -> écoute GPIO -> bash .sh qui fait le boulot et reboot

      (Pfiu)

      Bref, je trouvais l'idée astucieuse, intervertir 2 fichiers de config et le tour est joué... mais j'ai dû louper quelque chose.

      Substring 1 Reply Last reply Reply Quote 0
      • supernature2k
        supernature2k last edited by supernature2k

        recalbox.conf n'est pas dans /boot
        il faut donc:
        mount -o remount, rw /

        edit: il faut les deux hein, / et /boot sont deux arbos differentes

        Pi powered NES | Gameboy HD | RecalStation | RecalDrive
        Upvote messages if it has been useful ;)

        1 Reply Last reply Reply Quote 0
        • Dragu
          Dragu Banned last edited by Dragu

          @GomiBoy
          Contrairement à la recalbox.conf, je vois noir pour la config.txt qui me semble part intégré de l'os qu'est Recalbox.
          Moi je vois une solution beaucoup plus simple. Tu prends deux cartes SD que tu configure d'après les besoins relatifs. Comme ça juste besoin de changer de carte. Tu pourra pour recalbox.conf aussi mettre ton \share "maison" sur une mémoire USB extérieure, recalbox.conf se trouvera alors à cet endroit.

          1 Reply Last reply Reply Quote 0
          • Substring
            Substring @GomiBoy last edited by

            @gomiboy avant d'inventer une usine à gaz (qu'on ne fera sûrement pas) tu peux détailler cet ecran 800x600 ? Modèle, type de branchement, ce que tu as du changer dans recalbox ... Parce que je sens que la solution devrait déjà etre toute trouvée dans la prochaine release

            Former dev - Please reply with @substring so that i am notified when you answer me
            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

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

              Ah ben ma carte SD vient de rendre l'âme !
              Une Samsung 32 Go.
              Ca ne boot plus et je vois des partitions vides avec DiskInternals Linux Reader.
              Je suis deg, j'avais une partie de Zelda The Minish Cap bien avancée et je n'ai pas de backup de la sauvegarde 😕

              Du coup je vais passer en Clé USB 32 Go + carteSD, ce qui ouvre effectivement la possibilité de me créer 2 cartes distinctes... avant je ne l'envisageais pas car l'idée c'est de continuer les parties en cours.

              Bon j'ai quand-même très envie de tester avec
              mount -o remount, rw /
              Ce serait fun un bouton pour changer de résolution !

              L'écran c'est celui-ci, il est plutôt chouette mais recalbox ne détecte pas sa résolution, et avoir un affichage déformé (du 16/9 sur un écran 4/3) ça ne me convient pas du tout.
              Je l'ai intégré dans une mini-borne faite maison.
              text alternatif
              (Il faut que je mette la photo à jour, j'ai intégré des petites enceintes sous l'écran depuis, et c'est mieux !)
              Il est branché en HDMI.

              Pour passer en mode "écran 10 pouces" je fais :

              • édition de recalbox.conf
                global.videomode=DMT 9 HDMI

              • édition de config.txt
                mount -o remount, rw /boot
                puis
                hdmi_group=2
                hdmi_mode=9

              DMT9 c'est donc 800x600, et j'ai un affichage pixel perfect sur les interfaces et les jeux.

              Bon, du coup il faut que je choppe une nouvelle carte micro SD pour continuer à tester, à suivre !

              Substring 1 Reply Last reply Reply Quote 0
              • Substring
                Substring @GomiBoy last edited by Substring

                @gomiboy on peut resoudre ca autrement je pense. Tin ecran est branche en hdmi ou pas ? Donne-moi le resultat de tvservice -n stp

                Former dev - Please reply with @substring so that i am notified when you answer me
                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                GomiBoy 2 Replies Last reply Reply Quote 0
                • GomiBoy
                  GomiBoy @Substring last edited by

                  Hop, de retour après réinstall de la dernière version sur la même carte, qui n'était pas morte, juste les données corrompues.

                  @substring Mon écran est en hdmi, et ta ligne de commande me donne :
                  device_name=MST-MStar_Demo
                  ...
                  C'est pas très explicite, si ?
                  Effectivement, ce serait encore mieux si je pouvais faire en sorte que la résolution de l'écran soit tout simplement bien détecté.

                  1 Reply Last reply Reply Quote 0
                  • GomiBoy
                    GomiBoy @Substring last edited by GomiBoy

                    @substring et tant que j'y suis :

                    tvservice -m CEA
                    Group CEA has 13 modes:
                               mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive
                               mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive
                               mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive
                      (prefer) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive
                               mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced
                               mode 7: 720x480 @ 60Hz 16:9, clock:27MHz x2 interlaced
                               mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive
                               mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive
                               mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive
                      (native) mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive
                               mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced
                               mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced
                               mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive
                    # tvservice -m DMT
                    Group DMT has 5 modes:
                               mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive
                               mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive
                               mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive
                               mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive
                               mode 85: 1280x720 @ 60Hz 16:9, clock:74MHz progressive
                    

                    Mais pour avoir fait pas mal de tests, les infos ne sont pas bonnes, en CEA 4 c'est déformé et on voit bien que ça ne matche pas les pixels de l'écran.
                    En DMT 9 c'est parfait.

                    Substring 1 Reply Last reply Reply Quote 0
                    • Substring
                      Substring @GomiBoy last edited by

                      @gomiboy bon je suis en vacs, ca va etre compliqué d'expliquer à partir du tel. Il faut lire la doc de raspberry sur la config video qui decrit comment indiquer une résolution particuliere pour un écran. La syntaxe est du genre [EDID=blavkavla] où boablabla est le nom de ton moniteur renvoyé. Cf https://www.raspberrypi.org/documentation/configuration/config-txt/conditional.md. juste eb dessous tu spécifies les hdmi_group et mode. Puis tu mets un[all] pour arrêter la dection spécifique. J'ai déjà décrit comment faire dans le fofo mais pour un autre type d'ecran

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                      GomiBoy 2 Replies Last reply Reply Quote 0
                      • GomiBoy
                        GomiBoy @Substring last edited by

                        @substring okaaaaaay !
                        /boot/config.txt c'est donc le "bios" du raspberry !
                        Génial, je n'aurais jamais pensé à creuser dans cette direction là, mais je comprends bien l'idée de réécrire la config par défaut associée à mon moniteur.
                        Je vais creuser, merci beaucoup (et bonnes vacances !).

                        1 Reply Last reply Reply Quote 0
                        • GomiBoy
                          GomiBoy @Substring last edited by

                          @substring Merci !
                          Ca s'affiche impec sur mon écran 10", et aussi sur un écran full HD à une toute autre résolution, sans rien modifier entre les 2. Tip-top.

                          J'ai juste ajouté au début de /boot/config.txt

                          # écran 10p 800x600 DMT9
                          # l'EDID est obtenu par tvservice -n
                          [EDID=MST-MStar_Demo]
                          hdmi_group=2
                          hdmi_mode=9
                          [all]
                          

                          (après avoir fait mount -o remount, rw /boot pour les droits d'écriture)

                          Ca m'aura pris moins de 10 minutes, c'est sûr que c'est mieux qu'un bouton qui lance un script qui modifie des fichiers textes sensibles à la volée...

                          J'ai aussi changé un truc dans recalbox.config mais je ne sais pas si c'était nécessaire :
                          global.videomode=default
                          Je me suis dit que comme ça la résolution des jeux s'alignerait sur celle des interfaces ?
                          Ca a l'air de marcher.
                          Avant je modifiais les 2 fichiers de config.

                          Bref, problème réglé ! Un grand merci !

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

                          Want to support us ?

                          84
                          Online

                          99.6k
                          Users

                          28.1k
                          Topics

                          187.1k
                          Posts

                          Copyright © 2021 recalbox.com