Все началось с приближающегося релиза проекта, над которым я работаю, под названием «починка Gran Trak 1», о первой аркадной видео-игре 1974 года. Я закончил ремонт электроники и пытался взять интервью у как можно большего числа людей, которые занимались созданием игры. Одно из интервью было с Роном Милнером. Рон интересный парень. Он был инженером и изобретателем секретного мозгового центра Atari в горах — Cyan Engineering с 1973 по 1985 год. Помимо работы с монетоприёмниками он был одним из изобретателей системы видеоигр Atari 2600 и даже помог прототипировать анимации для роботов в Chuck E Cheese. В конце нашего разговора, когда мы болтали обо всем подряд, он спросил:
«Вы когда-нибудь играли в Starship 1?»
Я сказал: «Знаю эту игру! Я бы хотел, чтобы она оказалась в моей коллекции. Помню, как играл в нее, когда был ребенком».

Рон рассказал, как он сконструировал «радиальную катушку» для ЭЛТ, которая заставляла звезды вращаться, когда игрок поворачивал штурвал. Довольно хитрый трюк. К сожалению, эта функция была вырезана, чтобы сэкономить стоимость производства игры.
Он продолжал: «Это была первая и единственная игра, которую я когда-либо программировал, и вероятно, одна из первых игр с бэкдором. Я не говорил об этом даже в Atari, по крайней мере 30 лет, но у меня был встроен некоторый код, который при выполнении определенной последовательности действий сообщал «Привет, Рон!» и давал 10 бесплатных игр.»
Я был ошеломлен. Если все было так, то получается, что это было раньше появления самого первого из известных мне пасхальных яиц в видеоиграх, то есть того, которое чаще всего упоминается как первое: «Adventure» для Atari 2600 из 1979 года. Я провёл небольшое исследование в Интернете и обнаружил, что существует ещё более ранняя пасхалка в игре «Video Whizball», которая была выпущена в 1978 году для игровой консоли Fairchild Channel F.
Но была проблема. Рон не помнил точно как получить пасхальное яйцо. ��н помнил, как показывал его некоторым приятелям на выставке, когда игра впервые появилась, но это было 40 лет назад!
Рон не был уверен в дате выпуска игры. Поэтому первая остановка — Музей аркад. На этом сайте перечислены практически все аркадные игры, которые когда-либо были созданы, но поскольку информация собрана сообществом, я обнаружил, что она не всегда надежна. В нашем случае сайт показывает, что Starship 1 вышел в 1976 году. Многообещающе! Ведь это на два года раньше, чем другие соперники.

После я сверился со старым внутренним торговым документом Atari, который использовал для проверки даты выпуска в моей статье «ремонт цветной Gotcha». Как можно видеть, в нем приводится дата выпуска в июле 1977 года:

Это согласуется с первым упоминанием в Cash Box в августе 1977го, поэтому я уверен, что июль 1977 года — реальная дата выхода игры.
Итак, мы определили дату, но правда ли, что пасхальное яйцо существовало в игре? Рон упоминал, что его пасхалка показывала на экране сообщение «Привет, Рон!», а затем давала десять бесплатных игр, но за прошедшие года он забыл как её запускать.
Первым шагом было скачать ром игры из Интернета. Обычный поиск по этому шестнадцатеричному дампу позволил найти:

Итак, сообщение было! Но можем ли мы его запустить? Рон связался с Майклом Албо, знакомым инженером Atari, и мы стали работать втроём. Starship 1 был создан с использованием микропроцессора 6502, который также использовался в Atari 2600 и домашних компьютерах Atari, мы все были с ним знакомы. Рон и Майкл погрузились в схемы, а я вооружился дампом рома и листингами дизассемблированного кода. На схемах мы нашли карту памяти, из которой стало ясно, как различные кнопки панели управления взаимодействуют с программным обеспечением игры:

Вскоре стало ясно, что интересующий нас код был частью прерывания, срабатывающего при опускании монеты в игру. Майкл первым нашел код, который печатает «Привет Рон!» на экране, но как он вызывался? Рон нашёл две специфические проверки в коде и прислал мне листинг дизассемблированного кода с комментариями.
Первая оказалась п��оверкой того, что одновременно нажаты кнопки фазера и пуска в момент, когда опускается монета:

А после проверялось, что нажата кнопка замедления (и никаких других):

Таким образом, если мы правильно поняли код, для запуска пасхалки надо было опустить монету одновременно удерживая кнопки фазера и пуска. Потом резко отпустить их и дубасить по замедлению. Неудивительно, что никто никогда не наткнулся на эту «особенность»… Теперь нам осталось доказать, что эта последовательность реально выполнима.
Я быстро связался с местной группой коллекционеров (Seattle Metro Arcade Collectors или SMAC), но ни у кого поблизости не оказалось этой игры. Потом я вспомнил, что несколько месяцев назад видел Starship 1 в продаже в Ванкувере, и даже думал её купить, еще до того, как узнал о пасхальном яйце. Я связался с дилером, машина все еще была доступна. Скрепя сердце, я заплатил немного завышенную цену. К сожалению, требовалось несколько недель, чтобы он восстановил её и отправил мне в Сиэтл. Тем временем я приступил к попытке воспроизвести яйцо в эмулированной версии игры под управлением MAME.
MAME — это чудо мира коллекционеров аркад. Выпущенный 20 лет назад, в 1997 году, и непрерывно развивающийся с тех пор, MAME имеет скромную цель — эмулировать все когда-либо созданные аркадные игры, вместе со многими винтажными компьютерами, игровыми системами и даже калькуляторами. За прошедшие годы этот проект с открытым исходным кодом вдохновил так много талантливых программистов, что сегодня трудно найти игру, которая не поддерживается. Не удивительно, что Starship 1 тоже нашелся.
Однако первые мои попытки запустить пасхалку окончились неудачей. Я мог сжульничать, воспользовавшись встроенным отладчиком MAME, и пропустить обе проверки, которые предшествуют сообщению «Привет, Рон!», но выполнить необходимые действия нажимая имитированные кнопки панели управления мне не удалось.
После некоторой отладки я обнаружил, что проблема заключалась в контроллере замедления. Тот, кто делал драйвер для поддержки Starship 1 в MAME, решил, что контроллер замедления должен работать как коробка передач. Неплохое решение с учётом того, как он выглядит:

Видите его с правой стороны изображения? Он выглядит как коробка передач, но, с точки зрения игры, это всего лишь еще одна кнопка, ничем не отличающаяся от кнопок фазера или пуска. Из-за того, что он работал как коробка передач («переключатель» в терминологии MAME), было практически невозможно нажать его за то небольшое количество времени, которое у меня было после опускания виртуальной монеты в эмулятор.
Я уже начал думать о создании собственного драйвера и об объёмах работы по настройке среды сборки MAME. Но прежде чем двинуться по этой длинной и ухабистой дороге, я решил попробовать то, о чем частенько забываю: поиск в Google. В частности я набрал «отключить переключатель MAME», и первой появившиеся ссылкой была небольшая статья о том, как решить абсолютно такую же проблему. В статье говорилось, что достаточно добавить фразу

(Знатоки MAME среди вас заметят, что я переназначил кнопку замедления на правый ALT, а кнопку пуска на правый CTRL)
После этих приготовлений, удерживая левый и правый CTRL, я нажал кнопку 5, которая отвечает за опускание монеты в MAME. Затем я сразу же отпустил все кнопки и зажал правый ALT. Сработало! Слова «Привет Рон!» появились на экране!!! Я сделал видео для доказательства (внимательно смотрите на левый верхний угол экрана):
Видели «Привет, Рон!»? Если нет, посмотрите ещё раз. Я подожду.
Осталось только показать, что пасхальное яйцо может быть запущено на реальной машине, но где же она? Я связался с дилером и получил ответ «Возникла проблема с монитором, не синхронизируется». Он объяснил, что после исправления, потребуется оставить автомат работающим в течение нескольких дней, чтобы убедиться, что проблема не возникнет снова. Да, конечно. Хорошо. Мне нужно, чтобы он работал.

Я осторожно развернул её и внимательно осмотрел. Все выглядело прекрасно. Я включил автомат, он загрузился без проблем. Экран выглядел великолепно. Я схватил четвертак, опустил его в один из двух монетоприёмников и, кроме звона провалившейся монеты, ничего не произошло.
Окей, без проблем. Я открыл дверцу монетоприёмника и увидел, что коробка для монет была установлена неправильно, поэтому четвертак не смог провалиться через механизм. Поправив его, я попробовал еще раз. На этот раз монета упала, но опять ничего не произошло. Снова открыв дверцу, я обнаружил, что монета выбила проволоку микропереключателя, который сообщает игре о новой жизни. При ремонте проволока была прикреплена ненадёжно. Закрепив её, я попробовал снова.

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

Мда. Может я проклят?! Заменив сломанный провод, я попробовал в очередной раз.
Попытки продолжались часами. Было непросто. Мне пришлось извернуться левой рукой, чтобы одновременно удерживать кнопку на штурвале и кнопку пуска:

Тем временем правой рукой я опускал монету. Пока она падала, я отпускал левую руку и давил рычаг замедления правой рукой. Поймать подходящий момент было сложно. Я знал из кода, что монета должна пройти через механизм, прежде чем я отпущу левую руку, при этом остаётся совсем небольшой промежуток времени, за который следует опустить рычаг замедления. Что бы я ни делал, как ни пытался, пасхалка не запускалась. В чем проблема? Я провёл все исследования, был уверен, что знаю, что делаю, но все же получить сообщение «Привет, Рон!» не удавалось.
Важно ли, какой слот для монет использовать? Я думал, что нет, но на всякий случай, пробовал оба. Мне стало любопытно, и я перепроверил схему. От монетоприёмников поступали два совершенно разных сигнала, но проверяемый кодом пасхалки байт выглядел так:

Нам нужно шестнадцатеричное значение $76, что соответствует монетке плюс кнопка фазера плюс пуск. Чтобы удостовериться, я запустил версию MAME. Я всегда нажимал клавишу 5, когда воспроизводил пасхалку, что соответствует слоту «Монета 1». А что если нажать кнопку 6 (слот «Монета 2»)? Попытавшись, я не смог получить пасхальное яйцо. Я установил точку останова в отладчике и, конечно же, получил отличное от ожидаемых $76 значение. Похоже, что второй слот соответствует одному из битов с надписью «Резервный» (Spare) на схеме. Ладно, это нормально. Дважды перепроверив, какой из слотов первый, я использовал только его, но безрезультатно. В конце концов я сдался и пошёл спать.
Лежа в постели, я размышлял о том, что могло пойти не так. Единственное, что не давало мне покоя, это резервные биты. Если ��торой монетоприёмник соответствует одному из этих битов, может есть что-то связанное со вторым? Я снова достал схему и попытался понять, как биты реализованы в электронике игры. Вот, что я нашёл:

Сигналы, поступающие в контакты 4 и 12 микросхемы E6 через J6, по-видимому, идеально соответствуют битам в байте, который проверяется кодом. Если все верно, обратите внимание на линию, связанную с контактом 12 микросхемы J6. Несмотря на то, что линия не подписана, не нужно быть гением, чтобы проследовать за проводом направо и обнаружить, что он подключен к Quad DIP-переключателю и маркирован «Bonus Time». Поняв наверняка, что это значит, я заснул с уверенностью, что завтра будет лучший день.
Проснувшись рано утром, я отвел детей в школу и начал работать. Я вытащил плату и обнаружил DIP-переключатель:

Видите переключатель помеченный символами «B.T.», то есть «Bonus Time»? Он нажат на сторону, отмеченную знаком «плюс». Это определяет включен он или закрыт. Судя по схеме, закрытый переключатель соединяется с землей, а это значит, что он генерирует нулевой бит. Такое поведение абсолютно противоположно тому, что нам нужно для запуска пасхалки. Эта находка придала мне уверенности. Я щелкнул выключателем и вернул все обратно. Последняя попытка. Если не получится, у меня больше не было идей.
Bonus time был выключен. Я нажал кнопки фазера и пуска левой рукой, а правая держала четвертак возле монетоприёмника. Я бы скрестил пальцы, но о��е руки были заняты. Я опустил монету и выждал мгновение, пока она пробивалась через механизм, потом я быстро отпустил левую руку и хлопнул по рычагу замедления правой. На экране появилось «Привет, Рон!». С первой попытки.
Я настроил камеру для записи и попробовал ещё раз. Все прошло как по маслу. Вот получившееся видео:
Аллилуйя.
Остается последний вопрос: это первое пасхальное яйцо? Как и в большинстве случаев, ответ зависит от точки зрения. Википедия определяет пасхальное яйцо как «умышленную шутку, скрытое сообщение или секретную особенность интерактивного произведения». Далее в статье приводятся примеры из программного обеспечения вплоть до текстового редактора TECO из 1960х. Его нам явно не переплюнуть.
Итак, перефразируем: это первое пасхальное яйцо в видео играх? Июль 1977го явно раньше выхода Adventure и Video Whizzball в 1978м, в наших руках сильный претендент на победу. Проводя дополнительные исследования, я наткнулся на статью, в которой рассказывается о редком картридже Democart для Fairchild Channel F, предположительно выпущенном только для использования в магазинах. Если удерживать три кнопки в конце демки, появится имя программиста. Как можно видеть, она имеет отметку о копирайте за 1977 год:


Считается ли пасхальным яйцом набор графики, который можно отобразить только внеся изменения в железе? Примерно в это время Atari вела бизнес, используя два разных имени (другое название — Kee Games) и выпустила несколько разных версий большинства своих игр под каждым из своих имён. Подозреваю, что НЛО предназначались для версии Anti-Aircraft от Kee Games, и не являлись чем-то скрытым в ROM ее создателями.
По-моему, Starship 1 — на данный момент первая известная аркадная игра, которая явно соответствует определению пасхального яйца, а молодой и умный программист, который его встроил, Рон Милнер, заслуживает нашего признания и уважения. Тем не менее, до Starship 1 было выпущено более ста аркадных видеоигр. Возможно, где-то глубоко внутри одной из них лежит еще одно более древнее пасхальное яйцо, которое только и ждет того, чтобы его обнаружили. Надеюсь, что это так!
«Вы когда-нибудь играли в Starship 1?»
Я сказал: «Знаю эту игру! Я бы хотел, чтобы она оказалась в моей коллекции. Помню, как играл в нее, когда был ребенком».

Рон рассказал, как он сконструировал «радиальную катушку» для ЭЛТ, которая заставляла звезды вращаться, когда игрок поворачивал штурвал. Довольно хитрый трюк. К сожалению, эта функция была вырезана, чтобы сэкономить стоимость производства игры.
Он продолжал: «Это была первая и единственная игра, которую я когда-либо программировал, и вероятно, одна из первых игр с бэкдором. Я не говорил об этом даже в Atari, по крайней мере 30 лет, но у меня был встроен некоторый код, который при выполнении определенной последовательности действий сообщал «Привет, Рон!» и давал 10 бесплатных игр.»
Я был ошеломлен. Если все было так, то получается, что это было раньше появления самого первого из известных мне пасхальных яиц в видеоиграх, то есть того, которое чаще всего упоминается как первое: «Adventure» для Atari 2600 из 1979 года. Я провёл небольшое исследование в Интернете и обнаружил, что существует ещё более ранняя пасхалка в игре «Video Whizball», которая была выпущена в 1978 году для игровой консоли Fairchild Channel F.
Но была проблема. Рон не помнил точно как получить пасхальное яйцо. ��н помнил, как показывал его некоторым приятелям на выставке, когда игра впервые появилась, но это было 40 лет назад!
Я не мог просто так упустить эту пасхалку! Оставалось выяснить только две вещи: когда был выпущен «Starship 1» и как получить пасхальное яйцо.
Подтверждение даты выпуска
Рон не был уверен в дате выпуска игры. Поэтому первая остановка — Музей аркад. На этом сайте перечислены практически все аркадные игры, которые когда-либо были созданы, но поскольку информация собрана сообществом, я обнаружил, что она не всегда надежна. В нашем случае сайт показывает, что Starship 1 вышел в 1976 году. Многообещающе! Ведь это на два года раньше, чем другие соперники.
Но, пока я ковырялся, у меня стали возникать сомнения.Руководство и флаер имели отметку о копирайте за 1977 год. Я решил проверить другие источники. Мне подсказали, что архивы журнала Cash Box были отсканированы и полностью доступны в Интернете. Поскольку этот журнал освещал аркадный бизнес, он подходил идеально. Я быстро нашел статью за 13.08.77 с первым упоминанием Starship 1.

После я сверился со старым внутренним торговым документом Atari, который использовал для проверки даты выпуска в моей статье «ремонт цветной Gotcha». Как можно видеть, в нем приводится дата выпуска в июле 1977 года:

Это согласуется с первым упоминанием в Cash Box в августе 1977го, поэтому я уверен, что июль 1977 года — реальная дата выхода игры.
Поиск кода
Итак, мы определили дату, но правда ли, что пасхальное яйцо существовало в игре? Рон упоминал, что его пасхалка показывала на экране сообщение «Привет, Рон!», а затем давала десять бесплатных игр, но за прошедшие года он забыл как её запускать.
Первым шагом было скачать ром игры из Интернета. Обычный поиск по этому шестнадцатеричному дампу позволил найти:

Итак, сообщение было! Но можем ли мы его запустить? Рон связался с Майклом Албо, знакомым инженером Atari, и мы стали работать втроём. Starship 1 был создан с использованием микропроцессора 6502, который также использовался в Atari 2600 и домашних компьютерах Atari, мы все были с ним знакомы. Рон и Майкл погрузились в схемы, а я вооружился дампом рома и листингами дизассемблированного кода. На схемах мы нашли карту памяти, из которой стало ясно, как различные кнопки панели управления взаимодействуют с программным обеспечением игры:

Вскоре стало ясно, что интересующий нас код был частью прерывания, срабатывающего при опускании монеты в игру. Майкл первым нашел код, который печатает «Привет Рон!» на экране, но как он вызывался? Рон нашёл две специфические проверки в коде и прислал мне листинг дизассемблированного кода с комментариями.
Первая оказалась п��оверкой того, что одновременно нажаты кнопки фазера и пуска в момент, когда опускается монета:

А после проверялось, что нажата кнопка замедления (и никаких других):

Таким образом, если мы правильно поняли код, для запуска пасхалки надо было опустить монету одновременно удерживая кнопки фазера и пуска. Потом резко отпустить их и дубасить по замедлению. Неудивительно, что никто никогда не наткнулся на эту «особенность»… Теперь нам осталось доказать, что эта последовательность реально выполнима.
Высиживание яйца
Я быстро связался с местной группой коллекционеров (Seattle Metro Arcade Collectors или SMAC), но ни у кого поблизости не оказалось этой игры. Потом я вспомнил, что несколько месяцев назад видел Starship 1 в продаже в Ванкувере, и даже думал её купить, еще до того, как узнал о пасхальном яйце. Я связался с дилером, машина все еще была доступна. Скрепя сердце, я заплатил немного завышенную цену. К сожалению, требовалось несколько недель, чтобы он восстановил её и отправил мне в Сиэтл. Тем временем я приступил к попытке воспроизвести яйцо в эмулированной версии игры под управлением MAME.
MAME — это чудо мира коллекционеров аркад. Выпущенный 20 лет назад, в 1997 году, и непрерывно развивающийся с тех пор, MAME имеет скромную цель — эмулировать все когда-либо созданные аркадные игры, вместе со многими винтажными компьютерами, игровыми системами и даже калькуляторами. За прошедшие годы этот проект с открытым исходным кодом вдохновил так много талантливых программистов, что сегодня трудно найти игру, которая не поддерживается. Не удивительно, что Starship 1 тоже нашелся.
Однако первые мои попытки запустить пасхалку окончились неудачей. Я мог сжульничать, воспользовавшись встроенным отладчиком MAME, и пропустить обе проверки, которые предшествуют сообщению «Привет, Рон!», но выполнить необходимые действия нажимая имитированные кнопки панели управления мне не удалось.
После некоторой отладки я обнаружил, что проблема заключалась в контроллере замедления. Тот, кто делал драйвер для поддержки Starship 1 в MAME, решил, что контроллер замедления должен работать как коробка передач. Неплохое решение с учётом того, как он выглядит:

Видите его с правой стороны изображения? Он выглядит как коробка передач, но, с точки зрения игры, это всего лишь еще одна кнопка, ничем не отличающаяся от кнопок фазера или пуска. Из-за того, что он работал как коробка передач («переключатель» в терминологии MAME), было практически невозможно нажать его за то небольшое количество времени, которое у меня было после опускания виртуальной монеты в эмулятор.
Я уже начал думать о создании собственного драйвера и об объёмах работы по настройке среды сборки MAME. Но прежде чем двинуться по этой длинной и ухабистой дороге, я решил попробовать то, о чем частенько забываю: поиск в Google. В частности я набрал «отключить переключатель MAME», и первой появившиеся ссылкой была небольшая статья о том, как решить абсолютно такую же проблему. В статье говорилось, что достаточно добавить фразу
toggle = "no" в конфигурационный файл:
(Знатоки MAME среди вас заметят, что я переназначил кнопку замедления на правый ALT, а кнопку пуска на правый CTRL)
После этих приготовлений, удерживая левый и правый CTRL, я нажал кнопку 5, которая отвечает за опускание монеты в MAME. Затем я сразу же отпустил все кнопки и зажал правый ALT. Сработало! Слова «Привет Рон!» появились на экране!!! Я сделал видео для доказательства (внимательно смотрите на левый верхний угол экрана):
Видели «Привет, Рон!»? Если нет, посмотрите ещё раз. Я подожду.
Обратный отсчёт
Осталось только показать, что пасхальное яйцо может быть запущено на реальной машине, но где же она? Я связался с дилером и получил ответ «Возникла проблема с монитором, не синхронизируется». Он объяснил, что после исправления, потребуется оставить автомат работающим в течение нескольких дней, чтобы убедиться, что проблема не возникнет снова. Да, конечно. Хорошо. Мне нужно, чтобы он работал.
Следующие несколько недель я с нетерпением ждал прибытия машины. Меня раздирали иррациональный страх, что кто-то другой наткнется и опубликует мое 40-летнее открытие до меня, и вполне реальный страх, что всем будет все равно.В конце концов машина приехала.

Я осторожно развернул её и внимательно осмотрел. Все выглядело прекрасно. Я включил автомат, он загрузился без проблем. Экран выглядел великолепно. Я схватил четвертак, опустил его в один из двух монетоприёмников и, кроме звона провалившейся монеты, ничего не произошло.
Окей, без проблем. Я открыл дверцу монетоприёмника и увидел, что коробка для монет была установлена неправильно, поэтому четвертак не смог провалиться через механизм. Поправив его, я попробовал еще раз. На этот раз монета упала, но опять ничего не произошло. Снова открыв дверцу, я обнаружил, что монета выбила проволоку микропереключателя, который сообщает игре о новой жизни. При ремонте проволока была прикреплена ненадёжно. Закрепив её, я попробовал снова.

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

Мда. Может я проклят?! Заменив сломанный провод, я попробовал в очередной раз.
Получилось?
Попытки продолжались часами. Было непросто. Мне пришлось извернуться левой рукой, чтобы одновременно удерживать кнопку на штурвале и кнопку пуска:

Тем временем правой рукой я опускал монету. Пока она падала, я отпускал левую руку и давил рычаг замедления правой рукой. Поймать подходящий момент было сложно. Я знал из кода, что монета должна пройти через механизм, прежде чем я отпущу левую руку, при этом остаётся совсем небольшой промежуток времени, за который следует опустить рычаг замедления. Что бы я ни делал, как ни пытался, пасхалка не запускалась. В чем проблема? Я провёл все исследования, был уверен, что знаю, что делаю, но все же получить сообщение «Привет, Рон!» не удавалось.
Важно ли, какой слот для монет использовать? Я думал, что нет, но на всякий случай, пробовал оба. Мне стало любопытно, и я перепроверил схему. От монетоприёмников поступали два совершенно разных сигнала, но проверяемый кодом пасхалки байт выглядел так:

Нам нужно шестнадцатеричное значение $76, что соответствует монетке плюс кнопка фазера плюс пуск. Чтобы удостовериться, я запустил версию MAME. Я всегда нажимал клавишу 5, когда воспроизводил пасхалку, что соответствует слоту «Монета 1». А что если нажать кнопку 6 (слот «Монета 2»)? Попытавшись, я не смог получить пасхальное яйцо. Я установил точку останова в отладчике и, конечно же, получил отличное от ожидаемых $76 значение. Похоже, что второй слот соответствует одному из битов с надписью «Резервный» (Spare) на схеме. Ладно, это нормально. Дважды перепроверив, какой из слотов первый, я использовал только его, но безрезультатно. В конце концов я сдался и пошёл спать.
Лежа в постели, я размышлял о том, что могло пойти не так. Единственное, что не давало мне покоя, это резервные биты. Если ��торой монетоприёмник соответствует одному из этих битов, может есть что-то связанное со вторым? Я снова достал схему и попытался понять, как биты реализованы в электронике игры. Вот, что я нашёл:

Сигналы, поступающие в контакты 4 и 12 микросхемы E6 через J6, по-видимому, идеально соответствуют битам в байте, который проверяется кодом. Если все верно, обратите внимание на линию, связанную с контактом 12 микросхемы J6. Несмотря на то, что линия не подписана, не нужно быть гением, чтобы проследовать за проводом направо и обнаружить, что он подключен к Quad DIP-переключателю и маркирован «Bonus Time». Поняв наверняка, что это значит, я заснул с уверенностью, что завтра будет лучший день.
Лучший день
Проснувшись рано утром, я отвел детей в школу и начал работать. Я вытащил плату и обнаружил DIP-переключатель:

Видите переключатель помеченный символами «B.T.», то есть «Bonus Time»? Он нажат на сторону, отмеченную знаком «плюс». Это определяет включен он или закрыт. Судя по схеме, закрытый переключатель соединяется с землей, а это значит, что он генерирует нулевой бит. Такое поведение абсолютно противоположно тому, что нам нужно для запуска пасхалки. Эта находка придала мне уверенности. Я щелкнул выключателем и вернул все обратно. Последняя попытка. Если не получится, у меня больше не было идей.
Bonus time был выключен. Я нажал кнопки фазера и пуска левой рукой, а правая держала четвертак возле монетоприёмника. Я бы скрестил пальцы, но о��е руки были заняты. Я опустил монету и выждал мгновение, пока она пробивалась через механизм, потом я быстро отпустил левую руку и хлопнул по рычагу замедления правой. На экране появилось «Привет, Рон!». С первой попытки.
Я настроил камеру для записи и попробовал ещё раз. Все прошло как по маслу. Вот получившееся видео:
Аллилуйя.
Первая ли она?
Остается последний вопрос: это первое пасхальное яйцо? Как и в большинстве случаев, ответ зависит от точки зрения. Википедия определяет пасхальное яйцо как «умышленную шутку, скрытое сообщение или секретную особенность интерактивного произведения». Далее в статье приводятся примеры из программного обеспечения вплоть до текстового редактора TECO из 1960х. Его нам явно не переплюнуть.
Итак, перефразируем: это первое пасхальное яйцо в видео играх? Июль 1977го явно раньше выхода Adventure и Video Whizzball в 1978м, в наших руках сильный претендент на победу. Проводя дополнительные исследования, я наткнулся на статью, в которой рассказывается о редком картридже Democart для Fairchild Channel F, предположительно выпущенном только для использования в магазинах. Если удерживать три кнопки в конце демки, появится имя программиста. Как можно видеть, она имеет отметку о копирайте за 1977 год:

Было ли она сделана до июля 1977 или после? Я не знаю. Соответствует ли неинтерактивная демка для магазина критериям пасхалки в видеоиграх? Решайте самиВозможно стоит сузить круг ещё раз и сказать, что в Starship 1 появилось первое пасхальное яйцо в аркадной видеоигре. В этом случае остаётся только один соперник, но упоминания о нем датируются вплоть до июня 1975 года. В игре Anti-Aircraft II от Atari требуется сбивать пролетающие самолеты, однако можно сделать так, чтобы они превратились в НЛО. Правда, для этого требуется внести небольшие изменения в печатную плату игры. После изменения экран выглядит следующим образом:

Считается ли пасхальным яйцом набор графики, который можно отобразить только внеся изменения в железе? Примерно в это время Atari вела бизнес, используя два разных имени (другое название — Kee Games) и выпустила несколько разных версий большинства своих игр под каждым из своих имён. Подозреваю, что НЛО предназначались для версии Anti-Aircraft от Kee Games, и не являлись чем-то скрытым в ROM ее создателями.
По-моему, Starship 1 — на данный момент первая известная аркадная игра, которая явно соответствует определению пасхального яйца, а молодой и умный программист, который его встроил, Рон Милнер, заслуживает нашего признания и уважения. Тем не менее, до Starship 1 было выпущено более ста аркадных видеоигр. Возможно, где-то глубоко внутри одной из них лежит еще одно более древнее пасхальное яйцо, которое только и ждет того, чтобы его обнаружили. Надеюсь, что это так!
