Алексей Бутырин (bootsector) wrote,
Алексей Бутырин
bootsector

Categories:

Настольный терминал из Fallout 3. Часть 6

Поскольку я делаю не статичный макет, а функциональную копию игрового терминала, мне, разумеется, нужно выводить на монитор изображение. Это не совсем тривиальная задача, как может показаться на первый взгляд, потому что мой монитор имеет интерфейс, который в современных компьютерах давно не используется. Я уж не говорю о цифровых DisplayPort, HDMI и DVI — нет, это даже не обычный аналоговый VGA. Монитор рассчитан на низкочастотный чересстрочный видеосигнал — наверное, самый архаичный из ныне используемых стандартов проводной передачи видео, существующий в практически неизменном виде с 40-х годов.

В чересстрочном телесигнале сначала передаются все нечётные строки изображения (так называемый полукадр), а затем — все чётные. А поскольку люминофор имеет остаточное свечение, предыдущий полукадр не успевает окончательно погаснуть к моменту поступления следующего, и мы видим цельное изображение.



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

С распространением цифровых видеоинтерфейсов такие карты перестали выпускать, но до конца 2000-х они были в ходу. У меня в закромах нашлись две подходящих, Nvidia GeForce4 Ti 4200 и GeForce2 MX 400. Помните ещё эти названия? На меня прямо ностальгия нахлынула.



Обратите внимание на круглые чёрные разъёмы. Это различные версии интерфейса S-Video, который изначально появился в 1979 г., а в 1987-м получил привычный нам штекер типа mini-DIN. S-Video — это компонентный видеоинтерфейс, потому он так и называется (Separate Video). В нём яркость совместно c синхросигналом (Y) и цветность совместно с цветовой синхронизацией (С) передаются по отдельным проводникам с волновым сопротивлением 75 Ом.



Распиновка у него следующая:

1 — нулевой провод яркостного сигнала (Y);
2 — нулевой провод цветового сигнала (C);
3 — яркостный сигнал (Y);
4 — цветовой сигнал (C).

Раздельная передача обеспечивает более высокое качество картинки, в моём же случае этот интерфейс удобен тем, что позволяет получить чистый яркостный сигнал, который и нужен чёрно-белому монитору.

На моей GeForce2 MX 400 стоит классический 4-контактный разъём S-Video, а на GeForce4 Ti 4200 — 7-контактный. В 7-контактном четыре основных проводника те же самые, но появляются дополнительные:



5 — нулевой провод композитного видеосигнала (V);
6 — композитный видеосигнал (V) или компонентный синий (PB);
7 — не используется.

Контакты 5–7 имеют такое назначение только в видеокартах Nvidia; для ATI или интегрированных карточек распиновка будет другой.

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



Причём видеокарта была от ATI, но в данном случае это не важно — главное вывести яркостный сигнал (Y).

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

1. Открываем NVIDIA Control Panel и выбираем пункт «Несколько дисплеев — Изменение конфигурации дисплеев».



Обнаруживаем, что там нашего монитора не видно.

2. Открываем окно с дивным названием «Обнаружение отсутствия дисплея» и жмём на кнопку [Точное определение дисплея].



При этом он автоматически поставит галочку «Выполнять обнаружение телевизоров при включении». Впрочем, и после этого новых мониторов списке не появится.

3. Далее нужно закрыть NVIDIA Control Panel, щёлкнуть по её значку в трее правой кнопкой и в выпадающем меню вместо Single Display выбрать любой другой пункт, например, Clone или Dualview.



4. Только после этого в том же выпадающем меню появятся два наших монитора — подключённый по VGA (Analog) и по S-Video (TV).



После выполнения вышеописанных действий монитор наконец начал показывать картинку. Я пробовал выставлять разрешение вплоть до 1024 × 768 пикс., но лучше смотрелось всё-таки 800 × 600.



Когда уже всё, казалось бы, заработало, возникла ещё одна проблема. Видеокарта замечательно выводила картинку из оконного режима Windows, но стоило мне попытаться перейти в полноэкранный текстовый, как всё изображение с монитора пропадало! Я убил, наверное, час, пытаясь выяснить, в чём же дело, пока опытным путём не обнаружил, что переключатель Impedance на задней панели монитора нужно перевести в положение «75 Ω». При этом сигнальный провод через резистор 75 Ом замыкается на «землю».



После того, как я это сделал, оказалось, что видеокарта выводит картинку на телевыход не только под Windows, но и до её загрузки, в текстовом режиме. То есть можно вообще не использовать сложную операционную систему и запускать эмулятор из-под чистого DOS, под который он, собственно, и написан. В конечном счёте я заменил видеокарту на GeForce2 MX 400 — она низкопрофильная и легче поместится в корпус. На ней, кстати, есть композитный видеовыход, рассчитанный на обычный «тюльпан».

В результате тестовый стенд стал выглядеть так:



Следующий пост будет интересным — я расскажу вам про работу над эмулятором терминала и про то, что он в итоге сможет делать.

Продолжение: Настольный терминал из Fallout 3. Часть 7
Начало: Настольный терминал из Fallout 3. Анонс
Tags: fallout, железо, компьютеры, моддинг
Subscribe

  • Привет из 1993 года

    Для одной ретро-сборки мне понадобилось реанимировать дисковод для дискет 5,25". Если 3,5-дюймовыми флоппиками я в своей жизни пользовался много…

  • Подопытный кролик с фотоаппаратом

    Поскольку я тут недавно привился от коронавируса (вакциной «Спутник-Фау», как назвал её один дядька из поликлиники — видимо, в…

  • Первый раз в рабочий класс

    Вчера у меня, оказывается, была знаменательная дата. Ровно 15 лет назад я получил свою первую зарплату на своей первой работе. Удивительно, но чек…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments