Энтузиаст исправил VBIOS на S3 Virge DX 4MB, так как видеокарта по умолчанию вместо чёрного цвета показывала тёмно-серый
Энтузиаст ретроэлектроники и автор YouTube-канала Bits und Bolts рассказал, что обнаружил во время штатной работы старой видеокарты S3 Virge DX 4MB небольшой недочёт. В процессе загрузки и отображения на мониторах в устройстве чёрный цвет на самом деле отображался как тёмно-серый. Оказалось, что производитель специально сделал такой выбор цвета. Пользователь ретровидеокарты решил отредактировать VBIOS и исправить эту ошибку.
Инженеры S3 решили искусственно осветить чёрный цвет при выводе картинки. Это было нужно, чтобы тёмные участки изображения не были слишком чёрными на ЭЛТ-мониторах в соответствии со стандартом NTSC. Для такой модификации используется отдельный «бит подъём уровня чёрного» (pedestal bit). В штатной прошивке этот бит имеет значение 3F, а если его сбросить до нуля, то он принимает значение 1F. Устанавливается этот бит в BIOS при загрузке системы.
Энтузиаст решил с помощью отладчика выполнить поиск этого бита, отслеживая целевые адреса и проверяя их значения. Исследователь даже задействовал преобразование шестнадцатеричной системы счисления в двоичную в приложении «Калькулятор» в Windows. В итоге энтузиаст обнаружил нужный бит по адресу 3c4. Когда его значение изменили до нуля, то фон экрана начал отображаться как чёрный. Потом исследователь вернул исходное значение бита, подтвердив, что один из восьми отредактированных битов отвечал за изменения уровня чёрного. Потом исследователь методом исключения определил, какой из восьми бит ему был нужен.
На заключительном этапе исследователь преобразовал текущий штатный VBIOS в файл, внёс в него найденные при изучении кода изменения и записал новую версию прошивки на видеокарту. При поиске в коде прошивки исследователь обнаружил в ассемблере два совпадения, повторно
Читать на habr.com
