Как снизить частоты и напряжение в видеомодуле ноутбука при модификации в HEX редакторе.
Всем привет, решил накидать небольшой гайд по модификации видеомодулей ноутбуков в HEX редакторе, без использования утилит типа TechPowerUp Radeon Bios Editor, RaBiT, NiBiTor и других.
Для чего это надо? Например, если стоит задача редактировать частоты и напряжение в видеомодуле очень старой\новой видеокарты, а названные выше утилиты не могут работать или не открывают модуль. Бывает, что профили частот и напряжений прописаны в других местах модулей BIOS или видеомодуля, и поиск их затруднен.
Для начала необходимо запомнить (лучше записать) частоты видеочипа и памяти. И понять, какой из профилей мы собираемся редактировать, для 2D или 3D режима. Их количество разное и связано с конкретной моделью видеокарты. В 2D профиле видеокарта снижает частоты и напряжения до определенного значения, в 3D профиле повышает. Эти профили мы научимся искать и редактировать!
Для общего понимания, профили работы видеокарты задаются в виде последовательности 8 байт:
- 3 байта — частота ядра;
- 3 байта — частота памяти;
- 2 байта — напряжение.
Как пример последовательность 50 C3 00 80 38 01 B6 03, для 3D режима чипа AMD PARK из состава ноутбука HP ProBook 4720s. Что соответствует 500Mhz ядро, 800Mhz память, 0,95V напряжение.
Как одно превращается в другое? Показываю на примере: 500Mhz ядра умножаем на 100 = 50000, переводим в шестнадцатеричный формат (например здесь) 50000 = C3 50, переводим из Big-endian в Little-endian C3 50 => 50 C3. Готово, получается 50 C3, напоминаю, последовательность из примера 50 C3 00 80 38 01 B6 03. С частотами памяти аналогично, понятно?
Big-endian — порядок записи байтов от большого к меньшему. Этот порядок байтов более привычен для нашего чтения и применяется для высокоуровневого использования. Например, в Windows или протоколе TCP/IP.
Пример HTML-страницы
Little-endian — порядок от меньшего к большему. Этот порядок не привычен для человека. Но принят и используется в оперативной памяти компьютеров на архитектуре x86, то есть Intel или AMD.
Рассмотрим обратный пример. Допустим, нам нужно заменить частоту ядра из 500Mhz в 157Mhz. Чтобы видеокарта всегда работала на частотах 2D режима, даже после запуска 3D программ.
Умножаем 157Mhz на 100 = 15700. Переводим из десятичной системы счисления в шестнадцатеричную 15700 = 3D 54. Меняем порядок байтов в Little-endian 3D 54 => 54 3D. Меняем в исходном профиле 50 C3 00 80 38 01 B6 03 первые 2 байта (так как третий не используется, он нулевой) на 54 3D.
50 C3 00 80 38 01 B6 03 => 54 3D 00 80 38 01 B6 03
Сохраняем, прошиваем. Результат на фото ниже, тыдыщь!
Этот способ не панацея на все существующие видеомодули, но поможет найти искомое! Если оказался полезен, подписываемся в социальных сетях. Также буду рад посильной финансовой помощи в разделе «Стоимость услуг и Оплата«. Пока!