Энтузиаст исправил 30-летнюю проблему с черным цветом на видеокартах S3
Энтузиаст ретро-железа продемонстрировал исправление, которое устраняет блеклое изображение на видеокартах S3 1990-х годов. В недавнем видео Bits und Bolts (BuB) работал над видеокартой S3 Virge DX 4MB, чтобы исследовать и обезвредить «педестальный бит». Эта особенность VBIOS карты делает самые темные оттенки черного похожими на угольный, что крайне нежелательно при использовании с качественным монитором.
Прежде чем продолжить, напомним, что такое педестальный бит — это был баг/фича карт S3, таких как Virge, Trio и некоторых ранних моделей семейства Savage.
По своему разумению, S3 решила поднять уровень черного до темно-серого в VBIOS, чтобы изображение не было слишком темным для старых ЭЛТ-мониторов, особенно тех, что соответствовали стандарту NTSC. Это повышение черного до темно-серого и есть так называемый «пьедестал». Он был реализован в видеокартах той эпохи в VBIOS путем установки полного черного на более высокое значение. Как вы увидите позже, ютубер BuB отмечает, что исходное значение бита было 3F, но исправленная версия заменяет это шестнадцатеричное значение на 1F в определенном месте кода VBIOS.
BuB объясняет, что педестальный бит устанавливается в BIOS при загрузке системы. Таким образом, на затронутых системах черный цвет отображается немного ярче (яркий черный?) сразу с момента загрузки.
Ютубер разбивает процесс исправления педестального бита на несколько логических шагов. Во-первых, используется отладчик для поиска адреса и кода, где находится нужный бит. Благодаря предыдущему опыту работы с видеокартами и обсуждениям в сообществе, BuB ищет не вслепую.
В отладчике ютубер отследил свой первый целевой адрес и проверил, какие значения там находятся, используя шестнадцатерично-двоичный конвертер в калькуляторе Windows. Эта первая попытка отредактировать код вживую в отладчике, изменив проверенные значения на ноль (черный), ни к чему не привела.
Вторая попытка попадает в цель
Вторая попытка, нацеленная на отладку по адресу 3c4 1a, попала в цель. Когда значение по этому адресу было установлено на ноль, фон сразу стал темнее. Для проверки BuB вернул старое значение, подтвердив, что один из восьми отредактированных битов был педестальным. Потребовалась еще одна работа по исключению, чтобы определить, какой именно из восьми битов является педестальным, но BuB повезло с первого раза.
Итак, сложная исследовательская работа была завершена; теперь нужно было сдампить VBIOS в файл, внести найденные исправления и записать их обратно в оборудование.
Для дампа использовался инструмент NSSI. Затем BuB открыл свежесдампированный VBIOS Virge в Hiew (HEX view, или Hacker's view?). Однако при поиске кода он нашел два совпадения в ассемблере. Снова используя шестнадцатерично-двоичный конвертер в калькуляторе, он нашел исходный педестальный бит и отредактировал его. Он изменил эту единственную шестнадцатеричную запись с 20 на 00.
После этой работы по обнулению педестального бита потребовалось изменить контрольную сумму VBIOS, чтобы он не был отвергнут как поврежденный. Этот шаг был продемонстрирован в DOS и в более дружественной утилите для Windows. Короче говоря, старая контрольная сумма была 77, а новая — 97 (оба шестнадцатеричных числа).
Теперь успешно отредактированный VBIOS был прошит на чип. BuB заменил существующий чип VBIOS на модифицированный. Система загрузилась с великолепным, глубоким черным фоном с первого раза.
Вернувшись к отладчику, хотя в этом не было необходимости, BuB проверил адрес, который ранее был 3F, и теперь он действительно стал 1F — устранение педестального бита подтверждено. Ютубер указывает, что та же процедура должна быть применима к любой модели Virge DX. Элегантное решение 30-летней проблемы с серым цветом.
Источник: Tomshardware.com







0 комментариев