Actualités / Jeux

Résoudre un problème Metroid Prime signifiait mettre un kit de développement GameCube dans un congélateur

In order to remedy an issue involving certain GameCube CPUs, Metroid Prime devs needed to put a dev kit in a freezer

À l’honneur Metroid Prime20e anniversaire de, ancien Retro Studios
L’ingénieur principal Zoid Kirsch a commencé à partager des histoires sur le développement du jeu. Cependant, la dernière histoire vient d’un autre membre de l’équipe. Ingénieur technique en chef Jack Mathews pris sur Twitter pour parler de la façon de réparer un Metroid Prime problème signifiait coller un kit de développement GameCube dans un congélateur.

La raison pour laquelle un congélateur s’implique dans le développement de jeux est due au fait que certains processeurs GameCube sont défectueux et ne jouent pas Metroid Prime correctement. Afin de mettre à jour le code, l’équipe devait résoudre le problème sur un kit de développement avec ce processeur. Cependant, il n’y en avait qu’un, et il ne pouvait être correctement testé que si l’appareil gelait. Finalement, l’équipe a corrigé le problème et Nintendo a envoyé une autre copie du jeu aux personnes qui ont appelé l’assistance.

Voici l’histoire complète de Mathews, compilée à partir du fil complet de huit tweets.

Metroid Prime Game Dev Story – Celui où nous avons frigorifié un GameCube.

Peu de temps après l’expédition de Prime, Nintendo nous a dit qu’un “mauvais lot” de processeurs GameCube avait été expédié, et apparemment Prime était le seul jeu qui s’est mal comporté avec eux. Nous avons vu des vidéos et il était clair ce qui se passait.

Tous les objets animés paniquaient. J’aborderai les raisons techniques plus tard, mais le fait était que nous devions ralentir une partie de notre code, car il fonctionnait trop vite pour que ces processeurs puissent le gérer ! Nous devions pouvoir tester cela, mais Nintendo n’avait qu’un seul kit de développement avec ce processeur. Nous ne pouvions pas détecter le processeur, et si nous le ralentissions trop, le framerate du jeu s’effondrerait. Si nous ne le ralentissions pas suffisamment, il y aurait un bug. Pire encore, nous avons dû graver des disques pour ce kit. Ainsi, chaque test durait des heures. Encore plus étrange était de voir le problème, le kit devait être froid. Comme, congélateur froid. Nous avons donc littéralement dû mettre le kit au congélateur, tester le jeu pendant 15 minutes maximum, puis tout recommencer. C’était fou.

Nous faisions littéralement fonctionner le kit du congélateur de la salle de pause au téléviseur, et chargeions les jeux de sauvegarde aussi rapidement que possible dans autant d’endroits que possible en 15 minutes, puis essayions un nouveau code, re-gelions et retour. Je ne l’oublierai jamais.

Trucs techniques : notre skinning a utilisé le DMA de cache verrouillé pour lire les données et le pipeline de collecte d’écriture pour les écrire. La plupart des échantillons de Nintendo utilisaient le cache verrouillé pour la lecture et l’écriture, donc ma méthode était un peu plus rapide. Mais il a également atteint les limites de la bande passante mémoire. Si je me souviens bien, le problème était que le canal de collecte d’écriture sur ces CPU cassés ne se bloquait pas lorsqu’il était plein ou signalait correctement son état, nous devions donc continuer à insérer des NOP dans le code pour le ralentir juste assez pour arrêter les blocages de passe, mais pas tellement pour ralentir le jeu.

Au cas où vous vous poseriez la question, lorsque quelqu’un a appelé l’assistance à propos de ce problème d’animation, Nintendo leur a en fait envoyé un nouveau disque de jeu avec ce code mis à jour ! C’est comme ça qu’on faisait des « patchs » à l’époque !

Metroid Prime est disponible pour la GameCube. Trilogie Metroid Prime peut être joué sur la Wii et la Wii U.