retroarchcustom.cfg modifié par le system...



  • Bonjour !

    J'ai un petit soucis avec la configuration retroarch sur la derniere version de recallbox en download + MAJ hier (mais le 'probleme' était déja présent avant la MAJ, aucun rapport.

    bref... Je boot, j'entre dans PlibRepro(par exemple), je lance un jeux, je passe dans le menu de configuration video de retroarch, je modifie quelques option pour avoir mon image qui 'colle' bien a mon écran.
    Je sauve, je reboot, je relance mon jeu.

    Ok, tout mes modifis sont bien présentent et son bien prise en compte sauf que....
    Le system, met à jour, tout seul, au lancement d'un jeu, la ligne video_scale_integer = dans le fichier /recalbox/share/system/configs/retroarch/retroarchcustom.cfg.

    Qu'es ce que c'est que ce truc de fou ??...

    Ok, je retourne dans menu de configuration de retroarch, je RE-modifie l'option video_scale_integer à FALSE, je reboot.
    Je me connecte en SSH sur ma borne et lance une boucle de lecture sur ce fichier avec un grep qui va bien.
    du genre :

    while true; do cat /recalbox/share/system/configs/retroarch/retroarchcustom.cfg | grep "video_scale_integer"; sleep 1 ; clear ; done

    OK, je suis bien en FALSE
    Je lance mon jeux sur mon bartop.... BIMMMM, des que le jeu se lance, il change tout seul cette option en TRUE.

    évidement, même si on modifie les droits du fichiers en lecture seul, ca ne change rien car, c'est lancé en tant que root.
    ps -edf | grep retroarc
    11390 root retroarch -L /usr/lib/libretro/fba_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg /recalbox/share/roms/fba_libretro/dynablst.zip

    Ce qui pour moi, déja est une abération de lancer les softs en tant que root ceci dit au passage...mais bon, passons.

    Une idée de comment passer ce probleme ?



  • @Giants change la valeur dans ES voyons lol
    Là tu joues avec le fichier que Recalbox génère/modifie avant chaque lancement de core retroarch. Donc on relit les params qui nous intéressent pour ensuite les pusher dans le retroarchcustom.cfg.

    Donc 2 solutions :

    • tu changes dans ES (options des jeux je crois, integer scale)
    • tu passes en custom config (mais pour ce cas, ca n'en vaut pas le coup)


  • Je te cite : Donc on relit les params qui nous intéressent pour ensuite les pusher dans le retroarchcustom.cfg

    Quand on modifie les parametres de retroarch directement via le menu fait pour ca, sur le bartop et que l'on sauve la configuration, il la sauve sur : /recalbox/share/system/configs/retroarch/retroarchcustom.cfg
    C'est marqué noir sur blanc sur l'écran...il suffit de lire.

    Vue que je suis DEJA en custom, il doit prendre d'origine ce fichier (ce qu'il fait d'ailleurs)

    Je ne voie pas pourquoi, retroarch ou autre programme irait lire 'je ne sais quoi d'autre comme fichier' de conf d'ailleurs... de retro arch, pour mettre à jour le fichier préalablement sauvé, à savoir : retroarchcustom.cfg ???

    De plus, ce n'est pas le cas, car juste cette ligne est modifié...

    Tes 2 options sont hors propos.

    • option 1 : c'est déja ce que je fait. (je me modifie pas le fichier via vi sous linux et même si c'était le cas, cela n'aurait aucun impact)

    • option 2 : je suis déja en custom config

    Je crois que tu as mal compris ma manip de départ, relie mon message.

    La modification que je fait de l'option video_scale_integer est faite par le menu sur mon bartop.
    Il n'y a pas de 'bidouille' ou quoi que ce soit, c'est fait pour, tu peux le changer comme bcp d'autre options directement sur le bartop.

    J'utilise uniquement la 'command line' en ssh uniquement pour voir QUAND il modifie cette valeur, à savoir, au lancement du jeux.

    Donc ma question est tjs demise.
    Pourquoi il modifie Cette Valeur.



  • Par exemple, ce que j'ai modifié comme valeur via l'interface graphique Directement sur le bartop
    est bien écrie et sauvé dans mon fichier /recalbox/share/system/configs/retroarch/retroarchcustom.cfg
    Peu importe que je reboot ou pas, mes valeurs restent ET sont bien prisent en compte au lancement des jeux.

    custom_viewport_width = "1192"
    custom_viewport_height = "584"
    custom_viewport_x = "68"
    custom_viewport_y = "86"

    Mon probleme vient UNIQUEMENT de la modification qu'est faite dans ce fichier sur la valeur video_scale_integer
    qui passe tjs a TRUE au lancement d'un jeux.


  • CRT Fan

    perso j'ai crée un fichier .cfg par console, pour pouvoir définir mes viewports sur un écran crt. je modifie ces valeurs directement dans le fichier (via samba, partage réseau classique), en me basant sur les valeurs que j'ai trouvé via retroarch.
    Les valeurs sont bien sauvegardée au reboot, ou au prochain lancement d'un jeu de cette console.
    Je crée mes fichiers nes.cfg, snes.cfg, neogeo.cfg...
    Bref pas de soucis de mon coté 😕

    Edit : j'utilise la valeur video scale integer pour certaines consoles, on ou off ça sauvegarde à chaque fois.



  • @Giants as-tu au moins essayé ce que je t'ai dit ?



  • ... -_-'
    As tu lue ce que je t'ai répondu ?

    En creusant un peu on voir qu'au lancement d'un jeux, une commande est exécutée, à savoir dans mon cas

    python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc -p1index 0 -p1guid 03000000c0160000e105000001010000 -p1name "Xin-Mo Xin-Mo Controller" -p1devicepath /dev/input/event0 -system fba_libretro -rom /recalbox/share/roms/fba_libretro/dynablst.zip -emulator default -core default

    Dans un premier temps, ce code fait un check et un nouveau parsing est effectuée sur le fichier /recalbox/share/system/configs/retroarch/retroarchcustom.cfg pour ensuite lancer un nouveau process du type :
    retroarch -L /usr/lib/libretro/fba_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg /recalbox/share/roms/fba_libretro/dynablst.zip

    La routine de check d'ailleurs (crade... désolé, j'ai pas d'autre mot)
    Elle crée 150 fichiers tempo du style : /recalbox/share/system/configs/retroarch/retroarchcustom.cfgcfgou1iLw

    Pour ensuite re-créer un nouveau fichier custom (pourquoi ????, il existe les gars ce fichier ? pourquoi le re-créer,e le modifié ?)
    Le tout re-parser, un coup je te met de guillement, un coup je n'en mais pas. (la... faudra m'expliquer)

    En fait... quand on passe par l'interface graphique, via le bartop pour modifier la configuration video et que l'on sauve le tout, comme dit plus haut, un nouveau fichier est crée, à savoir :
    /recalbox/share/system/configs/retroarch/retroarchcustom.cfg

    Ensuite.... c'est la que ca devient drôle, quand on lance un jeux, quelques binaires sont lancé pour rebondir sur des scripts python... et comme dit juste au dessus, une moulinette (entre autre) est faite sur le fichier /recalbox/share/system/configs/retroarch/retroarchcustom.cfg (pourquoi pas après tout, la routine est juste super crade au vue des nombreux fichiers tempo crée et du résultat du 'nouveau' fichier mais bon, why not...)

    Mais la ou c'est drole, c'est ce que fait cette routine de 'check'.
    Elle modifie le parsing... et pas sur toutes les valeurs, LOL
    Un coup je te laisse les guillemets, un coup je te les enleves..

    Exemple, avant lancement d'un jeux on a (par exemple, j'ai pris une variable parmi tant d'autre)
    été au préalable dans l'interface retroarch --> blabla -> video, modifié quelques valeurs
    On a sauvé le tout.
    On regarde le didi fichier créer donc PAR RetroArch lui même, on prends une valeur par exemple :

    savestate_directory = "/recalbox/share/saves/fbalibretro"

    Cette variable est écrite t'elle qu'elle par retroarch on est d'accord !
    Via l'interface graphique de celle-ci (plus officiel, y'a pas)

    HOP, on appuie sur le ch'tit bouton de la borne, le jeu se lance (et donc une des moulinette de recallbox...)
    On re-regarde le fichier et la variable :
    savestate_directory = /recalbox/share/saves/fbalibretro

    HOP... plus de guillemets.. un coup je t'en met, un coup je t'en met pas.
    Ah la limite les guillemets... on sans fiche vue qu'on est sur un ensemble assez locké de base (ro, monté en ram, architectures fichier/repertoire assez propre, bref... pas de nom zarb ou avec des espaces.
    Mais bon...officiellement, retroarch les mets ses guillemets donc pourquoi les enlever ?
    Et en plus, pas partout... ah... la variable a un caractère qui sort un peu de la norme, aller Hop, la on met les guillemets.
    Ca n'aurait pas été juste plus logique et plus simple et de laisser a césar ce qui est a césar ?
    Il veux des guillemet d'origine ? ok, on touche pas, on check juste que la variables est bien défini de concret.

    Mais y'a mieux, un coup je modifie (on ne sais pas pourquoi d'ailleurs), t'elle variable alors que... elle est bien définie dans le fichier n'a aucune raison d'être modifié (vue que, valide et crée via l'interface graphique ORIGINAL de retroarch).
    Comment passer de False a True rien qu'en lancant un jeux... ca me tue 🙂

    heu les gars.... votre moulinette de check du fichier custom elle est pas bonne du tout.

    Verifier les valeurs OK, créer 150 ou plus exactement 51 fichiers temporaires... avant de re-écrire le fichier, franchement... y'a comme un ch'tit probleme au niveau code là, mais aller remplacer carrément un false par un true là... je dit, bravo.
    En plus, ces fichiers sont crée sur un filesystems qui n'est PAS en ram :

    df -k /recalbox/share/system/configs/retroarch/ | grep -- "/dev"
    /dev/mmcblk0p8 12024488 559036 10831596 5% /recalbox/share

    mount |grep mmcblk0p8
    /dev/mmcblk0p8 on /recalbox/share type ext4 (rw,noatime,data=ordered)

    Bonne idée ca, la ré-écriture a gogo sur une carte SD de fichier tempo.
    A ma connaissance, il n'y a pas de controleur qui gere le wear levelling sur la Rbp3
    Rien de mieux pour foutre en l'air plus rapidement que prévue une carte SD :
    Pour ceux qui ont le temps => https://fr.wikipedia.org/wiki/Mémoire_flash

    Et bien sur, tout ca lancer en tant que root... La, c'est la total.

    Je vais continuer a investiguer sur les scripts et le fonctionnant du tout.
    J'ai déjà trouvé pas mal de scripts qui font référence a des path qui n'existent même pas...

    Pour les septiques, je suis même prêt à faire un workflow pour prouver ce que je dit sur le probleme de changement de variable.

    Non la franchement, pas content du tout.



  • Tu sais, personne ne t'empêche de participer au développement de recalbox et de les choses mieux et plus propres qu'elles ne le sont actuellement.
    C'est un projet Open Source maintenu par une équipe de personnes qui fait ça sur son temps libre, qui n'a pas forcément la science infuse quant aux façons de "bien" faire les choses etc.
    Alors certes tu investigues beaucoup dans ton problème et remonte des choses mais le ton que utilises n'est pas très sympathique. Tu n'as pas une équipe de 15 000 dév' qui passent leurs journées à coder recalbox face à toi, simple rappel.



  • Je suis d'accord et j'entends bien ce que tu dit et te comprends.
    Mais mon ton est juste en rapport à la 1er réponse que j'ai eu qui... je trouve, me prenais juste pour un c..

    D'où mon ton pas très sympathique, je te l'accorde.

    Je ne suis pas Dev de metier mais Ingé. System (plus exact. expert System Aix) avec une +15 ans d'exp.
    Personne n'a la science infuse même après 30 ans de metier mais il y a des bases assez simple qu'on a tous
    (admin, ingé, dev...)
    Je n'ai pas la prétention d'être un dev mais je sais coder en python, script shell, C.
    Je ne vais pas 'aider' des dev qui sont censé savoir maitriser 50 fois plus que moi le sujet.

    Je soulève des problèmes qui me semblent légitime et techniques et j'attends des réponses techniques et pas des réponses hors de propos ou qui prenne juste les gens pour des idiots.

    Par exemple en ne lisant pas ce que la personne a écrie complétement ou à répondu et en répondant a coté.
    Ce n'est pas, par exemple, qu'en modifiant un fichier via vi en ligne de commade que tu vas générer ce genre de probleme.
    Donc bon...

    Mais je comprends ton point de vue.
    De toute façon, pour moi, le thread est clos. Pas besoin de partir sur des querelles qui ne vont pas faire avancer le chmiblic.

    Si Je trouve une parade ou quelque chose de gros a changer, je posterais.
    Sinon, je laisse les dev faire ce qu'ils ont à faire.
    Ne vous soucier pas de ce post.



  • @Giants Ecoute, si tu veux auditer le boulot que 3 gugus (dont moi) font sur leur temps libre entre le support, le dev, les suivis de bug, les discussions au sein de l'équipe etc ... Mec, c'est open source, on n'a aucun problème pour accepter tes modifs. Tu crées un compte github, tu vas sur le projet Recalbox, et je t'incite à regarder recalbox-configgen.

    Comment Recalbox fonctionne, merci, je sais très bien, c'est même moi qui passe le plus de temps sur la partie python en ce moment depuis presque 1 an dans l'équipe.

    Si tu veux que je lise tes immenses pavés, il va falloir être synthétique et oublier 2s ton CV. Le ton pédant et hautain ne t'amènera aucune considération.

    Et je crois que tu n'as rien compris à la définition de "config custom" qui veut dire "spécifier un fichier de config retroarch" et pas changer 3 options dans retroarch. OMG RTFM https://github.com/recalbox/recalbox-os/wiki/Créer-une-configuration-custom-par-emulateur-(FR)

    Je peux aussi te sortir mon CV, et il n'a absolument rien à envier au tien. Mais l'humilité ca ne fait pas de mal. Lire la doc encore moins.

    Donc de là, 2 choix :

    • tu te calmes et tu retrouves un ton normal, enjoué et sympathique
    • je te laisse te débrouiller vu que tu es laaaaaaargement capable de faire 3 commandes en sh pour savoir ce qui se passe. Et chance pour toi, c'est open source, tu peux réinventer la roue à ta convenance.

    Ton problème, je sais d'où il vient, je t'ai dit comment le résoudre. A bon entendeur ...

    Et j'attends tes PR sur github avec un immense plaisir.



  • Sur ta 1er réponse, tu réponds à coté sur une question technique (pourtant le titre du sujet est clair) et tu profites pour y placer un foutage de gueule à peine caché, c'est toi qui à lancé la donne...désolé, sinon je n'aurais pas creusé.

    Ce que tu me donnes comme solution est juste un contournement du problème et n'explique pas les divers moulinettes inutiles et fausses qui sont effectuées lors d'un lancement d'un jeu par vos scripts ou binaires.

    Je ne t'ai pas présenté mon CV mais juste fait 1 ligne (regarde bien) ou j’écris précisément ce que je fait techniquement.
    Ceci dans un seul but, que tu comprennes que tu n'as pas un noobs en face de toi et donc tes remarques/réponses à ma problématique doivent donc être technique, c'est pas le cas c'est entre autre ce qui m'a agacé. (plus le foutage de gueule).

    Et au vue de comment tu réagit dernièrement justement, on à l'impression que soit on est un nulle soit on ce la pète.

    Tu sais, il y a aussi une tonne de gens très compétents autre que toi ou moi dans l'info, dans divers métier et qui n'ont pas forcément envie de mettre les mains dans votre code !

    Moi je n'ai aucun soucis avec ton CV (que je ne connais pas et que je n'ai pas à connaître) et ne cherche aucunement une 'concurrence' ou une comparaison avec qui que ce soit.
    Le jeu de celui qui a la plus grosse si tu veux... ça commence à dater un peu pour moi.

    Quand on parle de problème technique, il faut être précis, clair, détaillé.
    Si tu n'aimes pas les 'pavés', je pense que tu as mal choisie ton métier. (si tu est dev j'entends, sinon effectivement, je suis long dans mes réponses, c'est un faite).

    Oui j'avais bien compris ton rapport avec python, je pense que c'est limpide dans la release recallbox.
    Y'a que ça ou presque partout. (au passage, ceci ne me pose aucun problème)

    Tu ne connais pas mon CV, je ne connais pas le tiens, comment peux tu aller déjà sur ce terrain et te venter (c'est ce que tu fait), qu'il n'a rien à envier au mien ??!
    1 C'est pas le sujet.
    2 Tu n'as pas vue mon CV.
    3 Je pense, honnêtement, que tout le monde sans fiche de ton ou mon Cv.
    Tu es juste du Hors sujet à ce propos.

    Comme tu l'as dit si bien dit, j'ai les compétences pour trouver une parade.
    Chose d'ailleurs faite ce matin en bybassant votre moulinette, donc non, je te remercie, je vais me passer de ton aide sur ce problème.
    En faite, j'attendais plus des explications qu'une aide en faite.

    Non je ne participerais pas à ce projet.
    Je ne serais même pas par ou commencer tellement que je trouve que ce n'est pas 'propre' des le départ.
    Et pas besoin d'être 'expert' sur le sujet, il suffit de se connecter en ssh de regarder un peu ce qui se passe au niveau des process, regarder les divers logs, les scripts...
    Rien que tout lancer en root.... hallucinant...

    C'est une grosse usine qui, je te l'accorde, pour le commun des mortels fonctionne 'visiblement' très bien. (faut pas creuser en faite).

    Donc il n'y a pas de raison a ce que cela change, continuer comme ça.

    Tu peux fermer le thread, l'effacer...
    bref... Fait ce que tu veux, ce thread n'a plus vocation à exister.

    Moi je vais juste contourner certains de vos scripts comme je le fait déjà.
    Soit tout simplement, me monter une release plus 'lite' et 'conforme/propre' à mon sens
    et qui ne lancera que ce que je veux, à savoir mame ou équivalent.

    Recallbox est juste pas fait pour moi, pas adapté à ce que j'attends.

    Je te remercie pour ton temps passé, tu peux fermer, effacer le thread, Locké le compte...
    Je passe à autre chose de mon coté.

    Pour les autres lecteurs : Désolé ce thread et ce dernier pavé.


  • Staff
    Global moderator
    Team

    @Giants, Il se trouve que je suis amateur de pavé. Chose qui n'est pas le cas de Subs :). Donc si il a pris le temps de te répondre avec autant de ligne, c'est que tu lui a fait de l'effet.

    Je ne suis pas dev, je ne comprend rien à vos échange. En revanche, la tu nous la joue calimero qui crache dans la soupe et c'est pas très sympa...

    Je vais commencer par ton message. Tu introduit en disant que ton topic n'est pas forcement induit par la derniere maj. Je t'invite à regarder les 30 autres qui ont étaient posté à coté et qui, eux concernent justement la dernière maj. Subs lis peu etre un peu rapidement ton poste mais déjà il te fait une réponse. Soit-en heureux...

    Vu que tu te sent pris pour un con par la réponse qui t'ai faite. Regardons un peu ton parcours chez nous.
    Tu attaque directement par ton problème sans même un mot pour remercier du travail effectué. Tu ponctue ça de "Qu'es ce que c'est que ce truc de fou ??.." Et de jugement 'au passage comme tu dis".
    Tu as zero topic à ton actif, tu parle de modification de fichier de config direct.... Ca commence déjà mal...

    Il y a peu etre un soucis ou quelque chose qui peu etre améliorer mais pour quelqu'un qui se permet de dire que c'est cracra ou qu'il y a des "aberation" et qui demande un support... Moi qui n'y connais rien en dev, j'ai déjà envie de te rentrer dedans :).

    Donc tu veux continuer ton chemin dans ton coin, ne te gêne pas. Mais au lieu de te mettre sur la défensive et penser qu'on te prend pour un con. Prend un peu de recule, va regarder un peu ce qui est géré au quotidien ici comme "soucis" d'utilisateurs et qui y répond 90% du temps... L'accueil ne te sier peu etre pas. Mais on aimerais avoir un peu plus de gens qui viennent donner un coup de main. Vu que tu semble un peu t'y connaitre et que tu veux déjà toucher au fichier de config. Tu dois pouvoir aller répondre à d'autres utilisateurs sur leurs soucis de formatage en fat32 par exemple.... Tu veux savoir comment fonctionne le systeme, commence déjà par ne pas cracher dessus et faire ta savante. Si tu as de l'experience en milieu professionnel, tu devrais savoir que c'est jamais une bonne façon d'introduire une conversation.

    Enfin je terminerais en disant qu'un projet open source c'est des contributeurs qui font avec leur skill personnel. Et que derrière tu as des "permanents" qui compose avec les contributions des un et des autres et doivent garder en fonctionnement toutes ces briques... Que quand ces "parmanents" se comptent sur les doigts d'une main pour gérer une distribution utilisée par plus de 150K users plutot débutant dans le monde, oui il peuvent pas faire aussi propre qu'ils le souhaiteraient. Mais ton aide est la bienvenue si vraiment ton but est d'aider... Sauf que sous des airs de gentil qui ne cherche que "juste à comprendre", moi je trouve très mesquin et condescendent dans ton approche... Tu "tacle" gentiement alors même que tu as bien remarqué qu'ils y avaient d'autres soucis un peu plus emmerdant pour les utilisateurs en ce moment même et tu n'es indulgent à aucun moment... Meme si tu as le culot de dire le contraire.

    Pas besoin de me répondre. Comme tu conclus ton topic, le sujet est clos. J'aime à penser qu'on s'est tous mépris les uns sur les autres. Donc me concernant sans rancune sa sera mon dernier mot. Et ce n'est pas car il y a des tacles ici et là, qu'on va fermer un topic :).


  • Banned

    This post is deleted!

  • Staff
    Global moderator
    Team

    Bon usons du pouvoir de modérateur suprême et verrouillons se sujet qui part sucette.
    Je ne vais pas revenir sur tout ce qui a été dit excepté le fait que quand on se prend la tête avec un membre de la team/communauté ce n'est pas utile de dire que le travail effectué par toute une communauté c'est de la merde.

    Dans ces cas là on Fork, on Fix, et on fait une PR ou si on a pas la compétence on fait une issue sur GH ou fofo en restant poli et courtois, dans le cas contraire autant ne rien faire ou aller sur un autre système.


Log in to reply
 

Want to support us ?

358
Online

81.4k
Users

22.2k
Topics

161.4k
Posts