Llegando al extremo "freak" con la Pantalla Partida del Pac-Man ...
Después de alucinar con el post publicado por mi querido amigo tuxotron, me he encontrado con algo que roza ya los límites del frikismo/geek absoluto.Todos sabéis que el Pac-Man, al llegar al nivel 256, aparece lo que se llama la “Pantalla Partida (Split Screen)”. Los programadores de Namco tenían la intención de hacer un juego sin final, por eso a partir del nivel 21 el juego es idéntico. Ya sólo es cuestión de repetir los patrones y ver quién es el que aguanta más sin perder la concentración. Si eres uno de esos cracks que es capaz de llegar desde el nivel 21 al 255, llegarás a ver la famosa Pantalla Partida.
De esta pantalla no sabían de su existencia ni siquiera los programadores de Namco, por lo tanto la Pantalla Partida es un error, un problema de funcionamiento de hardware. ¿Cuál es el motivo?, pues la culpa la tiene la rutina responsable de dibujar los símbolos de bonos (frutas) que aparecen en la parte derecha/abajo de la pantalla. Cuando llegas al nivel 256, el contador de nivel se incrementa a 255 (empieza en cero) y se llama a la rutina de dibujo para los bonos. La rutina carga el valor del contador (255) dentro de un registro de la CPU y lo incrementa en uno. Como el máximo número que pueden albergar los registros del Z-80 (CPU del juego) es 255 (8 bits), ocurre el famoso error de “overflow” dejando un cero en vez del valor esperado de 256. La rutina de bonos empieza a dibujarlos usando el registro que tiene el valor confuso de cero. Al final de cada bucle de dibujo, el registro se decrementa en uno y comprueba que para ver si es un cero (el cero indica a la rutina que ya puede parar de dibujar los símbolos de las frutas). Como el registro tiene un cero al principio, el primer decremento pondrá el valor 255. Entonces se mantendrá un bucle de 256 ciclos durante el cual dibujará símbolos hasta que vuelva a ser un cero. Esto implica que las posiciones de memoria fuera de los límites usados por la tabla de símbolos usada por la rutina de bonos se dibujan directamente en la pantalla en diferentes partes de la memoria de video, generando la famosa “Pantalla Partida”.
Y aquí viene lo bueno. Aún sabiendo que es un error de programación, hay gente que ha jugado y ha intentado superarla. Puedes encontrar la teoría y cómo hacerlo en el post de tuxotron, apartado Deciphering The Split Screen. Aquí tienes un video donde explica cómo afrontar este nivel:
Pero hay un problema, este nivel no se puede superar porque al parecer, los puntos se regeneran de forma infinita.
¿Seguro que no se puede?, pues algunas teorías indican que existe una versión de la ROM del Pac-Man (hardware) con un “rack-test”, el cual le permitía a la máquina pasar el nivel 256 usando este switch que se encontraba en la placa base del juego. Muchas ROMs del MAME tienen esta característica y podrás ver lo que ocurre en el famoso nivel 256 … eso te lo dejo a tí para que lo veas …
Ten cuidado, no vaya ser que al llegar al nivel 256 te pase algo parecido a la película Tron y se conviertas en parte de la máquina ;)
Artículo original aquí (Descifrando la Pantalla Partida). Gracias a Jamey Pittman por poner a disposición este estupendo análisis del juego de nuestras vidas.
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec