User Tag List

Показано с 1 по 10 из 301

Тема: Вывод изображения ретрокомпьютера на TFT-матрицу ("народный контроллер")

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продолжу свой неторопливый монолог )
    Все в том исходнике очень непрямо, потому что после авторов прошивка кучу раз в разных местах патчилась разными людьми по принципу костыля. То есть делались некие заплатки под какие-то сложные случаи, из-за этого какие-то другие режимы работать переставали.
    Собственно, методом костыля и глубоко не вникая эту прошивку можно подтянуть под свои нужды; часть параметров там правится прямо в описании (maindef.h, struct.h, pcb*.h), некоторые общие для всех режимов параметры можно принудительно выставить в функции инициализации (там в скелете любой программы для, наверное, любого контроллера, есть функция начальной инициализации и функция с "главным циклом"), например, я там выбираю источник VGA при включении, соотношение сторон 4:3, четкость =0.
    Сам код я сейчас умышленно не привожу, это только создаст неразбериху. Когда отлажусь, выложу здесь все диффы вместе в комментариями, а пока только на пальцах расскажу суть того, что там можно "подкрутить".

    Далее. Из сломанной функции подстройки контрастности, которая на ВГА рисовала мне "синеву", пришлось исключить вычисления, связанные с гамма-коррекцией, ибо они завязаны на целый набор слабопонятных параметров и странных таблиц, понять которые в нерабочем виде невозможно. Поэтому для ВГА были приняты те же простые и прозрачные формулы, что и для прочих режимов, это вернуло нормальный белый цвет - а всякие "карамельно-бежевые" и "вырви-глаз-синие" режимы на спеке не нужны, даже не могу придумать, где можно их использовать.

    Еще один важный момент для Спека - правильные пропорции экрана. Достигаются корректировкой горизонтального пиксельклока, сделать это можно прямо из меню, но проблема в том, что сохранение в eeprom в этой прошивке работает как-то... в общем не работает оно. Починить не смог, а сброс на средние значения при пропадании сигнала или смене режима решил просто отключением автоподстройки клока и жестким прописанием нужного "среднего значения" IHTotal прямо в таблице режимов. Тогда нужный режим включается с нужными пропорциями и подстраивается только центровка.
    Этим я добился идеальной правильной картинки пентагона с RGBI-VGA в режиме 60гц

    А вот дальше танцы с бубном. Начал я тестить режим 50гц с RGBI-VGA. Он определялся то как 640x350_50Hz, то как 640x400_56Hz, то как 720x400_56Hz. Случайным образом. Это при том, что последних двух режимов на 56 гц НЕТ в таблице режимов.
    Пропатчил первый режим, чтобы получить весь бордюр (верх и низ), а также правильные пропорции, после бубна он у меня вписался как 640х550_50Hz:
    Код:
        //--------------------------------------------------
        // Preset Modes
        //--------------------------------------------------
        {   // Mode 0 : 640 x 480 x 50 Hz
            0 | _SYNC_HN_VN | _SYNC_HP_VN | _SYNC_HN_VP | _SYNC_HP_VP,          // Polarity Flags,
            640, 550,                                                           // InputWidth, InputHeight,
            315, 500,                                                           // IHFreq in kHz, IVFreq in Hz,
            _HFREQ_TOLERANCE, _VFREQ_TOLERANCE,                                 // IHFreqTolerance in kHz, IVFreqTolerance in Hz,
            800, 525,                                                           // IHTotal, IVTotal,
            144, 25,                                                            // IHStartPos, IVStartPos,
        },
    Но проблема в том, что включается он примерно один раз из пяти, откуда берутся левые режимы в других случаях - не пойму.
    Выстриг из таблицы все то, что касалось разрешений 640x400 и 720x400 - а они все равно включаются (
    IgorR76, были ли проблемы включения "несуществующих" режимов кривой детекции ? Как их победить ?

    Эти 3 пользователя(ей) поблагодарили valerium за это полезное сообщение:

    ALS(22.07.2021), andykarpov(25.07.2021), digibear(22.07.2021)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее: 11.09.2020, 09:36
  2. Ответов: 60
    Последнее: 19.06.2020, 13:02
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Вывод изображения
    от Shnurkov в разделе Изображение
    Ответов: 5
    Последнее: 10.02.2007, 15:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •