Arregla la ralentización generalizada en Gradius III de SNES 28 años después

Gradius III (SNES) - Original x SA-1 Comparison

Muchos jugadores de cierta edad recuerdan la decepción de principios de los 90 de comprar el Shoot ’em up Gradius III en su versión SNES. Capturas de pantalla en revistas con enormes y coloridos sprites del juego eran un espectáculo digno de contemplar, comparable al arcade original de 1989. En acción, sin embargo, cualquier escena con más de un puñado de enemigos se ralentizaría hasta convertirse en una ralentización prácticamente inaceptable en el hardware SNES.

Ahora, el hacker brasileño de ROM Vitor Vilela ha corregido este error de casi tres décadas de antigüedad con un parche de la ROM que crea una nueva versión libre de ralentización del juego para jugar en emuladores SNES y hardware estándar.

La clave de los esfuerzos de Vilela es el chip SA-1, un coprocesador de mejoras que se encontró en algunos cartuchos SNES de los últimos tiempos, como Super Mario RPG y Kirby Super Star. Además de tener una velocidad de reloj más rápida que la CPU SNES estándar (hasta 10,74 Mhz frente a 3,58 Mhz para la CPU), SA-1 también abre funciones matemáticas más rápidas, manipulación de gráficos mejorada y capacidades de procesamiento paralelo para los programadores SNES.

Vilela ha estado trabajando durante meses con hardware de desarrollo SA-1 antiguo y herramientas de desarrollo modernas para documentar el funcionamiento interno del chip y los mapeos. A partir de esta semana, Vilela dice que los trabajos en Gradius III pueden considerarse ahora “estables” y que puede comenzar “la nueva era SA-1”.

https://twitter.com/HackerVilela/status/1120821382701621253

A diferencia de los chips especiales como el conocido Super FX, el SA-1 tiene la misma arquitectura que el núcleo de la CPU SNES, lo que facilita la transferencia de código escrito para el sistema base. Pero eso no significa que puedas añadir el chip a cualquier ROM del juego y obtener un aumento instantáneo de velocidad. Vilela comenta que se necesitaron «tres meses de investigación, desensamblado, análisis de código, remapeo de memoria y edición de código» para llegar a este punto. El parche «cambia la mayoría de las estructuras de datos[y] punteros y finalmente crea un sistema intermedio para llamar al SA-1 para las rutinas más intensivas y al SNES para las rutinas de interacción PPU/APU y la actualización V-blank».

El resultado, como se puede ver en los videos de comparación que aquí se incluyen, es una versión de Gradius III que, según Vilela, se ejecuta dos o tres veces más rápido que el original. También mantiene su suave y sedosa velocidad de fotogramas, sin importar cuántos sprites detallados y llenos de pantalla desordenen la escena. Esto es incluso cierto en el famoso juego, lleno de burbujas, Stage 2, que se transforma de una nerviosa presentación de diapositivas en un asombroso escaparate de la potencia mejorada de la SNES. Como si esto no fuera suficiente, el parche incluso acorta los tiempos de carga del juego, reduciendo en 3,25 segundos la animación de inicio notablemente lenta.

Aunque es impresionante desde el punto de vista técnico, se podría decir que este parche arruina la forma en que se diseñó el juego de Gradius III. Vilela señala que la falta de ralentización «lo hace increíblemente súper difícil» e incluso sugiere que «algunos segmentos de arcade del juego no parecen RTA (acción en tiempo real) viables con SA-1″. Pero no debemos subestimar las capacidades humanas».

El hardware de SNES real no tiene ningún problema con el SA-1 con Gradius III parcheado, incluso cuando se utiliza una herramienta como SD2SNES. Pero mientras Vilela dice que «los emuladores SNES más actualizados, incluyendo bsnes y Snes9x» funcionarán con la versión parcheada del juego, los emuladores como ZSNES no son compatibles.

Con el trabajo de base en marcha, Vilela ya está recibiendo solicitudes para otros juegos SNES propensos a la desaceleración que podrían beneficiarse del tratamiento de portabilidad SA-1. Por ahora, sin embargo, dice que volverá a trabajar en Touhou Mario World 2, que es una versión «bullet hell» del juego de plataformas que muestra las capacidades del SA-1.

Siguiendo los pasos de un reciente «mod de emulación HD» que mejora la claridad de los juegos SNES «Mode 7», tenemos que preguntarnos qué otras mejoras puede aportar la comunidad de hacking moderna a la era de los juegos de 16 bits.

Fuente Original