Интервью со Вячеславом Славинским (svo) о компьютере Vectrex. Chaos Constructions'2014
(30 и 31 августа 2014 года)
svo - Вячеслав Славинский
frog - Пётр Соболев
frog:
Мы на Chaos Constructions. Сейчас мы поговорим с Вячеславом Славинским по-поводу его экспоната, который называется "Vectrex".
svo:
Здравствуйте! Это уникальная, в своём роде, консоль (по-русски называется "игровая приставка")
frog:
Чем уникальная?
svo:
Уникальна тем, что развёртка у неё не растровая, а векторная.
frog:
Что это означает?
svo:
Это означает, что луч сканирует экран не последовательно, строчка за строчкой, а как если бы мы пером рисовали на экране очень-очень быстро - обводит эту картинку.
frog:
Это хорошо или плохо?
svo:
Это очень хорошо [счастливый смех]. Дело в том, что в то время (в 1982-83 гг.) очень тяжело было сделать графику высокого разрешения на компьютере.
А здесь лучики от точки к точке. Сами по себе лучики дискретные на экране. Но от точки к точке луч проходит по прямой при помощи аналоговой схемы, которая его разворачивает. И картинка получается очень гладкой, необычной.
frog:
Это чисто игровая машинка?
svo:
В принципе, да. Хотя для неё было несколько программ работающих со световым пером, который продавались как обучающие.
frog:
Скажи, а каким образом в неё сейчас загружаются игрушки?
svo:
У него есть один единственный способ загружать что-то - это маленький слот, в который вставляется картридж. В оригинале было "один картридж - одна игра". Но здесь [показывает плату воткнутую в слот] это вот такой вот мультикарт. Этот я купил у человека, который их делает. Но есть и моя разработка, хотя не в такой завершённой стадии [достаёт другую плату]. Вот это было сделано на базе LPC Express 1769. С одной стороны, это плата фабричная, а с другой - это адаптер, который просто втыкается в слот. Здесь всего несколько соединений и адаптер для программирования.
frog:
Так что она делает?
svo:
Это эмулятор ПЗУ. На этот картридж записывается игра, он вставляется в Vectrex, и программа прямо с него исполняется.
frog:
Давай посмотрим, как загружается...
svo:
[вставляя свой картридж] Если повезёт, конечно...
frog:
На нашей выставке всё основано на везении...
svo:
[включает]
Выключатель - он же регулятор громкости.
frog:
Это стандартная заставка?
svo:
Да, причём интересно, что даже вот эту стартовую надпись - её невозможно было поменять. То есть, когда люди включали игру, они видели copyright фирмы, которая производила Vectrex. И есть версия, что это не способствовало популярности и развитию платформы, потому что компании хотели чтобы был их trademark...
Вот это - современная игра, по-моему 2013 года, Veccy Birds (аналог Flappy Birds). Современная разработка.
frog:
А есть более сложные игры под него?
svo:
Конечно есть
[показывает]
frog:
Сколько вообще такая игра занимает, примерно?
svo:
Максимальный объём ПЗУ у него 32 килобайта, но он поддерживает bank switching, так что 64 килобайта - максимум, что может быть (при этом, сначала одна часть программы включается, потом другая. И так по 32кб). Обычная программа занимала 4 килобайта.
Pole Position ,Scramble - хорошая игра. Все знают.
[запускает Scramble]
Вот это рисование букв - он всё поддержано в BIOS'е, поэтому почти во всех играх оно выглядит одинаково.
Интересная особенность, что "разрешение" экрана, интеграторы которые обеспечивают развёртку - они восьмибитные, т.е. координата может быть от нуля до, максимум, 255. Но есть ещё масштаб. И, задав максимальный масштаб, можно получить "разрешение" 256x256 в пределах очень маленького участка - например, в пределах одного самолётика.
Это очень интересно, потому что, если попробовать сделать вращающийся объект маленьким, в глобальной сетке 256x256, то он будет очень кривой. А если его сделать изменением масштаба, то будет всё очень плавно, очень красиво. В играх, как правило, это используется.
frog:
А можно имитировать растровый дисплей просто бегая лучом туда-сюда?
svo:
К сожалению, во-первых, скорость, с которой этот луч может бегать - она ограничена. Во-вторых, не хватает времени процессора, чтобы это всё обработать. Потому что мы должны запрограммировать интегратор, дождаться завершения - пока он доведёт луч до конца, снова запрограммировать и т.д.
И даже если очень сильно всё упаковать, всё равно не получается сделать полноценный растр.
Но есть некоторое приближение. Например, вот эти цифры, если я сейчас выкручу на максимум ручку яркости [выкручивает, до появления полосок вдоль цифр] - вот это на самом деле и есть растр.
У него есть специальная схема, bitshifter, которая выдавливает битики один за другим - модулирует луч из заданного регистра. Т.е., процессор можно разгрузить немножко.
Вот, кстати, интересная картина... [увеличивает яркость до максимума] Интеграторы всё время рекалибруются и луч возвращается в центр. Потом он снова начинает рисовать.
Если при программировании этого не делать, картинку начинает колбасить очень сильно.
frog:
А на чём программируют для него?
svo:
В его время программировали чисто на ассемблере. Сейчас я программирую на Си. Есть компилятор, GNU C, версии 2.8 или 2.6., который собирается под Линуксом. Под Windows может быть тоже, я не уверен.
И, можно на обычном нормальном Си писать под него программы.
frog:
У тебя в руках то, чем собственно управляется машинка. Что это такое и как работает?
svo:
Это обычный пультр для игры. Он аналоговый. Джойстик.. Больше всего похож на пультик от вертолёта. Там потенциометры стоят. Ну и четыре кнопки - в принципе, ничего особенного.
В такой же выход включается световое перо. Ещё я делал адаптер, чтобы можно было играть с пульта современного Playstation.
frog:
А не делали для него клавиатуру, дисковод, что-то такое?
svo:
Не в курсе, может что-то и делали. Вообще, вот этот порт - это фактически шина прямо с процессора. На этих ножках есть практически всё, что есть в компьютере. Можно сюда хоть 3D акселератор повесить, математику какую-то просчитывать... Выдавливать на него какие-то данные для расчётов, получать обратно уже просчитанные. В принципе, только фантазией всё ограничено и временем.
frog:
А под него до сих пор разрабатывают железки, софт?
svo:
Да, конечно. Недавно я купил 3D очки для этого устройства. Они, фактически, повторяют оригинальную конструкцию (для Vectrex они были, с самого начала). Но те, что были изначально - они очень редки. Их практически не осталось. Это механическое устройство, очень расхлябанное. Кроме того, есть и световое перо.
Но, что касается клавиатур и прочего - к сожалению, это не имеет особого смысла, потому что на этом экране не показать большое количество текстовой информации. И что набирать - непонятно.
[...]
frog:
Второй день Chaos Constructions. Вячеслав Славинский сегодня принёс к Vectrex'у два новых экспоната. О первом из них, 3D шлеме, можно сказать, почти, виртуальной реальности, он и расскажет
svo:
Это не оригинальный шлем (оригинальных было выпущено очень мало), это реплика, которую коллега из Швеции сделал сам. Он выпустил партию, порядка 100 штук.
К счастью, его конструкция очень простая - это просто вращающийся диск с цветными секторами
frog:
А смысл? Зачем он нужен?
svo:
Он нужен для того, чтобы, во-первых, дать возможность человеку видеть цвет (Vectrex изначально черно-белый) и, во-вторых, поскольку мы можем глаза переключать как очки с затворами, получается некоторая трёхмерная графика.
frog:
И как достигаются эти две цели?
svo:
Когда перед глазами вращается диск, его половина просто чёрная. И она поочередно закрывает то один глаз, то другой. И, фактически, мы можем создавать две разные картинки.
Вот диск от игры [достаёт диск из пакетика]. Поскольку мы пытаемся создать цвет, нам нужно какую-то часть линии рисовать красным, какую-то зелёным, какую-то синим. И потом для другого глаза всё тоже самое.
Для разных игр делали разные диски, потому-что где-то хотелось рисовать больше зелёного, а где-то поровну всех цветов.
Кажется, что диск вращается с бешенной скоростью перед глазами но, на самом деле, ничего страшного, поскольку это происходит в параллельной плоскости (если у вас лицо как-то сильно не выступает :)
frog:
А куда он включается - в какой порт?
svo:
Он включается в порт джойстика. Там на этом порту есть питание и, когда моторчик крутится, там есть прерыватель который создаёт импульсы каждый оборот. Соответственно, получается кадровый синхроимпульс.
frog:
То есть компьютер синхронизируется от шлема?
svo:
Да, компьютер синхронизируется от механического мотора который вращает диск в шлеме. Частота кадров произвольная - как повезёт.
Было сделано всего три игры, которые поддерживают этот шлем.
[...]
frog:
И ещё немного про Vectrex. svo принёс световое перо и он нам расскажет, что же это такое, как подключается и с каким софтом работает.
svo:
Световое перо - это такое устройство графического ввода, которое впервые было предложено, наверное, годах в 1950-х (по крайней мере, все видели Sketchpad demo Ивана Сазерленда
Это, фактически, тоже самое, только на игровой приставке 1980-х годов.
Оригинального светого пера у меня нет но, к счастью, это очень простое устройство - его каждый может сделать сам. Оно состоит из фототранзистора, усилителя и провода, который втыкается в игровой порт.
Всё это засовывается в маркер и получается такая вот красивая штучка. Фактически, идеал - не отличить от оригинала.
С поддержкой светого пера всего было две оригинальных программы - Art Master и музыкальная, там нотки. [показывает Art Master]
В режиме SKETCH мы можем цеплять курсорчик и рисовать. Но это не очень интересный режим...
frog:
А в чём идея - как оно определяет, где находится в данный момент перо?
svo:
Это зависит от режима. Поскольку у нас нет растровой развёртки, каждая программа делает это по-своему. Вот сейчас она просто следит всегда за курсором. Когда я подношу перо к курсору, он подсвечивается и я могу его таскать за собой. Когда нажимаю кнопку на игровом пульте, он начинает рисовать за курсором линию.
Компьютер по времени определяет, где находится перо . В тот момент, когда он сканирует именно вот этот участок экрана, если в этот момент сюда приходит импульс, то он поступает в игровой порт и компьютер узнаёт, что я поднёс перо к экрану.
Но [возвращаясь к программе Art Master] гораздо интереснее режим анимации.
Обратите внимание, что происходит на экране, когда я ставлю точки... Он сканирует весь экран растром и пытается определить момент, когда импульс придёт обратно. Таким образом он определяет, куда я приставил перо.
Это очень интересная программа, потому что в ней можно делать анимацию: мы можем поставить несколько точек, соединить их друг с другом, после чего перейти к следующему кадру... В следующем кадре мы можем эти точки подвинуть как нам угодно.
Теперь запускаем анимацию и он интерполирует кадры друг между другом. Таким образом, можно рисовать небольшие мультики.
Всего можно сделать очень мало кадров - порядка 14 (зависит от количества точек), поскольку у него, бедного, памяти всего порядка одного килобайта.
frog:
Странно, что такая древняя игровая машинка, а сделали такую вот программу, световое перо предусмотрели. Зачем?
svo:
Вообще, для того чтобы заработать денег. Но идея была такая, что это всё продавалось в комплекте как некий обучающий и развивающий пакет для детей. Не думаю, что она многих развила, но получилась безумно интересная вещь, по-моему.
frog:
Да, действительно очень интересно.
Спасибо!
Видео:
http://www.youtube.com/watch?v=h8qTsqYQoFw
http://www.youtube.com/watch?v=VXZq56O15ko
http://www.youtube.com/watch?v=WI0x-0MfohI