Дешёвый грязный трюк, подаривший цветную графику первым домашним компьютерам

в 9:32, , рубрики: atari, ntsc, Pong, Алан Элкорн, Игры и игровые приставки, Производство и разработка электроники, хаки

Пионер видеоигр Алан Элкорн рассказывает о том, как показал Стиву Возняку хак, позволивший компьютеру Apple II работать с цветами, и откуда взялся знаменитый звук «блип» в игре Pong

Дешёвый грязный трюк, подаривший цветную графику первым домашним компьютерам - 1
Домашняя консоль Atari Pong, поступившая в продажу в магазины The Sears под брендом Tele-Games в 1975

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

Наиболее известным примером использования артефактных цветов NTSC служит компьютер Apple II 1977 года. Использование этого хака Стивом Возняком в данном компьютере привлекло к нему широкое внимание. Позднее его использовали в компьютерах IBM PC и TRS-80 Color. Однако мало кто знал, откуда взялась эта идея, поэтому мы сильно взволновались, когда комментарий на эту тему к той статье оставил легенда электроники и видеоигр, Алан Элкорн. Оказывается, предком первой цветной компьютерной графики можно считать дешёвый испытательный прибор, который использовали в калифорнийских телеремонтных мастерских в 1960-х. Журнал IEEE Spectrum пообщался с Элкорном, чтобы узнать больше подробностей.

Дешёвый грязный трюк, подаривший цветную графику первым домашним компьютерам - 2
Алан Элкорн с приставкой Pong

IEEE: Аналоговые телевизоры стандарта NTSC генерируют цвет, отслеживая фазу сигнала относительно опорной частоты. Как к вам в руки попал этот испытательный прибор, и как он работал?

Алан Элкорн: Когда мне было лет 13-14, мой сосед, живший через улицу, держал ремонтную лавку для телевизоров. Я бегал к нему; а ещё как раз тогда отец отправил меня на курсы по ремонту радиоприёмников и телевизоров от RCA. Поэтому к тому моменту, когда я попал в Беркли, я уже работал странствующим мастером по ремонту телевизоров, и таким образом даже оплатил обучение в колледже. И в одной мастерской был очень дешёвый и грязный генератор цветных прямоугольников, предназначенный для проверки телевизоров. Вместо того, чтобы правильно выдавать цвет, синтезируя фазы и всё такое прочее, он просто использовал кристалл на 3,58 МГц (несущая частота цветового сигнала), минус 15,750 кГц, частота горизонтальной развёртки. Поэтому каждую фазу он отставал на 360 градусов. Если вывести этот сигнал на экран, получится цветная полоска, от левого края до правого. Это был реально самый дешёвый и грязный способ этого добиться!

IEEE: Как в ваших планах появилась идея использовать NTSC «не по инструкции»?

АЭ: С дешёвым грязным способом я познакомился во время работы мастером по ремонту. А потом я устроился на работу в компанию Ampex (в то время – лидер в аудио- и видеотехнологиях). В Ampex я впервые увидел, как картинку на видео получают при помощи цифровых технологий; они тогда достигли приемлемой скорости, и это открыло мне глаза. А потом я перешёл в Atari. Нолан Бушнел, сооснователь Atari, решил выходить на рынок домашней потребительской электроники. В 1972 мы выпустили монохромную аркадную игру Pong, что дало нам возможность развиться с нуля, но он всегда хотел работать на рынке домашней потребительской электроники. Совместно с ещё одним инженером мы сжали всю логику игры Pong до единственного N-канального кремниевого чипа. И в какой-то момент во время разработки Нолан сказал: «И, кстати, игра ещё должна быть цветной». Однако я-то знал, что он провернёт такой номер, поэтому уже выбрал кристалл на частоте 3,58 МГц минус 15,750 кГц.

IEEE: Почему вы подозревали, что он выкинет что-то подобное?

АЭ: Потому что никакого плана у нас не было. Не было никаких черновиков, никакого бизнес-плана. Всё было у Нолана в голове. Думаю, вы в курсе, что вообще изначально аркаду Pong затевали в качестве испытания для меня, чтобы я попрактиковался в разработке простейшей игры из возможных. Однако Нолан мне соврал, и сказал, что это будет продукт для домашних потребителей. В итоге было довольно грустно, у меня не получилось сделать это – я напихал туда порядка 70 интегральных схем, и для домашней игры устройство получилось дороговатым. А потом Нолан вдруг решил, что она подойдёт для игрового автомата! И когда мы уже заканчивали делать Pong для автомата, Нолан говорит: «Ну а где звук-то?» Я его спрашиваю: «В смысле, звук?» Я не хотел добавлять туда ещё компонентов. Он сказал: «Я хочу слышать рёв толпы, аплодисменты тысяч людей». Тед Дабни, другой владелец компании, сказал: «Я хочу слышать звуки ''бууу'' и свист». И я ответил им: «Ну ладно, скоро вернусь». Я полез туда с зондом, подыскивая схему вертикальной синхронизации с частотой, которая попадала бы в слуховой диапазон. Я нашёл такое место, использовал таймер 555 (чтобы на короткое время соединять схему с динамиком и выдавать пикающие звуки). Я сказал: «Будет вот так, Нолан; а если тебе не нравится, то делай сам». И он сказал: «ОК». И после этого я читал статьи, где пели дифирамбы этому звуку! А вся идея заключалась в том, чтобы выжать максимум из минимального набора компонентов. И она сработала. У нас в банке оставалось $500. У нас не было ничего, и мы просто выставили нашу игру на рынок. Время поджимало.

IEEE: А в домашней версии Pong графика просто меняла цвет с одной до другой стороны экрана?

АЭ: Да, цель состояла только в том, чтобы написать на коробке: «Цветная!» И происходит такой анекдот: домашняя версия Pong становится хитом. В 1974-75 году. Большим хитом. Делается реклама для телевидения. Рекламщики пытаются записать сигнал Pong на видеоплёнку. И мне звонят из какой-то студии, и говорят: «Почему мы не можем заставить её выводить изображение на видеомагнитофон?» Я говорю: «Ну это не совсем видео! Там нет чересстрочной развёртки… Считайте, что это PAL. Прогоните его через обычный конвертер».

IEEE: Как об этом узнал Возняк?

АЭ: В то время в Кремниевой долине у нас секретов не было. Я нанял Стива Джобса по счастливому стечению обстоятельств. Он даже не был инженером. А его приятель Воз работал в HP, однако с нами было гораздо веселее зависать. У нас было производство, мы собирали 30-50 игровых автоматов, и они стояли в цехе. Джобс не поладил с другими работниками, поэтому приходил работать по ночам. Воз, бывало, приходил играться в те часы, когда работал Джобс, а иногда Джобс подговаривал Воза сделать работу за него. И мне нравился Воз. Я хочу сказать, он просто гений, прям светило. Просто потрясающий.

Когда они делали Apple II, я им помогал. Я одолжил им свой осциллограф. У меня был 465 Tektronix, и он у меня до сих пор стоит. А они с его помощью разрабатывали Apple II. Я с его помощью делал Pong. Я для них что-то делал, по-моему, в связи с хранением данных на аудиокассетах. И потом я помню, как показывал Возу трюк с цветом высокого разрешения. Мы сидели, я объяснял ему принцип, и сказал: «Ну, вот, как NTSC в принципе должен работать». А потом сказал: «Ну а на самом деле, если сделать всё на такой вот частоте, и при помощи импульсов квадратных волн…» И объяснил ему весь фокус. А он его взял на вооружение. Такая была традиция. Это было нормально, я как бы хвастался перед ним!

IEEE: Когда сегодня людей мотивируют повозиться с электроникой, поэкспериментировать с ней, обычно это бывают такие штуки, как Arduino, сконцентрированные на цифре. Не кажется ли вам, что аналоговую электронику обходят стороной?

АЭ: Определённо. Был такой период, мне кажется, где-то в 90-х, когда это дошло до абсурда, и просто нельзя было найти хорошего аналогового инженера. А для определённых вещей аналоговые инженеры необходимы. В то время хорошим аналоговым инженерам очень неплохо платили. Они зарабатывали кучу денег, потому что их было мало. Но большинство ребятишек просто хотят разбогатеть. И к этому ведёт путь, связанный с программированием чего-либо для iPhone. И всё. Разбогател и пошёл. Однако аналоговая электроника – это очень важная и ценная область.

Автор: Вячеслав Голованов

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js