Se descubre nuevo código en NES Tetris
- Hackers descubrieron una forma de reprogramar NES Tetris desde dentro del juego
- Este método podría ayudar a quienes persiguen puntajes altos a evitar el crash de fin de partida
Cómo ejecutar código
- Aprovechando la "kill screen" de NES Tetris, es posible programar nuevos comportamientos en la versión de Tetris que corre en hardware y cartuchos sin modificar mediante un método complejo de manipulación de memoria
- También se han descubierto glitches similares de "ejecución arbitraria de código" en juegos como Super Mario World, Paper Mario y The Legend of Zelda: Ocarina of Time
- La forma básica de introducir código externo en NES Tetris ha sido teorizada públicamente al menos desde 2021
- Este método explica en detalle cómo hacer que Tetris empiece a leer su tabla de puntajes altos como instrucciones de código máquina
Diversión usando los puertos del control
- El crash de NES Tetris ocurre cuando el procesador de puntaje del juego tarda demasiado en calcular una nueva puntuación entre cuadros
- Cuando ocurre esta demora, parte del código de control es interrumpido por la rutina de escritura del nuevo cuadro y termina saltando a una parte no prevista de la RAM para buscar la siguiente instrucción
- Gracias a la forma en que Tetris procesa entradas potenciales al ejecutarse en la consola japonesa Famicom, los jugadores pueden manipular ese salto
Programando en la tabla de puntajes altos
- Para el método de control del salto de Displaced Gamers, el jugador debe mantener presionado "arriba" en el tercer control y derecha, izquierda y abajo en el cuarto control
- Esto hace que el código de salto sea enviado al área de RAM que guarda los nombres y puntajes de la lista de récords del juego, ofreciendo una superficie de RAM más grande que el jugador puede manipular directamente
- Colocar "(G" en la parte objetivo de la tabla de puntajes altos puede forzar al juego a saltar a otra zona de esa misma tabla
- Desde ahí, empieza a leer secuencialmente los nombres y puntajes como opcodes para el CPU del NES
- Sin embargo, como en el área de ingreso de nombres solo hay 43 símbolos disponibles y solo 10 dígitos pueden formar parte de un puntaje alto, solo una parte de los opcodes disponibles del NES puede "codificarse" en la tabla de puntajes altos
- Como no existe un sistema de guardado con batería de respaldo, los hackers deben lograr manualmente esos puntajes altos e ingresar nombres complejos cada vez que inician Tetris
Opinión de GN⁺
- Sorprende que la versión de NES de Tetris tuviera una funcionalidad oculta como esta. Parece que no se descubrió en su época, y resulta increíble que haya salido a la luz recién después de varias décadas.
- También es interesante que este hack haya sido posible aprovechando el puerto de expansión del Famicom. Aunque seguramente no era una función intencional de Nintendo, deja ver una ventaja del Famicom frente al NES en cuanto a capacidades.
- La idea de usar este bug para insertar código que evite el crash es bastante ingeniosa. En teoría, permitiría seguir jugando y sería de gran ayuda para intentar conseguir puntajes altos.
- Aun así, parece incómodo que haya que hacer una configuración compleja cada vez que se inicia el juego. Para usarlo de verdad, haría falta una forma de automatizarlo mejor.
- En cualquier caso, este método parece más atractivo para entusiastas que buscan récords o personas interesadas en programación que para usuarios comunes que solo quieren jugar. Parece difícil que tenga un uso masivo.
1 comentarios
Comentarios de Hacker News
Resumen: