bootsector: (Default)
[personal profile] bootsector
Поскольку я делаю не статичный макет, а функциональную копию игрового терминала, мне, разумеется, нужно выводить на монитор изображение. Это не совсем тривиальная задача, как может показаться на первый взгляд, потому что мой монитор имеет интерфейс, который в современных компьютерах давно не используется. Я уж не говорю о цифровых 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. Анонс
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

bootsector: (Default)
bootsector

December 2017

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 6th, 2026 06:48 am
Powered by Dreamwidth Studios