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


MWC 2018
2018
Computex
IFA 2018






