[Retro] Retour sur le Zapper du NES

Si vous êtes vieux (désolé), vous connaissez sûrement le Zapper du NES, ce pistolet futuriste vu dans Captain N. Mais savez-vous comment il fonctionne et – surtout – pourquoi il devient inutilisable sur un écran moderne ?

La réponse intuitive consiste à penser que le Zapper, d’une façon ou d’une autre, dépend du balayage des écrans cathodiques. C’est une intuition fausse, même si le problème reste bien lié aux différences de fonctionnement entre les écrans cathodiques (CRT) et les moniteurs modernes (LCD, plasma, OLED, etc.).

Le Zapper original (crédit : Evan-Amos)

Le Zapper original (crédit : Evan-Amos)

D’abord, une petite explication sur le fonctionnement basique du pistolet. Le Zapper contient un seul composant intéressant, une photodiode capable de mesurer l’intensité lumineuse. Techniquement, il peut donc détecter une lumière blanche éclatante ou (le cas inverse), pas de lumière blanche, ce que l’on peut simplifier par du noir.

La majorité des jeux utilise la même séquence, que nous allons détailler.

1 : Quand vous pressez la gâchette du pistolet, la console va afficher un écran totalement noir et le Zapper va lire une valeur “noir” (0).

Une image noire

Une image noire

2 : L’image suivante va être noire, sauf la première cible, qui va être remplacée par un carré blanc. Si vous visez correctement, le Zapper va lire une valeur “blanc” (1). Dans le cas contraire, il va lire “noir” (0).

La première cible

La première cible

3 : Si le jeu affiche plusieurs cibles, une autre image noire est affichée avec la seconde cible en blanc.

La seconde cible (tir raté)

La seconde cible (tir raté)

Un tir réussi

Un tir réussi

Techniquement, la première étape est facultative (certains jeux le n’utilisent pas) et sert en fait uniquement à déterminer si le joueur triche. Une valeur 1 lue à ce moment indique en effet que le pistolet vise une ampoule (par exemple) et pas le téléviseur. La réalité demeure un peu plus compliquée (un jeu correctement programmé vérifiera que la lumière change bien à la frame suivante) mais il s’agit d’une bonne approximation.

Comme nous venons de le voir, la séquence dépend énormément du timing. En Europe, le NES travaille à 50 Hz, donc une image dure précisément 20 millisecondes (60 Hz au Japon et aux USA, donc 16,6 ms). Le pistolet attend donc du noir entre 0 et 20 ms, du noir ou du blanc entre 20 et 40 ms, du noir ou du blanc entre 40 et 60 ms (avec deux cibles). Le timing précis permet de vérifier que le joueur ne triche pas, mais aussi de déterminer quelle cible a été touchée. Cette technologie implique un changement d’intensité visible dans certains cas – les images noires peuvent se remarquer, spécialement en Europe à 50 Hz – et explique aussi pourquoi le Zapper ne fonctionne pas avec un écran moderne.

Le problème ne vient pas de la façon d’afficher les images sur un LCD (ou un plasma, un écran OLED, etc.) mais de la vitesse d’affichage des images. Vous le savez sûrement, tous les écrans modernes intègrent des traitements destinés à améliorer la qualité des images affichées, et ils impliquent un problème parfois gênant : le retard à l’affichage. De façon très concrète, une image reçue par le téléviseur ne s’affiche pas immédiatement, elle doit d’abord passer par différentes étapes pour être agrandie, améliorée, corrigée, etc. Ce traitement peut prendre plusieurs millisecondes (entre quelques dizaines en mode jeux, avec peu de traitements, à plusieurs centaines). En temps normal, ce retard va être imperceptible, la limite moyenne se trouvant généralement vers deux ou trois images de retard (soit 30 à 50 ms environ). Des joueurs professionnels ou entraînés peuvent le ressentir dans certains jeux très rapides, mais il ne s’agit généralement pas d’un souci… sauf dans le cas du Zapper et des pistolets optiques.

Imaginez un écran avec un retard de 40 ms (une valeur correcte dans l’absolu) et un écran à 50 Hz (un NES européen). Quand le pistolet va essayer de détecter du noir (l’étape 1), il va en fait voir une autre image, qui aurait dû apparaître 40 ms plus tôt. Elle peut être sombre ou très colorée, avec le risque que le jeu considère que vous trichez. L’image suivante, quand le pistolet va chercher une cible, va toujours être une mauvaise image, calculée avant même la pression de la gâchette. La suivante, quand le pistolet attend éventuellement une seconde cible, va être totalement noire (donc invalide), il s’agit de la frame attendue au moment du tir (40 ms plus tôt). Quand le téléviseur affichera les cibles, le Zapper ne lira plus l’écran et vous aurez perdu.

La seule solution, en théorie, consiste à utiliser des écrans sans retard à l’affichage. Mais ce n’est pas si simple. Globalement, les écrans LCD restent trop lents pour descendre assez bas. Deux technologies offrent la rapidité nécessaire dans certains cas – le plasma et l’OLED – mais la première n’est plus produite et la seconde souffre d’un autre problème qui va empêcher une lecture correcte. Nous l’avons vu, le Zapper intègre une simple photodiode qui va mesurer l’intensité lumineuse pour déterminer si la cible a été touchée, et elle est calibrée pour les écrans CRT, qui offraient une luminosité assez élevée sur le blanc. Typiquement, même avec un écran OLED assez rapide, l’intensité du blanc de ces derniers reste trop faible pour activer le capteur du Zapper.

En réalité, certains écrans modernes permettent (parfois) d’obtenir un semblant de fonctionnement. Dans une partie avec plusieurs cibles et un écran assez rapide, il devient possible que la seconde frame s’affichent assez rapidement pour que le Zapper la détecte, même s’il s’agit en réalité de la troisième pour lui. Ce cas de figure est plus fréquent sur un NES européen (PAL ou SECAM) étant donné que le jeu est plus lent : à 50 Hz, une frame dure 20 ms, contre 16,6 ms à 60 Hz (NTSC, Japon et USA). Un retard compris entre 20 et 40 ms devient donc acceptable pour un fonctionnement dégradé.

Maintenant, vous savez donc pourquoi le Zapper ne marche pas sur un écran LCD. Dans d’autres sujets, nous essayerons de montrer comment les solutions plus modernes que le Zapper fonctionnent – ils dépendent vraiment d’un écran cathodique, plus exactement de son balayage – et nous explorerons quelques pistes pour essayer de jouer à Duck Hunt sur un écran moderne.

Crédit de l’image d’ouverture : JCD1981NL — CC BY-SA 3.0

About the Author

Dandu
Espion de Cupertino dans la rédac' de Canard PC Hardware. Aime beaucoup les formats totalement obsolètes ainsi que les technologies bizarres et oubliées. Possède un chien robot, des lapins Wi-Fi et un vrai perroquet.