Ejecutar cada línea de código de Super Mario Bros.: el reto de leer los 32.768 bytes de la ROM

Fuentes: Can you run every line of code in Super Mario Bros.?

El canal de YouTube 100th Coin plantea en un vídeo de 17 minutos un experimento técnico sobre Super Mario Bros. para NES: conseguir que la CPU del juego ejecute la totalidad de las instrucciones y lea cada byte de su ROM, un concepto que el autor bautiza como "ROM Maxxing".

La ROM del cartucho original contiene 32.768 bytes, de los cuales 22.790 corresponden a instrucciones de la CPU y el resto a datos como niveles, música o animaciones. El reto parte de una idea sencilla: una partida al 100 % suele consistir en completar un listado arbitrario de acciones —jugar niveles opcionales, derrotar jefes prescindibles, recoger objetos innecesarios— pero, ¿se ha hecho realmente de todo si nunca aparece la pantalla de Game Over? El autor se propone como checklist los 32.768 bytes completos.

El vídeo recorre la ejecución del código mientras se ilumina en pantalla cada línea y byte leídos por fotograma. Solo encender la consola ya activa cerca del 16 % de la ROM; dejar correr la demo de la pantalla de título eleva la cifra hasta el 31,9 % sin pulsar un solo botón. A partir de ahí, la ejecución exige recorrer todas las salas, provocar game over como Mario, completar la segunda partida como Luigi y planificar cómo activar comportamientos opcionales: esperar a que las plataformas oscilantes y los Paratroopas rojos completen su ciclo de oscilación, detenerse para que los Cheep Cheeps voladores desplieguen sus 16 posiciones y 12 velocidades aleatorias, o dejar huecos en los seis slots de sprites para que Lakitu ejecute su rutina de reaparición.

El análisis también documenta código considerado inalcanzable. Por ejemplo, existe una instrucción BMI que solo se ejecutaría si un slot de sprite estuviera simultáneamente libre y todos los demás ocupados, algo lógicamente imposible durante el juego normal. La única vía documentada para forzar su ejecución sería la ejecución de código arbitrario, pero el autor prohíbe expresamente manipular el puerto del cartucho. Otro caso curioso es el de la bandera del mástil: ocupa siempre el último slot de sprite, aunque la banderita final puede sobrescribirlo si no hay ningún hueco libre, lo que permitiría provocar una mecánica atípica en el juego.