Délai d'entrée sur les consoles et émulateurs rétro



TL; DR L'article décrit le problème de décalage d'entrée connu, qui se manifeste lorsque vous essayez de jouer à d'anciens jeux sur du matériel moderne: émulateurs de consoles rétro, manettes de jeu Bluetooth, etc. Parfois, les retards sont si importants qu'il devient impossible de jouer. Je décrirai ma façon de trouver une configuration acceptable pour exécuter mes jeux préférés.

Avec la vague de popularité des ordinateurs monocarte RaspberryPi, OrangePi de nombreuses connaissances se sont acheté des paquets d'entre eux. Sans décider quoi faire avec eux, ils ont commencé à sculpter à partir d'eux une console rétro basée sur l'émulateur RetroArch et la distribution Recallbox. Lorsque j'ai essayé de jouer à mes jeux d'enfance préférés à ce sujet, j'ai été surpris: " Comment pourrais-je jouer à cela? " La physique des jeux semblait quelque peu fausse, le sentiment était dégoûtant. Après un certain temps, ils m'ont dit que tout le problème est le retard d'entrée, qui à première vue ne ressemble pas à un retard, à savoir, comme d'autres physiques.

Il s'est avéré que le problème est connu depuis longtemps parmi les geeks de la console et fait l'objet d'une enquête active. Je vais analyser les études des autres et essayer de mesurer le retard de ma configuration.

Quel est le problème?


Le délai d'entrée est le temps entre le moment où le bouton du contrôleur est enfoncé et la réaction du personnage à l'écran. Ici, de nombreux facteurs jouent un rôle à la fois:

  • Retard moniteur / TV - Certains tĂ©lĂ©viseurs modernes ont un retard de sortie d'image de plus de 100 ms. Cela est dĂ» au post-traitement de l'image, Ă  la mise en mĂ©moire tampon, aux filtres, etc. Ici, vous pouvez voir une comparaison des tĂ©lĂ©viseurs CRT et LCD avec une latence Ă©levĂ©e. En règle gĂ©nĂ©rale, les fabricants de moniteurs indiquent la vitesse de la matrice dans les spĂ©cifications, se rĂ©fĂ©rant Ă  la vitesse de commutation entre les couleurs, mais cela n'a pas Ă  voir avec le retard dans la sortie de l'image.

    Un signal analogique du décodeur sur deux téléviseurs. Il y a un retard important sur le téléviseur LCD par rapport au CRT.
  • Retard informatique - une console de jeux ou un ordinateur avec un Ă©mulateur ne traite pas le signal instantanĂ©ment, cela prend du temps. L'ordinateur doit recevoir un signal du pĂ©riphĂ©rique d'entrĂ©e, le traiter et afficher l'image Ă  l'Ă©cran. Le retard est Ă©galement introduit par la synchronisation verticale de l'image lorsqu'elle est affichĂ©e Ă  l'Ă©cran. Ici , les dĂ©veloppeurs de RetroArch essaient de rĂ©soudre ce problème.

    Démonstration d'un gros retard sur l'émulateur. Vidéo Denis Major
  • DĂ©lai du contrĂ´leur - Le pĂ©riphĂ©rique d'entrĂ©e peut Ă©galement introduire un retard. Par exemple, si connectĂ© Ă  un bus USB chargĂ©, via Bluetooth, etc.

Emulateurs


Tout le monde veut jouer sur du matériel moderne, des téléviseurs et des moniteurs normaux avec HDMI, et également exécuter tous les jeux possibles sur un seul appareil. Pour cela, des émulateurs de consoles populaires fonctionnant sur des ordinateurs X86 ou ARM ordinaires sont utilisés. Voici les plus populaires:

Retroarch



L'émulateur le plus populaire et le plus avancé. Capable d'émuler PlayStation1, SNES, NES, GameBoy, Sega Genesis / CD et autres consoles. Il fonctionne sur les OS de bureau Windows, Linux, MacOS et sur les consoles modernes Xbox, Android, PlayStation2 / 3/4 / Vita, Nintendo Wii / Switch et autres . Sur cette base, le kit de distribution Recallox populaire est fabriqué .

Openemu


image
Émulateur très pratique et simple pour macOS. Il prend en charge les consoles les plus populaires et dispose d'une galerie de jeux pratique triée par plate-forme. Prêt à l'emploi, il prend en charge les manettes de jeu Playstation 4 via Bluetooth. Il est inférieur en capacités à RetroArch, mais à mon goût, il est beaucoup plus pratique à utiliser. Pour mes mesures, je vais l'utiliser, car il fonctionne immédiatement sur macOS sans perdre les paramètres de la manette de jeu. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Procédure de mesure


La façon la plus abordable de mesurer le retard est d'enregistrer sur l'écran vidéo et au moment où vous appuyez sur le bouton du joystick. Les smartphones modernes tournent facilement des vidéos à 240 FPS ou plus, ce qui est assez suffisant pour les mesures. Pour enregistrer avec précision le moment de la pression, vous pouvez souder la LED aux contacts du bouton, qui s'allumera au moment de la pression. La LED s'allume en nanosecondes, ce qui vous permet de capturer avec précision le moment de la pression.

Brunnis du forum du projet libretro a fait beaucoup de recherches sur le décalage d'entrée. Je considère ses études comme les plus complètes et les plus objectives.

image
Manette de jeu USB avec LED soudée pour capturer le moment où le bouton est enfoncé

image
Bouton non enfoncé

image
Bouton enfoncé

image
L'animation à l'écran démarre après 24 images (100 millisecondes)

Formule de calcul


En une seconde, 1000 millisecondes.
La caméra du téléphone tourne à 240 images par seconde.
Donc 1 image de vidéo = 1000/240 = 4,16 ms.

Il est également important de prendre en compte la fréquence d'images à laquelle le moniteur et l'ordinateur fonctionnent. Par exemple, pour un mode de fonctionnement de 30 ips, une image du moniteur sera de 33 ms et pour 60 ips - 17 ms. Ceci doit être pris en compte, car le temps entre les images ne peut pas être inférieur à ces valeurs, ce qui signifie que les événements se produisant pendant la période de mise à jour des images sur le moniteur seront arrondis à la dernière image.

Je ne donnerai pas ici tous les résultats des mesures du mec, qui souhaite suggérer de se familiariser par lui-même.
La principale chose à retenir: les consoles d'origine avaient un retard moyen de 50 à 70 ms, selon la console et le mode PAL / NTSC. Un émulateur PC bien réglé ajoute 60 à 80 ms de retard, selon la plate-forme émulée. L'émulateur Raspberry Pi peut avoir jusqu'à 150 ms de retard au total.

Mes recherches


Enfant, j'avais une Sega Mega Drive, ce sont ses jeux qui provoquent la plus forte nostalgie. Par conséquent, je décrirai ma recherche d'une configuration confortable spécifiquement pour cette console. Je veux dire tout de suite que mes recherches ne prétendent pas être une précision de mesure absolue.

Mes exigences:

  • Manettes de jeu sans fil - les geeks de la console peuvent me condamner, mais je veux jouer confortablement assis sur le canapĂ© dans n'importe quelle position. Les manettes de jeu câblĂ©es sont terriblement gĂŞnantes, tout le monde les blesse et vous ne jouerez pas longtemps.
  • Sortie via HDMI ou DisplayPort - il n'y a pas d'entrĂ©es analogiques sur mon moniteur, donc je ne peux pas acheter le Sega Mega Drive d'origine. Les adaptateurs USB pour la capture vidĂ©o analogique introduisent leur retard et sont peu pratiques. Je ne veux pas non plus acheter un tĂ©lĂ©viseur CRT sĂ©parĂ© pour le dĂ©codeur

Macbook + Dualshok 4 + OpenEMU


J'aime vraiment la gamestation de Playstation 4, je la considère comme la plus pratique des manettes de jeu existantes. Il peut fonctionner à la fois via Bluetooth et via USB. Entièrement pris en charge dans OpenEMU prêt à l'emploi sans paramètres.


Malgré toute la commodité d'OpenEMU, son principal problème est le rabattement FPS en mode plein écran. Je ne suis pas sûr de la raison, et peut-être que cela est en train de se réparer, mais cela n'a pas fonctionné pour moi. Par conséquent, je joue en mode fenêtré.


Interface de l'émulateur OpenEMU. Tous les jeux sont triés par plateforme.

Mesures


Je ne voulais pas dissocier la gamestation de la Playstation pour souder la LED, j'ai donc dû faire le compte à rebours de la pression des boutons par le son. L'erreur de cette méthode est d'environ 8 à 10 ms. Le moniteur utilise le LG 24UD58 en mode 4K @ 60fps connecté au MacBook via DisplayPort. Jeu Contra Hard Corps.


Le retard sur le MacBook avec un contrôleur Dualshock4 connecté via Bluetooth est d'environ 150 ms. C’est beaucoup!
MacBook + Dulashock donne environ 150 ms de retard. C'est beaucoup pour un jeu confortable, un tel retard est perceptible et les plateformes hardcore comme Contra Hard Corps jouent mal Ă  l'aise.
Malgré le fait que le retard dans un tel paquet est impardonnablement important, il mérite toujours le droit à la vie. Puisqu'il suffit de jeter une manette de jeu dans le sac à dos à l'ordinateur portable, et d'obtenir une console de jeu n'importe où. Même avant les mesures, il était clair pour moi que ce n'était pas la meilleure option et j'ai poursuivi la recherche.

Clone Sega Genesis


Maintenant, de nombreux clones de pirates différents de consoles rétro avec des jeux pré-installés sont vendus. Certains d'entre eux sont constitués de décodeurs Android avec des émulateurs de console à l'intérieur, ce qui signifie qu'ils souffrent des mêmes problèmes de retard. Mais certains promettent une console complète sans émulateur . J'ai trouvé cette console sur Avito pour tondre: modèle retrogenesis.ru Retro Genesis HD Ultra. Ils écrivent sur le site que ce n'est pas un émulateur, mais à l'intérieur se trouve vraiment une console matérielle. Il existe des jeux préinstallés et la possibilité d'insérer des cartouches. En même temps, il y a une sortie HDMI et des manettes de jeu sans fil!


Manettes de jeu sans fil


Surtout, j'étais gêné par les manettes de jeu fonctionnant à 2,4 GHz. Connaissant les problèmes de bluetooth et de WiFi dans cette gamme, la première chose que j'ai essayée a été de mesurer le retard des gamepads eux-mêmes. La console prend en charge la connexion simultanée de manettes de jeu filaires et sans fil. Il s'est avéré que la partie sans fil a été réalisée à l'aide d'un module séparé, qui ferme les contacts de la même manière qu'une manette de jeu filaire. Autrement dit, il émule un filaire ordinaire avec le même brochage.

image
Un module radio qui émule les clics de manette filaire

J'ai connecté la sonde de l'oscilloscope 1 à la LED du contrôleur et l'autre à la broche correspondant à la touche Haut de la console. Lorsque le signal est traité par le module radio, il simule une frappe, et je le verrai sur la sonde 2. En comparant la différence de temps entre les signaux 1 et 2, je pourrais obtenir très précisément le retard que la manette sans fil ajoute. Sur un oscilloscope, l'échelle d'une cellule est de 5 ms, ce qui signifie que le retard des manettes de jeu sans fil est de 25 ms.


Comparaison des signaux sur la manette de jeu et la console


Le module sans fil ajoute un retard de 25 ms

Mesures



Retard sur Sega Retro Genesis d'environ 70 ms

En soustrayant 25 ms de retard du module radio, il s'avère que la console elle-même a un retard de 50 ms, ce qui correspond à la Sega d'origine. Lors de la connexion de manettes de jeu filaires, le délai sera évidemment inférieur de 25 ms. En général, le gameplay ressemble à celui de la console d'origine, et je suis satisfait. Seule l'impossibilité de télécharger mes jeux (ROM) me dérange, mais je vais essayer de résoudre ce problème avec une cartouche réinscriptible, ou essayer de trouver moi-même la possibilité de télécharger des jeux sur le lecteur flash intégré.

Conclusion


Mes mesures ne prennent pas en compte le retard de sortie du moniteur, mais toutes les mesures ont été prises sur le même moniteur, donc cela n'affecte pas les résultats. Chaque mesure que j'ai répétée 10 fois, obtenant parfois une propagation dans des lectures d'environ 4 images, soit 16 ms. Je crois que le point est le retard dans la synchronisation verticale lors de la formation d'une image sur la console.

En général, je pense que mes mesures donnent une idée générale des retards sur les deux configurations et peuvent être utiles à ceux qui choisissent une méthode.

Option Runahead sur RetroArch


Il y a un an, les développeurs de RetroArch ont annoncé qu'ils avaient enregistré moins de retards sur leur émulateur que sur les consoles d'origine. Je n'ai pas essayé cette option moi-même, mais il faut la garder à l'esprit.

Les références


Merci à Denis Major pour ses recherches. Grâce à cette vidéo, j'ai tout d'abord découvert que le problème n'est pas dans la physique modifiée des jeux, mais dans les délais d'entrée.

Beaucoup de recherches sur les retards entre plates-formes .

Une autre étude .

Neurone spatial Pro Hux



Dans notre Hackspace Neuron, nous jouons régulièrement des consoles rétro, inversons le fer et faisons bien d'autres choses. Avec nous, vous pouvez utiliser un fer à souder, un oscilloscope, un analyseur de fréquence et discuter avec des nerds drôles. Venez visiter.

Toute l'actualité de la vie d'Huxpeys sur la chaîne télégramme: @neuronspace

Source: https://habr.com/ru/post/fr446990/


All Articles