Recalbox 7.0

Intégration de Moonlight



  • Bonjour,   J'ai vu que dans la beta actuelle Moonlight était intégré. J'ai posté une réponse à un bug sur Github, mais pas de réponse encore ... Comme j'ai le temps et le matériel nécessaire, je veux bien pousser l'intégration de Moonlight. J'ai déjà fait la partie shell qui permet de créer un lien pour chaque jeu qui ne nécessite pas un démarrage de Steam. Mais comme tout se fait en mode texte (par SSH ou autre), ca n'est pas trop "recalbox-spirit". Donc, pour faire les choses bien, il faut créer un menu dans emulationstation qui propose les bonnes options. Et là, je n'ai aucune piste ... En gros il faut un bout d'IHM pour :

    1. Permettre la saisie d'une IP pour l'appairage avec un PC + afficher le code généré pour le saisir sur le PC, visualiser al confirmation de l'appairage
    2. Faire la (re)synchro des jeux dispo
    3. Eventuellement permettre la configuration des pads (mais là je pense que ça va être coton sans passer en mode texte, d'autant plus que la configuration des pads n'a rien à voir entre ES et Moonlight, je doute qu'on puisse faire un "traducteur" de l'un vers l'autre.A part juste mapper un /dev/input, j'ai peur que ce soit mort pour la conf des touches)

    Tout çà pour en venir à : comment on ajoute de l'IHM à ES ? En C/C++ ? ou c'est un fichier de conf quelque part ? des exemples ou des tutos ? Merci !


  • Developer
    Global moderator
    Team

    Salut, oui c'est dans https://github.com/recalbox/recalbox-emulationstation que tu peux ajouter un menu. Par contre je fais attention a ne pas surcharger ces menus avec des options qui seraient trop rarement utilisés. Donc je pense que pour moonlight il faudra nécessairement passer par la console (pour la config des pads etc) donc il faudrais un switch dans recalbox.conf, au moins pour activer ces menus dans ES.



  • donc ca restera une option "de hackeur", dommage 😮 Ok, je vais modifier le script en fonction alors et soumettre ca sur github, et regarder comment on paramètre le recalbox.conf pour faire apparaitre ou non Moonlight. Ce que j'ai fait : permettre au Moonlight.sh de lister les jeux et de lancer un jeu particulier. Il peut en outre créer les fichiers .sh pour chaque jeu qui ne nécessite pas Big Picture (le front-end de Steam) pour être lancé. Parce qu'un Ultra Street Fighter IV sur son bartop à 2, streamé depuis le PC, quand même, c'est chouette ^^ Si tu penses que ca mérite que je fasse un pull pour çà, tu me dis. Sinon ca restera à jamaiiiiiiis dans les liiiiiiiiimbes de mon disque duuuuuur ...


  • Developer
    Global moderator
    Team

    Non je suis pour. Par contre ce qui serait cool c'est que ton script permette de creer des fichiers qui contiennent le nom du jeu avec une extension particulière et que ces fichiers soient détectes comme des roms. Ce qui permettrai de lancer les jeux directement depuis ES. (juste en configuran dans es_systeme une ligne de commande qui passera le nom de la rom a moonlight.sh Si tu arrive a faire ca, on se concentre sur les menus es etc aprés.



  • C'est déjà le cas ! Dès qu'on a appairé avec le PC, les évolutions que j'ai faites permettent de faire apparaitre les jeux "non steam" comme des roms. Le truc c'est que ce sont des .sh vul'nitégration actuelle de Moonlight dans ES. Si tu penses qu'une autre solution est plus appropriée, pas de problème j'adapte 🙂


  • Developer
    Global moderator
    Team

    Oui il faudrait que que soit des fichiers vides, genre des .moonlight. Ensuite tu peux dans es_systems.cfg passer la rom en argument du moonlight.sh 🙂 et ajouter le support des .moonlight dans la config aussi de es_systems.cfg



  • OK, je m'y penche. Je fais çà ASAP.



  • Tu as jusqu'au 27/11, soit le black friday hahaha


  • Developer
    Global moderator
    Team

    Tu m'as chauffé avec ca. Je prend un petit pack taito. (chut)



  • Faiiiiibllllleeeee.... Nous sommes faiiiiibllleeeeee



  • euh juste une question : comment la balise <command> sait quel executable aller chercher ? Je garderais bien le principe du moonlight.sh car assez facile à modifier pour quiconque voudrait le faire évoluer ?  je dois aller fouiller le code source en python ?


  • Developer
    Global moderator
    Team

    Non tu met juste la commande dans commande (ton executable est la) en l'occurence, /le/chemin/vers/moonlight.sh



  • Quel est le meilleur endroit pour mettre le Moonlight.sh ? dans /recalbox/share/roms/moonlight ca n'est surement pas l'ideal. Tu as une préférence ?


  • Developer
    Global moderator
    Team

    /usr/bin ou /recalbox/scripts suivant ton envie. EDIT : /recalbox/scripts sera mieux



  • ok. Il reste un soucis avec le fait d'utiliser des fichiers "rom" de taille 0 : certains jeux sont nommés avec des caractères interdits sous linux (je pense au :  ). J'avais contourné ca en faisant de mes roms des shells qui eux ont le bon nom


  • Developer
    Global moderator
    Team

    le : est autorisé dans les noms de fichiers linux 🙂 Sinon tu peux faire une regexp sur le nom du fichier genre sed -e 's/[^A-Za-z0-9._-]/_/g', et mettre le vrai nom dans le fichier. Comme ca t'as plus qu'a faire un cat du fichier pour avoir le vrai nom, si toute fois tu en a vraiment besoin.


  • Developer
    Global moderator
    Team



  • J'ai un pb pur linux : il refuse de me créer un fichier avec un : dedans. J'avais beau protéger le :, pas moyen. Donc mode Dirty hack : je gère un fichier en local de la liste des jeux, et je traduis ... Si jamais je trouve comment créer un fichier avec un : (sachant que le nom du fichier est une variable), plus de fichier de traduction, et c'est bon pour un pull


  • Developer
    Global moderator
    Team

    En utilisant ma methode tu t'en dépatouille pas ?



  • J'aavis déjà utilisé un sed pour remplacer le : La nuit ayant porté conseil, j'ai d'autres idées 🙂


Log in to reply
 

Want to support us ?

180
Online

79.2k
Users

20.4k
Topics

149.3k
Posts