User Tag List

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

Тема: Новый графический режим для игр

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

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

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Палитру я уже сделал, остается самое основное - арбитр памяти. Нужно связать CPU, VGA с SDRAM.
    Проект создам у себя на github, так намного удобнее будет нескольким разработчикам работать над проектом в ветках, вести историю исправлений и вносить исправления, комментировать.
    Сначала сделать чтение из буфера экрана размером 320х240 точек в буфер VGA. Потом запись стандартной графики в буфер экрана. Каждую точку экрана спектрума, включая бордер представить в виде одного байта и записать в буфер экрана.

    Как только FPGA определит, что команда чтения или записи Z80 в/из ОЗУ должен подаваться запрос на доступ к ОЗУ - устанавливаться флаг или бит. Это значит, что как только будет закончен текущий пакет обращения к SDRAM со стороны блиттера или буфера VGA - следующий пакет будет отдан Z80. Так как пакеты по 8 слов можно выбрать один байт в первом слове. Остальные байты игнорировать соответствующими управляющими сигналами на SDRAM.

    Как только произведен обмен Z80-SDRAM сбрасывать флаг доступа Z80 и следующий пакет могут использовать AUTO REFRESH, буфер VGA или блиттер. Пока блиттера нет. А AUTO REFRESH будем делать 5 циклов в начале строки. После этого загружаем 16 слов в буфер VGA. Как только начнется активная часть строки - начинаем брать по 1 байту из буфера VGA и выводить в ЦАП/HDMI. Во время кадрового бордера читать в буфер VGA не надо.

    ---------- Post added at 15:41 ---------- Previous post was at 15:31 ----------

    Так как экран спектрума у тебя уже показывает - пока можно добавить запись этих точек в буфер экрана. Наверно в качестве ОЗУ у тебя кэш. Потом эти же данные будем брать из SDRAM.

    Самый высоких приоритет при доступе к SDRAM будет у Z80. Затем AUTO REFRESH. Затем чтение из буфера экрана в буфер VGA. Затем чтение из экранной области стандартного ZX Spectrum-a и запись точек в буфер экрана. Самый низкий приоритет будет у блиттера.

    В новых режимах чтение из экранной области стандартного ZX Spectrum-a и запись точек в буфер экрана не требуется. А в старых режимах не будет блиттера.

    ---------- Post added at 15:56 ---------- Previous post was at 15:41 ----------

    Допустим, флаги имеют имена F1...F5 соответственно. 1- когда установлен. Чтобы определить, какой будет следующий пакет SDRAM анализируем флаги:
    F1=1 - значит Z80.
    F1=0, F2=1 - значит AUTO REFRESH.
    F1=0, F2=0, F3=1 - значит буфер VGA и т.д.

    Соответственно на SDRAM с помощью мультиплексора подаем адреса с Z80 или соответствующих счетчиков.
    Флаг F2 устанавливать в начале каждой строки VGA и сбрасывать после выполнения 5 циклов регенерации. Флаг F3 устанавливаем как только прочитали и выдали на VGA 16 точек. Сбрасывать - когда загрузили из буфера экрана в буфер VGA (32 регистра по 8 бит) следующие 16 точек.
    Последний раз редактировалось zx-kit; 25.07.2015 в 14:02.
    "L-256"

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

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

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

Похожие темы

  1. Ответов: 18
    Последнее: 11.04.2021, 10:54
  2. графический редактор
    от yur в разделе Вектор
    Ответов: 1
    Последнее: 08.11.2012, 13:01
  3. графический режим на Атари
    от goblinish в разделе Atari
    Ответов: 3
    Последнее: 06.01.2012, 11:19
  4. графический софт для 48 К
    от goglus в разделе Софт
    Ответов: 6
    Последнее: 02.08.2006, 15:33

Ваши права

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