Super Mario 64 optimisé offre des possibilités passionnantes

Lorsqu’ils travaillent sur un projet logiciel, les développeurs doivent équilibrer la livraison à temps avec les optimisations. Tant que vous respectez les contraintes de temps souhaitées, pourquoi ne pas simplement l’expédier plus tôt ? Ce n’est pas un secret que Super Mario 64, un titre de lancement très attendu pour la console Nintendo 64 en 1996, avait encore beaucoup d’optimisations sur la table afin de le sortir à temps. Dans cet esprit, [Kaze Emanuar] a sondé les profondeurs du code, refactorisé et peaufiné jusqu’à ce qu’il ait une version avec de sérieux gains de performances.

Pourquoi quelqu’un passerait-il du temps à améliorer le code d’un ancien jeu qui ne fonctionne que sur du matériel sorti il ​​y a plus de deux décennies ? Il existe une communauté de modding saine pour le jeu, et bon nombre des niveaux les plus récents que les gens créent sont plus ambitieux que ce que le jeu original pouvait gérer. Mais avec les améliorations de performances qui [Kaze] a travaillé, votre budget pour des niveaux plus grands et plus complexes devient soudainement beaucoup plus important. De plus, la rumeur dit qu’un mode multijoueur était initialement prévu pour le jeu, mais Nintendo a dû abandonner la fonctionnalité lorsqu’il a été constaté que la fréquence d’images lors du rendu de deux caméras n’était pas à la hauteur. Grâce à ces optimisations, le jeu peut désormais gérer facilement deux joueurs.

Luigi attend depuis 26 ans sa chance de briller.

[Kaze] a un plan en plusieurs étapes pour améliorer les performances impliquant l’alignement de la RAM, les optimisations du compilateur, les améliorations du rendu, les optimisations de la physique et la réduction générale de la « jankiness ». Pour être juste envers les développeurs de Nintendo, à l’époque, ils travaillaient avec du tout nouveau matériel et repoussait les limites de ce dont les consoles de salon étaient capables. Les logiciels de modélisation, les chaînes d’outils, les compilateurs et les autres infrastructures de support se sont considérablement améliorés au cours des 20 dernières années. En cours de route, nous avons appris de nombreuses astuces autour du rendu qui n’étaient tout simplement pas aussi courantes à l’époque.

Le thème central de [Kaze]Le travail de consiste à optimiser l’utilisation de Rambus. Comme le RCP et le CPU doivent le partager, le but est d’avoir le moins de conflits possible. Cela signifie disposer des éléments pour améliorer la capacité de mise en cache et demander au compilateur de générer un code plus petit plutôt qu’un code plus rapide (pas de déroulement de boucle ici). De plus, certaines structures de données peuvent être placées dans des régions particulières de la mémoire qui sont en écriture seule ou en lecture seule pour améliorer la contention des ressources. Les bugs de logique sont corrigés et les techniques de rendu ont été améliorées. Les premiers résultats sont assez impressionnants, et même s’il n’a pas terminé, nous sommes très impatients de jouer avec le produit final.

Alors que la Nintendo 64 est en passe de devenir une plate-forme Linux prise en charge par le grand public, l’ancienne console connaît certainement beaucoup d’amour ces jours-ci.