Temps de latence Bluetooth
-
Re : [Résolu]Temps de latence manette PS3 + dongle bluetooth
Bonjour à tous,
J'ignore si le sujet a déjà été abordé, j'ai effectué des recherches et n'ayant pas trouvé de sujet en Français traitant exactement du problème j'ai décidé d'en créer un.J'utilise un raspberry PI3 et la version 17.12.02 de Recalbox. J'ai constaté des problème de latence lors de l'utilisation d'une manette PS3 en bluetooth et j'ai trouvé sur le net une solution fonctionnelle que j'aimerais partager avec vous.
Avant d'entrer dans le vif du sujet, je tiens à préciser qu'il faut bien dissocier les latences liées à l'écran du téléviseur utilisé (Input Lag) et celles liées à la connexion bluetooth. Dans mon cas, j'ai effectué tous les tests nécessaires qui me permettent de confirmer que l'origine du problème se situe bien au niveau de la connexion bluetooth.Donc, je constate des problèmes de latence pendant l'utilisation générale de Recalbox (Navigation menu, et jeu depuis n'importe quel émulateur) après plusieurs tests il s'avère que cette latence se présente uniquement lorsque j'utilise ma manette PS3 en bluetooth, aucun problème constaté lorsque celle-ci est connectée en filaire via le câble USB.
Après quelques recherches, je suis tombé sur un topic qui traite du sujet sur le site de retropie, il expose la marche à suivre pour résoudre le problème: https://retropie.org.uk/forum/topic/7712/fixing-dualshock-3-bluetooth-lag/2
Sans entrer dans les détails, voila ce que j'ai compris: Le problème de latence est en partie lié aux interférences entre le bluetooth et le wifi. En effectuant un ping du Raspberry Pi3 vers la manette bluetooth. j'ai pu constater que le temps de réponse était globalement plus court lorsque le Wifi était désactivé.
- temps de réponse le plus long lorsque le wifi est activé = 114.79ms
- temps de réponse le plus long lorsque le wifi est désactivé = 42.36ms
Il est possible de diminuer encore plus le temps de réponse en paramétrant la connexion bluetooth de la manette en mode "esclave" ainsi le Raspberry aura le le statut de "Maitre" via la commande :
- sudo hcitool sr AA:BB:CC:DD:EE:FF slave
(AA:BB:CC:DD:EE:FF correspond à l'adresse MAC de votre manette Bluetooth. La commande "hcitool con" permet de connaitre l'adresse MAC de tous les périphériques Bluetooth connectés )
Une fois le mode slave activé:
- temps de réponse moyen: 12.00ms
- plus long temps de réponse: 28.67ms
- plus court temps de réponse: 9.38ms
Après avoir fait cela, je ne constate plus aucun problème de latence, il y en a peut-être, mais je ne les perçoit pas. j'ai fait un test sur street fighter II turbo (SuperNintendo) et street fighter EX + A sur (Playstation), 2 jeux auxquels j'ai énormément joué sur console et que je connais assez bien pour confirmer que la diminution de la latence sur Recalbox est bien réelle.
cette solution à néanmoins quelques défauts:
- Il faut appliquer la commande "hcitool sr AA:BB:CC:DD:EE:FF slave" pour chaque manettes
- il faut lancer la commande "hcitool sr AA:BB:CC:DD:EE:FF slave" à chaque reconnexion de la manette
Je ne sais pas s'il est possible que cette "correction" soit implémentée dans une future mise à jour, toutefois j'espère que cela pourra aider ceux qui rencontrent le problème!
-
@cycloid intéressant ... les interférences avec le WiFi sont connues. Mais le coup du mode ... Là effectivement ca vaut le coup. Donc faudra que je regarde çà. Après s'il faut juste ajouter ces commandes ... Faisable, c'est juste vraiment balo de devoir procéder de la sorte, parce que niveau code, ca oblige à faire de la merde ...
Les valeurs que tu donnes sont les tiennes ? avec
l2ping
? -
@Substring J'imagine bien ^_^'
Les valeurs sont bien les miennes, je viens de refaire le test dans les 4 cas de figures suivants afin de fournir des données plus précises :- l2ping avec WIFI Actif:
0 time 97.95ms
1 time 13.57ms
2 time 49.89ms
3 time 13.64ms
4 time 62.39ms
5 time 24.85ms
6 time 16.15ms
7 time 103.61ms
8 time 36.13ms
9 time 97.34ms
10 time 57.36ms
11 time 59.89ms
12 time 86.10ms
13 time 52.33ms
14 time 41.10ms
15 time 82.39ms
16 time 72.40ms
17 time 43.60ms
18 time 69.90ms
19 time 52.35ms- l2ping avec WIFI Actif + Slave mode Actif:
0 time 60.81ms
1 time 37.36ms
2 time 42.40ms
3 time 57.40ms
4 time 49.90ms
5 time 53.65ms
6 time 11.14ms
7 time 34.90ms
8 time 43.65ms
9 time 57.40ms
10 time 41.15ms
11 time 18.64ms
12 time 26.15ms
13 time 57.40ms
14 time 47.40ms
15 time 49.90ms
16 time 51.15ms
17 time 11.15ms
18 time 31.17ms
19 time 52.38ms- l2ping WIFI Désactivé:
0 time 35.92ms
1 time 11.01ms
2 time 12.37ms
3 time 36.15ms
4 time 11.14ms
5 time 36.12ms
6 time 14.86ms
7 time 13.66ms
8 time 13.58ms
9 time 36.17ms
10 time 34.86ms
11 time 36.12ms
12 time 34.88ms
13 time 36.14ms
14 time 12.32ms
15 time 36.21ms
16 time 12.37ms
17 time 36.14ms
18 time 16.13ms
19 time 37.36ms- l2ping Wifi Désactivé + Slave Mode Actif:
0 time 12.92ms
1 time 12.36ms
2 time 12.39ms
3 time 12.40ms
4 time 13.65ms
5 time 11.15ms
6 time 12.40ms
7 time 12.40ms
8 time 12.42ms
9 time 12.39ms
10 time 12.40ms
11 time 12.40ms
12 time 12.40ms
13 time 12.40ms
14 time 12.41ms
15 time 12.40ms
16 time 12.40ms
17 time 12.40ms
18 time 12.40ms
19 time 12.40msEt pas de latence, ça fonctionne toujours aussi bien pendant les jeux!
-
@cycloid as tu pu faire des calculs de latence avec un dongle externe de bluetooth ?
-
Bonjour,
Super, enfin quelqu’un qui répond à une question que je pose depuis plusieurs années.
Beaucoup d’adeptes de Street Fighter 2 (ou de jeux de combat en général) que je connais sont passés en manette filaire tellement il est difficile d’enchainer Les coups spéciaux. C’est vraiment merdique.
J’ai testé sans wifi et effectivement, gros changement. Malgré ça c’est encore loin d’être parfait. Avec le dongle c’etait Bien pire. Bizarrement sur Pi1 on n’avait pas ce problème (ou on ne le ressentait pas).
L’integration dans Recalbox d’une solution serait le top.
Perso, Pi3 avec Bluetooth interne et manette 8bitdo SFC30 pro.Merci pour ce début de solutionnement.
-
Je n'ai pas de bol, l2ping ne répond sur aucun de mes pads bt ...
-
Je vais poser une question bête mais, quand on branche en usb une manette déjà associée en bluetooth, est-ce que le système continue à la considérer comme manette bluetooth ou la considère comme manette filaire :
en résumé, quand on joue, est-ce que les informations échangées entre la manette et l'emul passent par le cordon ou toujours par les ondes bluetooth ? -
@chacs j'ose espérer que ton pad coupe le BT dans ce cas, ce n'est pas Recalbox qui décide. Mais tu serais bien mal avisé de faire çà en cours de jeu
-
@stef salut ! Tu dis que la latence est pire en utilisant un dongle bt externe ?
-
@korangar avec des manettes PS3 Shanwan oui. Avec 8bitdo SFC 30 pro il n’y a pas de différence. Pourquoi? je ne sais pas.C’est incroyable la différence avec wifi activé ou non. Chez moi il demeure tout de même une latence malgré la coupure du wifi. Celle-ci reste gênante. En moyenne 40ms, bien trop pour enchaîner les coups spéciaux des jeux de combat.
-
@korangar Non, je n'ai pas pu faire le test avec un dongle externe.
-
merci beaucoup cycloid pour ce petit tuto qui m'a bien aidé.
j'ai fait l'acquisition d'une manette "P3" BT que j'ai pu associer sans trop de problème à mon RPi3. cependant, même Mario sur NES était injouable tellement le lag était présent...
de mon côté, la commande l2ping ne passe pas sur la manette reconnue comme ShanWan. par contre le passage en slave de celle-ci a nettement amélioré la latence !
est-il possible d'automatiser au démarrage le lancement de cette commande (script, fichier de config...) ou il faut attendre une maj Recalbox obligatoirement ? merci d'avance !
-
J'ai testé la commande l2ping sur une manette 8bit do N30 pro (v4.01) avec un pi3 et le Bluetooth intégré, celle-ci répond en 4 à 7ms sans rien modifier (wifi inactif) sur la version recalbox 17.12.02.
Pensez à mettre à jour le firmware de vos manettes en 4.01 "Fixed input lag problem when used with other controllers.".
Cela ressemble plus à un problème uniquement sur certaines manettes.
-
Vraiment intéressant !
Même remarque, test effectués avec la dernière version du FW des manettes ? -
Avec le wifi par contre cela monte effectivement à 40ms - 50ms chez moi contre 4-7 sans wifi.
-
Bonjour. Au delà du temps de réponse du Ping il existe une forte variation de ce même Ping quand on est en jeu et que l’on enchaîne les pressions sur boutons manette. Sur SNES 30 Pro avec firmware à jour toujours le même constat.
-
D**n juste sans le wifi c'est presque le jour et la nuit !
-
perso, pas de wifi (connection en RJ45), pas de problème ...
-
@nounourspsx je suis en rj45, et j'ai senti une diff
-
Bonjour,
Tout d'abord merci car la commande hcitool sr marche très bien, le passage en slave rends jouable les manettes DS3 en bluetooth.
J'aimerais automatiser le processus, car se connecter a chaque fois en ssh pour lancer la commande et passer la manette en slave, c'est lourd.
Du coup si vous savez comment faire, la j'ai créer un script que j'éxecute depuis ssh (qui ne contient que hcitool sr MAMAC slave) mais j'aimerais un script qui me lance cette commande dès qu'on connecte la manette en bluetooth.
Je n'ai qu'une manette, donc integrer seulement la commande au bon endroit. Le script parfait detecterai la MAC automatiquement, mais j'en ai pas vraiment besoin vu que j'ai qu'une manetteJ'ai fouiller un peu les regles udev, je pense que c'est par la qu'il faut travailler. Des spécialistes du script pour nous en pondre un qui lance la commande dès la connexion d'une manette avec la bonne MAC (et qui fait le café ) ??
Merci d'avance