Важная информация

User Tag List

Страница 27 из 71 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя
Показано с 261 по 270 из 703

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

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

    По умолчанию

    Давайте пока отложим способы формирования сцены игры в буфере экрана. Надо время все обдумать. Наверно найдем приемлемый вариант. А пока спроектируем вывод из буфера экрана в регистр RGB. Для начала будем считать, что у нас один буфер экрана с картинкой 320х240 точек по 15 бит на цвет. Потом доработаем для 4х буферов с врезанием экрана с динамической графикой в экран со статической графикой.

    Для хранения информации о цвете точек в строке организуем во внутренней памяти FPGA буфер VGA размером 320 ячеек по 15 бит. Из SDRAM будем читать данные пакетами по 8 точек (1 точка за такт) с паузами (по 6 и более тактов) и записывать в буфер VGA. После записи каждой точки в буфер VGA счетчик записи увеличивается на 1. Как только сделано 320 записей - буфер полон. Больше читать из буфера экрана не надо.

    Для адресации в буфере VGA во время чтения используем счетчик чтения. Так как читать из буфера VGA можно только тогда, когда он свободен от записи из SDRAM - нужно добавить между буфером VGA и регистром RGB небольшой буфер FIFO. Из регистра RGB будем отправлять данные о цвете точки через HDMI или аналоговые ЦАПы типа R-2R на монитор. Это уже будет зависеть от реализации конкретной видеокарты или девборды. В остальном, кроме типа выхода на монитор, новый видеорежим должен работать одинаково на всех устройствах.

    Во время строчного синхроимпульса VGA будем сбрасывать счетчики записи и чтения из буфера VGA, а также проводить регенерацию SDRAM. Достаточно сделать 3 цикла AUTO REFRESH в начале каждой строки VGA. Затем, во время левого бордера в строке начинаем заполнение буфера VGA данными о цвете точек из буфера экрана в SDRAM. К моменту вывода видимой части строки его начало уже будет заполнено.

    Так как для экрана 320х240 каждая вторая строка VGA в режиме 640x480@60Hz дублируется, то буфер загружать надо только 1 раз на 2 строки. В начале второй строки нужно сделать только 3 цикла AUTO REFRESH, а остальное время доступ к SDRAM будет в основном у блиттера. Аналогично нужно вывести все 240 строк изображения, сформированного в буфере экрана. Во время бордера в кадре VGA данные из SDRAM читать не надо.

    Вот и все. Для простоты частоту точек VGA выбрать 25 MHz, а FGPA и SDRAM 125 MHz.
    Последний раз редактировалось zx-kit; 04.07.2015 в 08:26.
    "L-256"

  2. #262
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,910
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    32 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    А пока спроектируем вывод из буфера экрана в регистр RGB.
    Это уже не моя компетенция, но все же: оно будет нормально, без искажений показывать обычный спектрумовский 6912, если карту не активировать после сброса/включения питания, а VGA-монитор подключить только к карте? Какие частоты развертки будут поддерживаться?
    Цитата Сообщение от zst Посмотреть сообщение
    Во время бордера в кадре VGA данные из SDRAM читать не надо.
    15с-BORDER по #fe сделать получится?

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Это уже не моя компетенция, но все же: оно будет нормально, без искажений показывать обычный спектрумовский 6912, если карту не активировать после сброса/включения питания, а VGA-монитор подключить только к карте? Какие частоты развертки будут поддерживаться?

    15с-BORDER по #fe сделать получится?
    Мы пришли к выводу, что после сброса работает стандартный режим 256х192 15 цветов с бордером. Вывод на SCART 50 Гц или на монитор VGA 640х480@60Hz без геометрических искажений. INT стандартный 50 Гц. Возможно получится и 50 Гц VGA.

    После включения нового режима 320х240 32K бордера уже нет так как экран занимает всю видимую часть на мониторе VGA 640х480@60Hz. INT новый 60 Гц для уменьшения мерцаний и совпадения с частотой развертки VGA.

    Возможно сделаем, как вы просили, возможность включения вывода стандартного режима по-новому в центре экрана для упрощения постепенного перекрашивания игр. При этом бордер будет как раньше или как статическая часть экрана 320х240.

    Полностью совместить 50 и 60 Гц не получается, приходится выбирать приемлемый и достаточно хороший вариант вывода.
    Последний раз редактировалось zx-kit; 04.07.2015 в 09:16.
    "L-256"

  4. #264
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Возможно получится и 50 Гц VGA.
    а почему не получится ? - сделать то его не сложно просто не все мониторы поддерживают 50 Гц - мой Асус 22'' например минимум 56 Гц поддерживает, я даже спецом для спековских дел купил CRT 17'' )

  5. #265
    Master Аватар для Eagle
    Регистрация
    14.09.2014
    Адрес
    г. Гусь-Хрустальный
    Сообщений
    603
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Полностью совместить 50 и 60 Гц не получается, приходится выбирать приемлемый и достаточно хороший вариант вывода.
    А конвертировать на лету, как в китайских конвертерах SCART to HDMI — не судьба?

    Скрытый текст

    ZX Spectrum +2 +divIDE + BDI
    Profi 1024k plus
    Scorpion ZS-256 Turbo+
    ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
    ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
    AVR ZX Spectrum V2.0
    Орион 128
    [свернуть]

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

    По умолчанию

    Мы уже обсуждали кадровые частоты ранее. Для старого режима 50 Гц или 60 Гц, для нового 640х480@60Hz.
    Эмулятор UNREAL выводит картинку в режиме 640х480@60Hz, любой монитор и телевизор с VGA входом также поддерживает этот режим. Это стандарт. Поэтому новый режим будет одинаково отображаться на любом экране. Разве что у широкоформатных по бокам будет лишнее затемнено.

    Надо блиттер делать. А сначала вывести состояние SDRAM на экран, потом добавить рисование точками. Работы много. а мы опять спорим про частоты.
    Последний раз редактировалось zx-kit; 04.07.2015 в 11:20.
    "L-256"

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

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Я сейчас занимаюсь разработкой основного режима 640х480@60Hz 24bpp, на его базе: 640x480@60Hz 24bpp/15bpp/8bpp, 320x240@60Hz 24bpp/15bpp/8bpp.
    На данный момент работает базовый режим 640х480@60Hz 24bpp и ZX-Spectrum screen x2 = H:32+256+32; V=24+192+24 с возможностью наложения.
    ОК. На какой частоте работает SDRAM и FPGA? Можешь сделать так, чтобы моя тестовая программа рисовала цветные полоски? Для этого надо реализовать команду рисования по точкам. А до этого пакетный режим SDRAM по 8 точек на частоте 125 MHz (для упрощения вывода на VGA)
    Последний раз редактировалось zx-kit; 04.07.2015 в 11:29.
    "L-256"

  8. #268
    Activist
    Регистрация
    21.12.2005
    Адрес
    Kyiv/Ukraine
    Сообщений
    415
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Потом доработаем для 4х буферов с врезанием экрана с динамической графикой в экран со статической графикой.
    Это аппрататное врезание статического и динамического экрана ?
    Думаю что не нужно, трата логики.
    Блиттер успеет.
    V6Z80P - Back for Good

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Это аппрататное врезание статического и динамического экрана ?
    Думаю что не нужно, трата логики.
    Блиттер успеет.
    Не все можно сделать с помощью денди-скроллов. Надо и неподвижную информацию выводить.
    "L-256"

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

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Добавил палитру, получается 4-ре страницы. Как лучше сделать обращение к палитре со стороны ЦП и переключение страниц, через порта? Тогда нужно 3-ри развёрнутых порта типа 0xnnD0, 0xnnD1, 0xnnD2, где nn=0-255. Или отображать палитру на память, это 3К (4-ре страницы). Формат записи тогда какой, страница палитры 0: +0 R, +1 G, +2 B ... +253 R, +254 G, +255 B, страница палитры 1: +256 R, +257 G, +258 B ... +509 R, +510 G, +511 B ... ?
    В блоке адресов регистров выдели два регистра. 1 регистр - установка номера цвета/начальный адрес для загрузки данных. 2 регистр - данные. Записывать в регистр данных последовательно R0,G0,B0, R1,G1,B1. Видеокарта сама увеличивает адреса, начиная с загруженного в регистр 1.

    00 MODE - режим графики: 1 = 256х192 32K, 2 = 320х240 32K, 0 - стандартный 256х192 с атрибутами
    01 ADDR_SCR1 - адрес экрана 1
    02 ADDR_SCR2 - адрес экрана 2
    03 CLEAR - закрасить экран цветом COLOUR
    04 PLOT - нарисовать точку цветом COLOUR по координатам Y, X с предварительным смещением в качестве параметра: 0 = без смещения
    05 PL1_ADDR - начальный номер цвета/адрес в палитре для загрузки данных
    06 PL1_DATA - последовательные данные цветов RGB в палитре
    07 PL2_ADDR - начальный номер цвета/адрес в палитре для загрузки данных
    08 PL2_DATA - последовательные данные цветов RGB в палитре
    09 PL3_ADDR - начальный номер цвета/адрес в палитре для загрузки данных
    0A PL3_DATA - последовательные данные цветов RGB в палитре
    0B PL4_ADDR - начальный номер цвета/адрес в палитре для загрузки данных
    0C PL4_DATA - последовательные данные цветов RGB в палитре
    0D PL_SELECT - выбор палитры 1-4
    Последний раз редактировалось zx-kit; 04.07.2015 в 18:55.
    "L-256"

Страница 27 из 71 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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