analogteam.

Световой пистолет NES: почему утки умирали только на пузатых ЭЛТ

Ретро-гейминг. Световой пистолет NES: почему утки умирали только на пузатых ЭЛТ

Duck Hunt на современной панели ломается не потому, что «старый пистолет не дружит с новым телевизором». Это слишком мягкая формулировка.

NES Zapper рассчитан на конкретную физику кинескопа: электронный луч прочерчивает экран строка за строкой, люминофор вспыхивает и быстро гаснет, а фотодиод в дуле ловит именно этот короткий световой импульс. ЖК и OLED показывают картинку совсем иначе — удерживают готовый кадр, обрабатывают сигнал и выдают его с задержкой. Для Zapper это не другой телевизор. Это другой прибор.

В мастерской такая неисправность выглядит знакомо: картридж живой, консоль стартует, спусковая кнопка исправно щёлкает, красная лампа на передней панели NES горит. Утка летит, прицел наведен точно, но выстрел всегда мимо. Иногда игра засчитывает попадание, если поднести дуло вплотную к белому меню. Иногда — никогда. Первая реакция владельца предсказуема: разобрать пистолет, чистить контакты, менять провод, крутить яркость телевизора.

Не надо. В большинстве таких случаев Zapper исправен. Он просто больше не видит мир, для которого был спроектирован.

Zapper не измеряет координаты — он ловит свет

Самое распространённое заблуждение о световом пистолете NES звучит так: «пистолет понимает, куда на экране я навёлся». Нет. Ни координат X/Y, ни камеры, ни оптического трекинга в этой пластиковой серой или оранжевой рукоятке нет.

Принцип работы NES Zapper проще и от этого красивее. Внутри стоит фотодиод с оптическим фильтром и обвязкой. Когда игрок нажимает спуск, игра на короткое время меняет изображение. Консоль проверяет, увидел ли датчик свет именно в нужный момент.

В Duck Hunt последовательность выглядит так:

1. Игра на один кадр заливает экран чёрным. Это контрольный этап: Zapper должен перестать видеть свет.

2. На следующем кадре вместо каждой цели появляется белый прямоугольник — условная «маска попадания».

3. NES опрашивает фотодиод пистолета.

4. Если датчик увидел свет во время показа белой области, игра считает, что дуло было направлено на цель.

При частоте 60 Гц один кадр длится примерно 16,6 мс. На проверку одной цели игра тратит минимум два кадра, то есть около 32 мс: чёрный контрольный кадр и кадр с белой мишенью. Когда на экране несколько уток, игра перебирает их по очереди. Поэтому Zapper не обязан «видеть» картинку целиком — ему достаточно ответить на вопрос консоли: «сейчас в поле зрения был яркий участок или нет?»

Zapper не целится в пиксели. Он подтверждает, что в строго отведённые 16,6 миллисекунды увидел свет.

Это объясняет и старые трюки с лампочкой. Если направить ранний световой пистолет на яркий постоянный источник, можно попытаться обмануть игру. Именно поэтому разработчики не просто выводят белую цель. Сначала они гасят экран: постоянный свет должен обнаружиться как подозрительный фон, а не как попадание.

Почему ЭЛТ был частью схемы, а не случайным экраном

ЭЛТ-телевизор строит изображение электронным лучом. Луч пробегает экран построчно; для NTSC-сигнала частота строчной развёртки составляет около 15,7 кГц. Люминофор экрана возбуждается, светится и быстро затухает. Для глаза это единая стабильная картинка, но фотодиод внутри Zapper воспринимает её как последовательность очень коротких световых импульсов.

Фильтр оригинального Zapper настроен именно на этот характерный ритм развёртки. Он помогает отсечь медленный и постоянный свет: солнце из окна, лампу накаливания, засветку комнаты. И одновременно даёт пистолету шанс различить белую мишень, нарисованную игрой в определённый момент.

Световой пистолет и ЭЛТ-телевизор образуют одну измерительную систему. Консоль запускает тест, телевизор преобразует сигнал в бегущий световой след, пистолет ловит след, консоль получает ответ. Выньте из цепочки кинескоп — и логика перестаёт сходиться.

Почему световой пистолет не работает на ЖК

У современного телевизора две проблемы для NES Zapper, и обе фундаментальные.

Первая — задержка. Даже если NES подключена через хороший апскейлер, сигнал обычно проходит преобразование, масштабирование и обработку телевизором. Между тем, как консоль отправила кадр с белой мишенью, и тем, как этот кадр реально появился на панели, проходит время. NES же не умеет ждать, пока телевизор закончит думать. Она опрашивает фотодиод по своему старому, жёсткому таймингу.

Консоль спрашивает: «Ты увидел белую цель?»

Панель отвечает картинкой позже.

Zapper в момент опроса ещё видит предыдущий кадр — либо уже видит следующий.

Даже сравнительно небольшая задержка здесь разрушительна. Речь не о комфортности управления, как в файтинге или ритм-игре. В Duck Hunt весь алгоритм попадания держится на нескольких кадрах. Сдвиг на один кадр уже способен превратить точный выстрел в промах.

Вторая проблема — характер свечения панели. ЖК и OLED работают по принципу sample-and-hold: пиксель показывает полученное состояние и удерживает его до следующего обновления. Панель не воспроизводит тот импульсный рисунок, который создавал ЭЛТ с построчной развёрткой и быстро затухающим люминофором.

Оригинальный фотодиод Zapper ждёт не просто «ярко». Ему нужен свет с подходящей временной структурой. Белый прямоугольник на LCD может быть ослепительно ярким для человека, но бесполезным для датчика, настроенного на ЭЛТ.

Что происходит при выстрелеЭЛТ-телевизорЖК или OLED
Формирование изображенияЭлектронный луч проходит экран строкамиПанель удерживает готовый кадр
Световая реакцияКороткие импульсы, быстрое затухание люминофораСтабильное свечение пикселей между обновлениями
Синхронизация с ZapperСоответствует исходной схеме NESНарушена по времени и характеру света
Задержка выводаПрактически встроена в исходный видеотрактВозникает при оцифровке, масштабировании и обработке
РезультатПопадания регистрируются штатноПистолет обычно не распознаёт цель

Яркость, контрастность, игровой режим и отключение «улучшайзеров» могут сократить задержку конкретного телевизора, но не превращают LCD в кинескоп. Это не настройка меню, которую пропустил владелец. Это несовместимость принципов работы.

Чёрный кадр перед выстрелом — не эффект, а античит

Момент, когда Duck Hunt на долю секунды гасит экран, многие помнят как странное подмигивание. На самом деле перед нами довольно жёсткая защита от самого очевидного обмана.

Представим, что игра выводила бы только белый квадрат на месте утки. Тогда игрок мог направить пистолет на лампу, окно в солнечный день или белую стену под ярким светом. Фотодиод увидел бы яркость — и консоль засчитала бы попадание. Никакой охоты, только оптика в режиме «найди люстру».

Поэтому порядок кадров обратный интуиции:

  • сначала игра требует от датчика увидеть темноту;
  • затем кратко показывает белую область цели;
  • после этого сопоставляет реакцию пистолета с таймингом теста.

Если Zapper видит свет и в чёрном кадре, его показания нельзя считать достоверными. В этом смысле первый чёрный кадр — не оформление и не мерцание, а контрольная проба. Почти лабораторная: сначала нулевой уровень, затем стимул, затем измерение отклика.

Здесь особенно хорошо видно, насколько NES была экономной машиной. Разработчики не добавляли дорогой сенсор и не строили сложную систему позиционирования. Они использовали свойства телевизора как часть вычислительной схемы. В 1980-х это было рационально: ЭЛТ стоял в каждой гостиной, а его развертка была предсказуемой.

Сейчас предсказуемость исчезла. Телевизор стал мини-компьютером с собственной обработкой сигнала — и старый метод измерения развалился.

Утка погибала не от меткости игрока в привычном смысле. Она погибала от правильно пойманного светового импульса.

NESLCDMOD: когда игре дают время дождаться экрана

В 2018 году Алексей Ковалевский запустил проект NESLCDMOD. Его идея практична: если современный экран показывает белую мишень позже, надо сдвинуть момент опроса пистолета в самой игре.

Это не «оживление Zapper на LCD» в рекламном смысле. Это хирургическая правка таймингов ROM-файла. Патч добавляет настраиваемую задержку между выводом тестовых кадров и проверкой датчика. В частности, адаптируются Duck Hunt и Wild Gunman. Консоль или совместимое железо получает время, чтобы изображение успело пройти через современный видеотракт и появиться на панели.

Но патч решает только одну половину задачи: временную.

Оригинальный Zapper всё ещё рассчитан на импульсную световую картину ЭЛТ и оснащён фильтром, отсекающим неподходящий фон. Поэтому связка «патч + заводской пистолет + ЖК» обычно не даёт результата без аппаратной переделки самого пистолета — например, замены фотодиода на более подходящий сенсор.

Именно на этом месте у многих проектов начинается путаница. Пользователь видит слова LCD mod, ставит патч, направляет родной серый Zapper в экран и решает, что инструкция врёт. Инструкция, скорее всего, не врёт; просто в ней мелким шрифтом спрятана главная инженерная развилка: игра должна ждать дольше, а датчик должен уметь реагировать на свет новой панели.

Что делает патч, а что — нет

ЗадачаNESLCDMODОригинальный NES Zapper
Компенсировать задержку современных экрановДа, через правку таймингов игрыНет
Считать свет с LCD как с ЭЛТНет, это не программная задачаОбычно нет без модификации
Сохранить работу на ЭЛТЗависит от выбранных настроек и версии патчаДа, штатный режим
Вернуть координатное позиционированиеНет: его не было и в оригинальной системеНет

Важное следствие: патч нужен не для того, чтобы сделать игру «красивее на современном телевизоре». Он перестраивает измерительный цикл. Это именно тот случай, когда программная модификация компенсирует дефект согласования между старой периферией и новой средой.

Какие варианты работают без коллекционной магии

Если задача — играть в Duck Hunt на настоящей NES или совместимом железе, а не устраивать музейный стенд, выбор довольно прямой. Не нужно покупать пять случайных «световых бластеров» с маркетплейса и проверять их на удачу: у разных устройств разные принципы работы, а слово light gun на коробке ничего не гарантирует.

ЭЛТ и оригинальный Zapper

Это эталонная связка. Подойдёт обычный кинескопный телевизор с корректно работающим композитным входом или RF-подключением, исправный оригинальный Zapper и оригинальный картридж. Здесь не требуется патчей, дополнительных адаптеров и подстройки задержек.

Есть бытовые ограничения: ЭЛТ занимает место, весит много, может требовать настройки геометрии и цветности, а старые аппараты нередко приходят с уставшими конденсаторами, подсевшим кинескопом или плохими разъёмами. Но по части светового пистолета это не каприз коллекционера, а рабочая среда.

ЖК-панель, патч и модифицированный либо совместимый пистолет

Это путь для тех, кому ЭЛТ хранить негде. Нужны патч NESLCDMOD для совместимой версии игры, устройство для запуска пропатченного ROM и пистолет, способный работать с датчиком на современной панели. В качестве примера среди сторонних моделей часто упоминают Tomee Zapp Gun, но полагаться на название модели без проверки конкретной ревизии не стоит: внутренности и чувствительность у клонов менялись, а подробные спецификации производители обычно не публикуют.

Сборка требует дисциплины. Надо отдельно проверить:

  • какая именно версия ROM поддерживается патчем;
  • где возникает задержка: в конвертере, апскейлере, AV-ресивере или телевизоре;
  • можно ли регулировать задержку в выбранном патче;
  • заменён ли фотодиод в оригинальном Zapper и рассчитана ли переделка на LCD;
  • реагирует ли пистолет на комнатный свет, блики и белое меню вне игрового теста.

Пять минут за столом с диагностикой сэкономят вечер, который обычно уходит на бессмысленное прицеливание в телевизор.

Hyper Blaster HD как готовый комплект

Hyperkin выпустила Hyper Blaster HD в конце 2019 года. Устройство продавалось как решение для Duck Hunt на современных телевизорах: в комплекте предусмотрен адаптер, работа построена вокруг подхода, похожего на NESLCDMOD. На старте пистолет стоил 24,99 доллара.

Здесь надо не дорисовывать возможности за производителя. Hyper Blaster HD не является универсальным ответом для всей библиотеки NES-световых пистолетов. Его заявленная сценарная задача — Duck Hunt в комплекте с картриджем 2-в-1, где также есть Super Mario Bros. Если цель — именно несколько партий в Duck Hunt без пайки и настройки ROM, такой вариант логичен. Если хочется Wild Gunman, Hogan’s Alley, нестандартные региональные версии и точную работу с собственной консольной сборкой — придётся разбираться глубже.

Почему не надо менять Zapper раньше диагностики

Оригинальный пистолет тоже стареет, и механические неисправности никто не отменял. Внутри могут окислиться контакты спусковой кнопки, переломиться жила в кабеле у корпуса, потрескаться пайка на плате. Но диагностировать это нужно на правильном дисплее.

Я бы не вскрывал Zapper, пока не проведены три простых теста:

1. Проверить пистолет на заведомо исправном ЭЛТ. Если там Duck Hunt стабильно видит попадания, в пистолете искать нечего. Проблема в современном экране и видеотракте.

2. Исключить яркий внешний свет. Окно за телевизором, торшер напротив экрана и солнечный луч на панели способны запутать модифицированные сенсоры. Оригинальная система умеет отсеивать часть такого фона, но не обязана побеждать физику в любой комнате.

3. Проверить разъём второго контроллера. Zapper подключается туда. Погнутый контакт или окисление разъёма дадут симптомы, похожие на «пистолет не видит экран».

4. Осмотреть кабель у ввода в корпус. Это типичная зона перелома: изоляция может выглядеть целой, а одна из жил уже работать с перебоями.

5. Только затем разбирать корпус. Внутри важны не красивые винты, а состояние проводов, пайки спусковой кнопки и самого фотодиода. Чистка «на всякий случай» часто заканчивается оторванной жилой и новой неисправностью.

Это обычная логика ремонта: сначала изолировать внешний фактор, потом лезть в устройство. Слишком многие винтажные аксессуары получают отвёртку не потому, что сломаны, а потому, что их подключили к неподходящей технике.

Старый пистолет не устарел — устарела его среда

Вопрос «можно ли использовать световой пистолет NES на современном телевизоре» неправильно ставить как спор между ретро и прогрессом. Zapper не оказался примитивным устройством, которое новые экраны переросли. Он был очень точно настроен на стандартную домашнюю электронику своего времени — настолько точно, что использовал развертку телевизора как деталь собственной схемы.

ЭЛТ для него был не экраном, а активным узлом измерения. ЖК и OLED этот узел заменили другим: быстрее, ярче, тоньше, но с чужой временной логикой. Поэтому родной Zapper на плоской панели не «капризничает». Он честно сообщает, что не получил тот световой сигнал, на который рассчитан.

Если нужен аутентичный результат — ставьте ЭЛТ. Если нужен Duck Hunt в гостиной с современной панелью — берите решение, где одновременно учтены задержка игры и тип сенсора: патч с совместимым пистолетом либо готовый комплект наподобие Hyper Blaster HD. А оригинальный Zapper оставьте для кинескопа. Он не обязан понимать телевизор, которого в его электрической биографии просто не существовало.

Частые вопросы

Почему световой пистолет NES не работает на современном телевизоре?
Современные панели имеют задержку вывода изображения и используют принцип удержания кадра, что нарушает жесткий тайминг опроса датчика, заложенный в NES.
Как работает световой пистолет NES Zapper?
При нажатии на спуск игра на короткое время гасит экран, а затем подсвечивает цель белым прямоугольником, проверяя, зафиксировал ли фотодиод пистолета свет в нужный момент.
Что такое NESLCDMOD и зачем он нужен?
Это патч для ROM-файлов игр, который добавляет задержку между выводом тестовых кадров и опросом датчика, позволяя компенсировать время обработки сигнала современным телевизором.
Можно ли починить Zapper, если он не стреляет в Duck Hunt?
Сначала нужно проверить его на ЭЛТ-телевизоре; если там он работает, значит, пистолет исправен, а проблема заключается в несовместимости с современным экраном.
Поможет ли покупка нового пистолета для NES играть на ЖК-телевизоре?
Обычный пистолет не поможет, так как проблема кроется в несовместимости принципов работы датчика и телевизора; для игры на ЖК требуется либо специальный комплект, либо модификация пистолета и патчинг игры.