Домой Железо Энтузиаст взломал VBIOS на древней видеокарте S3, чтобы сделать чёрный цвет по-настоящему...

Энтузиаст взломал VBIOS на древней видеокарте S3, чтобы сделать чёрный цвет по-настоящему чёрным

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

Автор YouTube-канала Bits und Bolts обнаружил особенность в работе старой видеокарты S3 Virge DX 4MB: чёрный цвет на ней отображался как тёмно-серый. Как выяснилось, производитель пошёл на такой шаг намеренно. Энтузиаст решил исправить это программное ограничение, отредактировав VBIOS видеокарты.

Энтузиаст взломал VBIOS на древней видеокарте S3, чтобы сделать чёрный цвет по-настоящему чёрным
Энтузиаст взломал VBIOS на древней видеокарте S3, чтобы сделать чёрный цвет по-настоящему чёрным — иллюстрация к материалу. Источник: 3dnews.ru

Компания S3 искусственно осветляла чёрный цвет при выводе изображения, чтобы на ЭЛТ-мониторах тёмные участки не теряли детализацию, соблюдая стандарт NTSC. За эту коррекцию отвечал так называемый «бит подъёма уровня чёрного» (pedestal bit). По умолчанию прошивка устанавливала цвет со значением 3F, но после сброса этого бита до нуля значение снижалось до 1F, что возвращало полноценный чёрный цвет.

Энтузиаст, обладающий опытом работы с классическим «железом», начал поиски ответственного бита с изучения кода VBIOS. Используя отладчик, он отслеживал целевые адреса и проводил манипуляции с шестнадцатеричными значениями. Нужный адрес обнаружился в районе «3c4» — как только значение там было обнулено, изображение на экране стало корректным. Путём исключения автор определил, какой именно из восьми битов отвечал за навязанный «подъём» яркости.

YouTube

Финальным этапом стала модификация прошивки. Энтузиаст преобразовал VBIOS в исполняемый файл, нашёл в ассемблерном коде соответствующие команды и заменил шестнадцатеричную запись «20» на «00». Важным моментом стал пересчёт контрольной суммы VBIOS, иначе система распознала бы файл как повреждённый: старое значение «77» сменилось на «97». После того как модифицированный образ был успешно прошит в чип, видеокарта начала выдавать настоящий глубокий чёрный цвет.

Источник: https://3dnews.ru