Имея на руках подобные исходники, сдампленную прошивку и опыт, я выяснил, что есть возможность заменить одно из уже прошитых разрешений на своё. Копая дальше я увидел разрешение 864x480 в сдампленой прошивке. В природе такого разрешения не существует, да и данные для него были какие-то неправдоподобные (например, кол-во общих точек для 75 Герц было 864 - что нереально). Поэтому решил, что 864 - это ошибка, и тут должно стоять 800. Поменяв 1(!) бит сделал новую прошивку.
---------------------------------
Значит так:
Имеем исходник. Так прописаны разрешения:
Ищем что-то подобное в прошивке:

Ага!
Код:
0x0280 0x015E 640x350
0x0280 0x0190 640x400
0x02D0 0x0190 720x400
0x0360 0x01E0 864x480 - вот что-то похожее, только почему-то 864...
0x0320 0x0258 800x600
Смотрим дальше, структура разрешения:

Так... Число активных точек указывается как индекс...
Тоесть нам нужны все разрешения с индексом 3... Вот они:
Смотрим...
Код:
{
0x0F, // Flags
0x03, // Res_
0x013B, 0x0257, // HFreq, VFreq
0x0420, 0x020D, // HTotal, VTotal
0x0090, 0x0023, // // HStart, VStart
0x19, 0x1E // HSyncTolerence // VSyncTolerence
},
{
0x0F,
0x03,
0x015E, 0x029B,
0x0360, 0x020D, // так, а тут что? число общих точек 864? нереально
0x00A0, 0x002A,
0x19, 0x1E
},
{
0x0F,
0x03,
0x017B, 0x02D8,
0x0420, 0x0208,
0x00A8, 0x001F,
0x19, 0x1E
},
{
0x0F,
0x03,
0x0177, 0x02EE,
0x0348, 0x01F4, // тоже
0x00B8, 0x0013,
0x19, 0x1E,
},
{
0x0F,
0x03,
0x01B1, 0x0352,
0x0340, 0x01FD, // и тут...
0x0088, 0x001C,
0x19, 0x1E,
},
...
Да уж, прикинув всё это, решил, что писалось то
ЭТО для 800 активных точек.
Меняем 1 байт, а точнее 1 бит...
П.С. Прошиваем, переключаемся на
60 Герц (ОБЯЗАТЕЛЬНО), картинку из точек на рабочий стол, радуемся
П.П.С. Определение разрешения системой возложим на EDID по схеме
zanuda
а можно вообще без EDID'а, DTD строка ниже по теме