Noticias

Arreglar una falla de Metroid Prime significaba poner un kit de desarrollo de GameCube en un congelador

Para solucionar un problema relacionado con ciertas CPU de GameCube, los desarrolladores de Metroid Prime necesitaban poner un kit de desarrollo en un congelador.

En el punto de mira Metroid Prime20 aniversario de los antiguos Retro Studios
El ingeniero jefe Zoid Kirsch ha comenzado a compartir historias sobre el desarrollo del juego, sin embargo, la última historia proviene de otro miembro del equipo. Ingeniero técnico jefe Jack Mathews atrapado en twitter para hablar sobre cómo arreglar un Metroid Prime problema significaba meter un kit de desarrollo de GameCube en un congelador.

La razón por la que Freezer se involucra en el desarrollo de juegos es porque algunos procesadores de GameCube están defectuosos y no funcionan. Metroid Prime adecuadamente. Para actualizar el código, el equipo necesitaba solucionar el problema en un kit de desarrollo con este procesador. Sin embargo, solo había uno, y solo podía probarse adecuadamente si el dispositivo se congelaba. Finalmente, el equipo solucionó el problema y Nintendo envió otra copia del juego a las personas que solicitaron asistencia.

Aquí está la historia completa de Mathews, compilada a partir del hilo completo de ocho tweets.

Metroid Prime Game Dev Story: aquella en la que refrigeramos una GameCube.

Poco después del envío de Prime, Nintendo nos dijo que se había enviado un "lote defectuoso" de procesadores de GameCube y, aparentemente, Prime fue el único juego al que le fue mal con ellos. Vimos videos y estaba claro lo que estaba pasando.

Todos los objetos animados entraron en pánico. Llegaré a las razones técnicas más adelante, pero el hecho fue que tuvimos que ralentizar parte de nuestro código porque se estaba ejecutando demasiado rápido para que lo manejaran esos procesadores. Necesitábamos poder probar esto, pero Nintendo solo tenía un kit de desarrollo con este procesador. No podíamos detectar la CPU y, si la ralentizábamos demasiado, la velocidad de fotogramas del juego colapsaba. Si no lo ralentizáramos lo suficiente, habría un error. Peor aún, tuvimos que grabar discos para este kit. Así, cada prueba duró horas. Aún más extraño fue ver el problema, el kit debe haber estado frío. Como, congelador frío. Así que, literalmente, tuvimos que poner el kit en el congelador, probar el juego durante hasta 15 minutos y luego comenzar de nuevo. Fue loco.

Estábamos literalmente ejecutando el kit desde el congelador de la sala de descanso hasta el televisor, y cargando juegos guardados lo más rápido que pudimos en tantos lugares como pudimos en 15 minutos, luego probamos un nuevo código, volvimos a congelar y regresamos. Nunca lo olvidaré.

Cosas técnicas: nuestro skinning usó el DMA de caché bloqueado para leer los datos y la canalización de recopilación de escritura para escribirlos. La mayoría de las muestras de Nintendo usaban caché bloqueada para leer y escribir, por lo que mi método fue un poco más rápido. Pero también alcanzó los límites del ancho de banda de la memoria. Si no recuerdo mal, el problema era que el canal de recopilación de escritura en estas CPU rotas no se bloqueaba cuando estaba lleno o no informaba su estado correctamente, por lo que tuvimos que seguir insertando NOP en el código para ralentizarlo lo suficiente como para detener el paso de bloques, pero no tanto para ralentizar el juego.

En caso de que te lo estés preguntando, cuando alguien llamó al servicio de asistencia por este problema de animación, ¡Nintendo les envió un nuevo disco de juego con este código actualizado! ¡Así hacíamos "parches" en su momento!

Metroid Prime está disponible para GameCube. Trilogía de Metroid Prime Se puede jugar en Wii y Wii U.