Rapport d'activité de Dolphin en Août 2021

Les mises à jour / avancer de l'émulateur gamecube et wii


Les développeurs participant aux projets open source Dolphin, le célèbre émulateur de jeu Gamecube et Wii ont mis en ligne toute les modification apporté a ce dernier lors de ce mois d'Aout 2021, les informations seront simplifié pour ne mettre que l'essentiel, au vu de la quantité d'information notamment.

Changelog :

5.0-14795 - JIT : Correction de la commande de négation de FMA par JosJuice

Inazuma Eleven GO : Strikers 2013 est la dernière version Wii de la série de jeux de football Inazuma Eleven. Avec des tonnes de personnages, de mouvements spéciaux et un long mode histoire RPG où vous construisez votre équipe de football, faites évoluer vos personnages et battez vos adversaires, il y a beaucoup à aimer dans ce jeu. À tel point qu'il est devenu culte dans le monde entier, bien qu'il ne soit sorti qu'au Japon. Il existe des traductions de fans, une scène de tournois active avec des affrontements entre pays, et même une "Coupe du monde" !

5.0-15009 - IOS/Réseau : Rendre la résolution de nom asynchrone par sepalani

Lors du test de la fonction en ligne pour Inazuma Eleven GO : Strikers 2013, Mario Kart Wii et d'autres jeux supportés par le WiFi sur des serveurs de secours comme Wiimmfi, il a été noté que la connexion initiale présentait des bégaiements très importants. Comme les fonctionnalités en ligne étaient de toute façon testées en raison des problèmes de WiFi d'Inazuma Eleven, c'était l'occasion idéale de tester le changement apporté par sepalani pour gérer de manière asynchrone la résolution des noms de domaine. En effectuant l'opération sur un thread séparé, les bégaiements lors de la connexion à un jeu en Wi-Fi sont complètement atténués.

5.0-14810, 5.0-14848, et 5.0-15105 - GameINI : "Heavy Iron Studios" Jeux Changements de qualité de vie par la communauté et les développeurs

En tant que développeur de jeux sous licence pour les consoles de sixième génération, il est difficile d'avoir un meilleur héritage que Heavy Iron Studios. L'un de leurs jeux, SpongeBob Squarepants : Battle for Bikini Bottom est un classique culte qui a été suffisamment populaire pour faire l'objet d'un remake HD sur les consoles modernes, et leurs autres jeux vont du plus compétent au plutôt bon. Dans l'ensemble, ce sont des jeux amusants qui exploitent bien la propriété intellectuelle et offrent des expériences agréables avec des personnages bien connus.

Comme ces jeux de licence ont une assez grande fanbase, les utilisateurs ont voulu y jouer dans Dolphin avec les nombreuses améliorations que l'émulation fournit. Malheureusement, il y avait quelques limitations. Dolphin pouvait émuler ces jeux correctement... mais l'amélioration la plus puissante qu'il offre ne fonctionnait tout simplement pas bien. L'augmentation de la résolution interne a entraîné de graves problèmes graphiques, verrouillant essentiellement ces jeux à la résolution native. Ce n'est pas une sorte de bug dans Dolphin, non plus ! La plupart des jeux de Heavy Iron Studios sont construits d'une manière qui fait qu'ils ne peuvent pas être joués dans des résolutions plus élevées en raison des astuces utilisées pendant le rendu, du moins pas sans un peu d'astuce de la part des utilisateurs et des développeurs d'émulateurs.

5.0-14812 - Convertir NaN en 1 lors de la génération des coordonnées de texture par Pokechu22

Lorsqu'ils ne sont pas harcelés pour aider à la rétro-ingénierie d'autres jeux, Pokechu22 est connu pour se plonger dans certains des problèmes graphiques les plus étranges qui affectent Dolphin. Celui-ci a attiré leur attention sur le traqueur de problèmes car il s'agissait d'un problème avec littéralement aucune piste. Shadow the Hedgehog, un jeu que tous les fans de Sonic adorent, avait des problèmes de rendu des paupières, surtout pendant certaines scènes. Heureusement, le testeur a fourni un Fifolog du bug. Pokechu22 a analysé le Fifolog et a découvert que les paupières avaient une coordonnée de texture de NaN (Not a Number). Comme cela semblait incroyablement faux, ils ont décidé de lire le Fifolog en utilisant le Hardware Fifoplayer et ont trouvé quelque chose de très intéressant.

5.0-14829 - PowerPC : Implementé Broken Masking Behavior et Uncached Writes par JosJuice avec l'aide de eigenform, delroth, phire, marcan, segher, Extrems, et Rylie

Il est difficile de trouver un plus grand casting de développeurs d'émulateurs GameCube/Wii et de rétro-ingénieurs pour un changement. Ce qui les a réunis n'était pas un bug massif dans Dolphin ou un problème affectant des centaines et des centaines de jeux. Ce qui les a réunis était un étrange bug matériel, et de trouver comment le tester et finalement l'émuler. Ce bug matériel est en fait connu depuis un certain temps, mais il a été ignoré car il n'y avait pas de cas d'utilisation dans un jeu de détail ... jusqu'à présent.

Il est désormais bien connu que les jeux Zelda sur N64 sont incroyablement défectueux. Avec l'Arbitrary Code Execution (ACE), les joueurs écrivent littéralement du code en mémoire et le jeu l'exécute pour leur permettre d'aller directement au générique. Grâce à cela, les speedruns de la version N64 d'Ocarina of Time sont passés sous la barre des dix minutes. Malheureusement, jusqu'à présent, ACE n'est pas possible sur les versions Virtual Console d'Ocarina of Time et de Majora's Mask, ce qui a laissé les joueurs à la recherche d'alternatives et de nouvelles idées.

Un développement passionnant, découvert à l'origine par MrCheeze, est connu sous le nom de LightNode SRM. Il s'agit d'une méthode plus puissante de manipulation de références périmées (plus connue sous le nom de Use-After-Free ou UAF en tant que vulnérabilité logicielle) qui fonctionne mieux sur les versions de la console virtuelle et qui est assez rapide à mettre en œuvre. Elle fonctionne à la fois dans Ocarina of Time et Majora's Mask et est maintenant utilisée dans l'itinéraire le plus rapide dans OoT Any% !

5.0-14844 - Implémentation des mises à jour tardives de VI par Techjar et phire

Une grande partie du travail de Dolphin autour de la sortie des images a à voir avec le fait de faire fonctionner les choses avec le moins de latence possible. Alors que de nombreux jeux rendent les choses simples en utilisant la configuration par défaut de l'interface vidéo (VI) et permettent à Dolphin de tromper la plupart des émulations XFB et de réduire la latence au-delà de ce qui est possible sur console, de nombreux jeux font des configurations VI plus complexes. Cela oblige Dolphin à faire la bonne chose et à émuler réellement la procédure de scanout. Même en faisant cela, Dolphin triche toujours un peu en sortant la copie XFB avec les paramètres qu'il a au début d'un champ plutôt que de les appliquer tout au long du processus de numérisation de la copie XFB. Cela permet d'économiser ~16ms de latence, et on pensait qu'il était globalement supporté... jusqu'à ce que WWE Crush Hour apparaisse.

5.0-14866 - D3D12 - Correction du décodage de la texture du GPU sur AMD par K0bin

Un nouveau contributeur au projet, K0bin a remarqué une barrière de mémoire manquante dans le backend D3D12 de Dolphin qui pourrait causer des problèmes avec le décodage de texture GPU. Alors que les pilotes NVIDIA n'étaient pas affectés (probablement en raison de l'ignorance des transitions d'état comme ils le font pour la mise en page de l'image dans Vulkan), l'activation du décodage de texture GPU sur les cartes AMD causait de sérieux problèmes et des crashs. Il s'agit d'une modification d'une ligne qui corrige l'oubli.

5.0-14821, 5.0-14833, 5.0-14897 et 5.0-15019 - Correction des performances de l'invalidation de dcbx sans tout casser cette fois par AdmiralCurtiss et JosJuice

Si vous avez suivi le développement des builds le mois dernier, vous avez peut-être remarqué une tendance avec les changements dcbx (data cache invalidate/flush/zero etc.). Notre objectif était de rendre les grandes invalidations rapides et correctes, mais il s'est avéré difficile d'obtenir les deux en même temps. À la fin du dernier rapport d'avancement, nous pensions avoir trouvé une solution simple à la régression des performances concernant diverses instructions de vidage/invalidation du cache de données. Tout semblait fonctionner correctement dans les deux cas cassés, et les développeurs pensaient que la saga avait atteint sa fin. Comme nous avons été stupides.

Après le lancement du rapport d'avancement, les rapports de problèmes ont commencé à affluer, la série la plus touchée semblant être celle de Mario et Sonic aux Jeux olympiques. Les premières analyses ont révélé que les choses allaient très, très mal. Le JIT x86-64 de Dolphin se comportait mal et traduisait deux fois l'adresse pendant dcbx et sautait donc au mauvais drapeau. Le masquage était également cassé dans les deux JITs de Dolphin, laissant un certain nombre de jeux cassés à la fin du mois.

JosJuice et AdmiralCurtiss ont fait équipe pour corriger rapidement les JITs et remettre les choses en marche dès que possible. JosJuice s'est concentré sur la correction du comportement de masquage dans le JIT AArch64 et AdmiralCurtiss a fait quelques changements plus importants au JIT x86-64 pour s'assurer que Dolphin passerait toujours les instructions dcbx à la bonne adresse effective.

Grâce à leur travail rapide, tout fonctionnait à nouveau correctement en moins de deux semaines. Cependant, ces corrections ont eu un coût plutôt ironique. Ces changements ont effacé les gains de performance du dernier rapport d'avancement, ce qui signifie qu'Arc Rise Fantasia et les autres jeux qui invalident de grandes zones de mémoire en une seule fois avaient à nouveau des problèmes de performance. En termes simples, la situation n'était pas très bonne et il y avait du travail à faire.

Les contributeurs du mois dernier...
Un grand merci à tous les contributeurs qui ont incrémenté Dolphin de 5.0-14790 à 5.0-15105 !

Plus de détail sur le blog de Dolphin avec bien plus de détail sur chacune de c'est modification / correctif : dolphin progress report august 2021
Lien de téléchargement de Dolphin : Dolphin-emu.org


Veuillez vous connecter ou vous créer un compte pour commenter cet article !


Il n'y a aucun commentaire pour le moment.