
La mayoría de las personas se regocijan cuando logran revivir cosas viejas. El deseo sin fin de revivir la experiencia de la juventud nos lleva a formas que hemos olvidado por mucho tiempo. Y en el camino, a veces nos encontramos con recuerdos olvidados que evocan otros recuerdos olvidados que nos permiten revivir momentos felices en los que no hemos pensado durante años, o incluso décadas. Alguien que regresa a la escuela secundaria, al
paseo nocturno del automóvil con el volumen de la radio al máximo, devuelve el rugido del motor
Ford Windsor . Para aquellos nacidos en los años 80 y 90, estos juegos pueden desencadenar videojuegos. ¿Quién puede olvidar la primera reunión con un clip de asistente de Microsoft Office, música elegante de Final Fantasy o
arriba-arriba-abajo-abajo-izquierda-derecha-izquierda-derecha-ba-elegir-comenzar ?
El progreso en la tecnología de procesadores nos ha permitido volver a pasar tiempo con nuestros juegos favoritos a través de emuladores, programas que emulan los procesadores de las computadoras antiguas. Los juegos se descargan de los chips ROM a los archivos. Estos archivos se pueden descargar al emulador y jugar como si estuvieras jugando en el sistema original.
NES Zapper internosLa tecnología es una cosa maravillosa. Nos permite avanzar y hacer hoy lo que ayer era imposible. Sin embargo, en algunos casos este paradigma es incorrecto. Uno de ellos es la consola de juegos NES, el Nintendo Entertainment System y su controlador de armas, Zapper. En un momento, NES se convirtió en la consola de juegos más popular, y por una buena razón. Los ingenieros, programadores y expertos en audio de Nintendo han generado algunos de los mejores videojuegos jamás creados. Desafortunadamente, algunos de estos juegos no se pueden jugar en su emulador favorito de Raspberry Pi, ya que Zapper no es compatible con los monitores digitales modernos. Es poco probable que alguien pueda olvidar lo divertido que fue jugar a
Duck Hunt . Este juego se incluyó con todos los sistemas NES, por lo que todos lo jugamos. Pero la nostalgia asociada con ella está enterrada debido a características tecnológicas no resueltas.
Te diré, como hacker a hacker, esto ya no se puede tolerar. Primero, veremos cómo funciona Zapper y por qué no funciona con pantallas digitales. Y luego pensaremos en cómo solucionarlo.
El problema
La pistola Zapper es solo una fotocélula con un interruptor. Cuando se presiona el gatillo (interruptor), NES realiza ciertas manipulaciones con la pantalla para comprender hacia dónde apunta la pistola. Cuáles - discutiremos un poco más tarde. Pero primero debemos entender que solo funcionan en televisores
CRT analógicos. Si conecta su emulador a un televisor de este tipo, no tendrá problemas. El problema es que nadie tiene un televisor CRT. Todos tienen televisores y monitores digitales de pantalla plana. Cuando se conecta a dicho monitor, el juego no funcionará. Necesitamos entender por qué esto es así.
Desmitificando mitos
Hay mucha confusión acerca de cómo NES sabe a dónde se dirige Zapper, incluso entre las personas que tienen un poco de experiencia en electrónica. Algunos de ellos consideran, y continúan difundiendo este mito, que NES lee líneas de exploración de CRT. Un CRT dibuja líneas de escaneo desde la parte superior a la parte inferior de la pantalla a intervalos regulares. Al comparar la hora de inicio del dibujo y la hora en que Zapper ve la línea, NES puede averiguar hacia dónde apunta Zapper. Y dado que el monitor moderno muestra todas las líneas al mismo tiempo, es imposible calcular exactamente dónde apunta Zapper. Es posible que algunas pistolas antiguas de fotocélula funcionen, pero NES no funciona de esa manera. Absolutamente
Cómo funciona NES Zapper
El sistema es bastante complicado. Cuando presiona el gatillo, NES dibuja un marco negro sólido en el televisor. NES dibuja 60 cuadros por segundo, por lo que un cuadro está en la pantalla durante aproximadamente 0.0166, o 17 ms. En el siguiente cuadro, aparece un rectángulo blanco en lugar del pato, y el prefijo interroga el estado de la fotocélula en el arma. La salida de un fotodiodo es muy diferente dependiendo de si está dirigido a una pantalla negra o un rectángulo blanco. Y todo esto sucede durante la demostración de dos cuadros, 34 ms. El hombre apenas lo nota. El siguiente cuadro vuelve a dibujar el campo de juego, y se cuenta un hit o miss hacia usted. Ingenioso!
"Pero bueno, ¿cómo funciona este sistema cuando hay dos objetivos en la pantalla?" Buena pregunta Los ingenieros de NES manejan este problema simplemente repitiendo todo el proceso. El primer cuadro será negro, seguido de un cuadro con un rectángulo blanco en el lugar de un objetivo y un levantamiento de fotocélula. Si hay otro objetivo en la pantalla, el tercer cuadro estará con un rectángulo alrededor del segundo objetivo. Los tres cuadros tardan aproximadamente medio segundo, por lo que no tendrás la oportunidad de disparar a dos patos a la vez. Solo puedes disparar a uno, y esta técnica le permite a NES saber cuál.
"Si NES solo sondea el estado de la fotocélula, ¿puedo apuntar el arma a una luz brillante y registrar mi golpe cada vez?" Otra buena pregunta. Los ingenieros de NES se deshicieron de tal engaño e interrogaron el estado de la fotocélula incluso durante la aparición del primer marco negro. Si la fotocélula ve algo más que una pantalla en negro, el prefijo contará una falta. Hay rumores de que en las primeras versiones del juego este error no se corrigió, pero hasta ahora nadie ha podido demostrar dicho error.

Otra mirada al problema
Ahora, sabiendo cómo funciona Zapper, podemos pasar a resolver problemas con el monitor digital. Si el juego solo mide la diferencia entre blanco y negro, entonces el arma debería funcionar bien en los monitores digitales. Pero obviamente no funciona. Algunos sostienen que la fotocélula es sensible a la radiación infrarroja de un CRT y que el monitor digital no emite rayos infrarrojos. Pero mira este video: ¡Zapper funciona muy bien!
[El video muestra un Zapper modificado / aprox. perev.]Sabemos que las líneas de escaneo no tienen nada que ver con eso, y que Zapper puede distinguir entre el contraste entre blanco y negro en una pantalla digital. Podemos concluir que nuestro problema está relacionado con el tiempo. Aparentemente, un CRT puede mostrar una imagen mucho más rápido que un colega digital. En NES, la necesidad de buscar un rectángulo blanco después de 16 ms está conectada. Si su pantalla digital no puede procesar la salida NES con suficiente velocidad, entonces la consola buscará un rectángulo blanco mientras el juego aún esté visible en la pantalla.
La resolución de salida de NES es de 256 x 240 píxeles. El monitor digital necesita escalar cada cuadro a la resolución de trabajo. Este proceso genera un retraso que puede alcanzar hasta 70 ms, superando seriamente nuestra cifra de 16 ms.
Como arreglarlo
No sera facil. Si un monitor digital es demasiado lento, la única solución es reducir la velocidad de NES.
Opción 1: disminuir la velocidad del reloj
Todos escuchamos sobre el overclocking del procesador al aumentar la frecuencia del reloj. ¿Qué hay de frenar? ¿Podemos reducir el tiempo en el procesador NES sin overclocking a una fracción notable de la velocidad de la luz? Es necesario que el juego vaya a velocidad normal, pero cuando se presiona el gatillo, cambia a una operación más lenta y, de hecho, aumenta el tiempo de retraso. Recuerde que NES muestra una pantalla en negro durante 16 ms y luego dibuja un rectángulo blanco. Al ralentizar el procesador, podemos aumentar este retraso y darle al monitor digital el tiempo de reacción.
Opción 2: edición de ROM
La ROM solo se puede editar en un editor hexadecimal. ¿Qué pasa si estudiamos el emulador y encontramos en qué lugar se establece el valor de retraso después de presionar el gatillo? Podríamos hacerlo más grande y esperar no romper nada.
Opción 3: tu opción
Ahora que sabe cómo funciona NES Zapper y por qué no funciona con los monitores digitales modernos, está a medio camino de resolver este problema y liberar la nostalgia de la que nos ha privado el cruel destino tecnológico. ¿Qué haría para que Zapper funcione con un monitor digital y se convierta en el héroe de Internet?
El esquema de trabajo no es tan complicado: seguro que todos podemos unirnos para descubrir cómo hacer que Zapper deje de disparar inactivo en nuestro mundo digital. Comparte tus soluciones en los comentarios.
Artículo original