User Tag List

Результаты опроса: Для какого компьютера и конструктива делать видеокарту "METEOR" ?

Голосовавшие
46. Вы ещё не участвовали в этом опросе
  • "ZXM-PHOENIX" с шиной ZX-BUS без корпуса

    18 39.13%
  • "ЛЕНИНГРАД" с шиной IDC-40 в корпусе

    8 17.39%
  • МОДУЛЬНЫЙ КОМПЬЮТЕР "CHELYABINSK" с шиной ZST-BUS без корпуса

    2 4.35%
  • ОРИГИНАЛЬНЫЙ "ZX SPECTRUM" с шиной ZX-EDGE в корпусе

    9 19.57%
  • "ZX-EVO" с урезанной шиной ZX-BUS без корпуса

    23 50.00%
Опрос с выбором нескольких вариантов ответа.
Страница 7 из 100 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 1084

Тема: Быстрая видеокарта "METEOR-2013"

Комбинированный просмотр

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

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Alex Rider, если спрайты разного размера (пуля и танк, например), то надо иметь таблицу адресов начал спрайтов.

    zst, генератор просто меньше по габаритам, меньше элементов. Если будет генерация от ZXBUS, то его вообще можно не ставить (на выбор юзера). 14 МГц достаточно, подавать на PLL вход Циклона(можно посмотреть в даташите или Квартусе). С помощью ФАПЧ можно получить 56 МГц или 84.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    04.12.2008
    Адрес
    г. Черкассы, Украина
    Сообщений
    957
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    А чем такой генератор лучше ? И какую лучше частоту: 14, 56, 84 или какую другую ? К какому входу FPGA лучше подключать? Вообще-то планировалось брать 14 МГц с материнской платы компьютера. Но у некоторых компьютеров ее нет на разъеме.
    Сделай пока возможность его установки. А какой именно частоты зависит от того какие видео режимы планируешь, экспериментально можешь попробовать подобрать в MegaWizard (ALTPLL).

    Цитата Сообщение от zst Посмотреть сообщение
    Только если останется 6 лишних выводов.
    Должны остаться, иначе не будет куда развивать конфигурацию.
    Цитата Сообщение от zst Посмотреть сообщение
    Пока от лишних наворотов я отказался. Цель - максимально ускорить работу копирования спрайтов в область экрана.
    Наворотами это думаю назвать сложно, корки контроллера SDRAM есть. Перенос данных от спека в видео ускоритель возможно, при наличии простого DMA на счетчиках.

    Цитата Сообщение от zst Посмотреть сообщение
    Думаю, раз есть FPGA, может предусмотреть переключаемый видеовыход, как в Speccy2010 - SCART/VGA/S-VIDEO/COMPOSITE/HDMI ? Хотя бы предусмотреть на будущее возможность подпайки через разъем дополнительных разъемов.
    Все закладывать не имеет смысла, т.к. реально использоваться будет всего один видео выход. Но как базовый, я бы распаял VGA, остальное пусть подрубается в интерфейс.

    Цитата Сообщение от zst Посмотреть сообщение
    Хорошо бы пока сделать новый графический режим в соответствии с указанным набором команд для тех компьютеров на FPGA, где это возможно - Speccy2010 и ReVerSE. Как вы считаете - это возможно ?
    Возможно, но на данных бордах есть ряд архитектурных ограничений.

  4. #3

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Может хранить спрайты одинаковых размеров в наборах до 256 спрайтов в наборе ? Тогда на каждый набор нужно видеокарте указывать размеры спрайта и количество спрайтов в наборе. Возможно также начальный адрес каждого набора. Тогда при копировании на экран достаточно будет указать номер набора и номер спрайта. Остальные данные по началу блока и размерам спрайта указать при загрузке.

    Возможно FPGA сможет сама вычислять начала каждого спрайта по номеру набора и спрайта. Тогда нужно спроектировать достаточное количество наборов и выделить для этого соответствующие команды и параметры.
    Цитата Сообщение от IanPo Посмотреть сообщение
    Alex Rider, если спрайты разного размера (пуля и танк, например), то надо иметь таблицу адресов начал спрайтов.
    Эм... А вот я не пойму ни разу. А нельзя ли разве просто сначала грузить спрайты разных размеров вперемешку, а потом выводить их по номеру (возможно, 2-хбайтному)? И не заморачиваться наборами - наборы не нужны при программировании со стороны Спектрума.
    Цитата Сообщение от zst Посмотреть сообщение
    Может лучше стандартизировать размер для хранения спрайтов 16 х 16 точек ? Тогда рассчитывать адрес в FPGA проще. Указанием начальной и конечной строки/столбца спрайта можно уменьшать до нужного размера. А если нужно изобразить больший объект - то составлять их из нескольких спрайтов. Лишние пикселы закрашивать прозрачным цветом.
    Вот это не надо совсем. Спрайты должны быть произвольного размера (ну да, с каким-то разумным верхним ограничением). Потому что железка на карточке в 100500 раз мощнее Z80, а вы хотите на Z80 переложить вот эту вот аппликацию, склеивание спрайтов из кусков. Да еще и проверку того, чтобы вышедшие за пределы экрана куски с другой стороны не поперли. Сделайте простую для программистов штуку - это сильно повысит шансы того, что кто-то что-то под нее напишет.

    upd: а номер спрайта обязан быть 2-х байтным. Потому что первым делом я бы загрузил в видеокарту 256 спрайтов букв.
    Последний раз редактировалось Alex Rider; 23.06.2013 в 23:30. Причина: upd

  5. #4

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Эм... А вот я не пойму ни разу. А нельзя ли разве просто сначала грузить спрайты разных размеров вперемешку, а потом выводить их по номеру (возможно, 2-хбайтному)? И не заморачиваться наборами - наборы не нужны при программировании со стороны Спектрума.

    Вот это не надо совсем. Спрайты должны быть произвольного размера Сделайте простую для программистов штуку - это сильно повысит шансы того, что кто-то что-то под нее напишет.

    upd: а номер спрайта обязан быть 2-х байтным. Потому что первым делом я бы загрузил в видеокарту 256 спрайтов букв.
    Согласен, нужно предоставить программисту возможность использовать спрайты разных размеров. Для этого я и предложил идею наборов. Их еще можно назвать банками, блоками и т.п. Важно то, что в банке спрайты одинакового размера. Для простоты нумерации одним байтом количество спрайтов в банке может быть от 1 до 256. Это обеспечит легкость указания спрайта одним байтом.

    Например шрифт в кодировке WINDOWS-1251. Рисуем 256 символов размером 8 х 8 точек или другого размера. Это будет банк спрайтов номер 1. Чтобы изобразить текст сначал выбираем банк спрайтов номер 1 с символами. Потом уже используем однобайтный номер спрайта/ символа в банке. Мне кажется это проще, чем каждый раз указывать по два байта.

    Второй банк спрайтов может содержать тайлы травы, деревьев, земли и т.п. Он уже может содержать от 1 до 256 спрайтов размером, например, 12 х 12 точек. Это будет банк спрайтов номер 2. Тогда для изображения фона нужно установить текущим банк номер 2 и уже работать с однобайтовым номером спрайта. Это тоже проще, чем каждый раз писать по два байта.

    Фактически, старший байт номера спрайта - это номер банка. Банков спрайтов может быть, например, 16. Один для букв, другой для фона, третий для главного героя, четвертый - враги, пятый - пули, шестой взрывы и т.п. Каждый банк нужно описать следующими параметрами: адрес начала, размер спрайта по-горизонтали, размер спрайта по-вертикали. Не обязательно в банке рисовать все 256 спрайтов - только необходимое количество. Адрес следующего банка указывать на следующий байт после последнего байта предыдущего банка.
    Последний раз редактировалось zx-kit; 24.06.2013 в 05:14.
    "L-256"

  6. #5

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Может лучше стандартизировать размер для хранения спрайтов 16 х 16 точек ? Тогда рассчитывать адрес в FPGA проще. Указанием начальной и конечной строки/столбца спрайта можно уменьшать до нужного размера.
    Не, это уже лишнее.
    Вот сейчас у вас, по проекту, это нормальный классический блитер.
    Копирующий спрайты размером до 255x255.

    Деление же на блоки по 16x16, просто надуманный момент.
    Незачем усложнять жизнь программеру и заставлять его составлять объект из неких кусков 16x16.

    Вот каких размеров спрайт нужен, вот таким он и будет.

    Ну и нужно сделать, чтобы можно было задавать адрес спрайта, в двух вариантах:
    - по 3-ёх байтовому адресу в спрайт памяти
    - по 2-ух байтовому номеру (если кодер очень хочет сэкономить)

    Т.е. какой именно вариант будет удобен кодеру, такой он и и будет использовать.

    ---------- Post added at 22:59 ---------- Previous post was at 22:46 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    а номер спрайта обязан быть 2-х байтным
    Цитата Сообщение от IanPo Посмотреть сообщение
    Alex Rider, если спрайты разного размера (пуля и танк, например), то надо иметь таблицу адресов начал спрайтов.
    Верно IanPo говорит.
    V6Z80P - Back for Good

  7. #6

    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Думаю, раз есть FPGA, может предусмотреть переключаемый видеовыход, как в Speccy2010 - SCART/VGA/S-VIDEO/COMPOSITE/HDMI ? Хотя бы предусмотреть на будущее возможность подпайки через разъем дополнительных разъемов.
    Всенепременно. Хотя бы VGA был бы, иначе полезность карты сводится на нет, если к ней еще скандаблеры цеплять...

  8. #7

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Верно IanPo говорит.
    Таблица смещений спрайтов не обязательна ни в каком случае. В карточку я могу загрузить спрайты известным в известном мне порядке и рисовать их на экране по номеру - это удобно, исключает указательную арифметику в памяти видеокарты. Оставить прямую адресацию в видеократе стоит, да. Даже без видеокарты при выводе на экран 6912 можно обойтись без таблицы смещений спрайтов если хранить перед каждым спрайтом его размеры.

    ---------- Post added at 05:22 ---------- Previous post was at 05:19 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    Для этого я и предложил идею наборов. Их еще можно назвать банками, блоками и т.п.
    Так можно, да. Фактически, номер спрайта всен равно останется 2-хбайтным, только нумерация не сквозная. А как теперь сопоставить загруженный в карточку спрайт и его номер?

  9. #8

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Таблица смещений спрайтов не обязательна ни в каком случае. В карточку я могу загрузить спрайты известным в известном мне порядке и рисовать их на экране по номеру - это удобно, исключает указательную арифметику в памяти видеокарты. Оставить прямую адресацию в видеократе стоит, да. Даже без видеокарты при выводе на экран 6912 можно обойтись без таблицы смещений спрайтов если хранить перед каждым спрайтом его размеры.
    Смещение для каждого спрайта указывать не надо - только адрес начала банка. Это можно сделать при загрузке спрайтов в видеокарту.
    Так можно, да. Фактически, номер спрайта всен равно останется 2-хбайтным, только нумерация не сквозная. А как теперь сопоставить загруженный в карточку спрайт и его номер?
    На мой взгляд, удобнее хранить спрайты одинакового размера в одном банке. Это позволит видеокарточке самой рассчитывать адрес начала нужного спрайта по номеру. Для этого видеокарта возьмет адрес начала банка и прибавит к нему смещение (номер спрайта * ширина спрайта * высота спрайта). Программисту остается передать видеокарте номер банка и номер спрайта в этом банке.

    Вопрос к программистам - что представляет из себя карта уровня для игр типа R-TYPE на логическом уровне ? Достаточно ли 256 спрайтов для такой игры ? Или нужно несколько банков спрайтов по 256 ?
    Последний раз редактировалось zx-kit; 24.06.2013 в 05:40.
    "L-256"

  10. #9

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Для этого я и предложил идею наборов. Их еще можно назвать банками, блоками и т.п.
    Да, нормальная идея.


    Только, оставить выбор за кодером, какой метод использовать,
    описанные вами банки или
    3-ёх байтовый адрес.
    Т.е. нужно реализовать в карте оба метода.
    (начать с более простого)

    ---------- Post added at 15:11 ---------- Previous post was at 14:59 ----------

    Номер спрайта, можно сделать 2 байтовым.
    Но, по умолчанию, старший байт равен нулю.
    Тогда, кодер может установить:
    - только младший байт номера спрайта
    (если 256 номеров спрайтов достаточно)
    или
    - младший и старший байты номера спрайта
    (если 256 номеров спрайтов не достаточно)


    ---------- Post added at 15:15 ---------- Previous post was at 15:11 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    Достаточно ли 256 спрайтов для такой игры ?
    Вот, по предложенному мной простому методу,
    если 256 не достаточно,
    то кодер просто будет юзать 2-ух байтовый номер спрайта.
    Последний раз редактировалось Valen; 24.06.2013 в 16:19.
    V6Z80P - Back for Good

  11. #10

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Да, нормальная идея.


    Только, оставить выбор за кодером, какой метод использовать,
    описанные вами банки или
    3-ёх байтовый адрес.
    Т.е. нужно реализовать в карте оба метода.
    (начать с более простого)

    [/COLOR]Номер спрайта, можно сделать 2 байтовым.
    Но, по умолчанию, старший байт равен нулю.
    Тогда, кодер может установить:
    - только младший байт номера спрайта
    (если 256 номеров спрайтов достаточно)
    или
    - младший и старший байты номера спрайта
    (если 256 номеров спрайтов не достаточно)

    Вот, по предложенному мной простому методу,
    если 256 не достаточно,
    то кодер просто будет юзать 2-ух байтовый номер спрайта.
    Вы согласны, что спрайты в банке должны быть одинакового размера ?
    Старший байт номера спрайта - это номер банка.
    Чтобы видеокарта могла найти спрайт по номеру она должна знать начало банка и размеры спрайтов в этом банке.

    Если указывать при копировании трехбайтный адрес спрайта, тогда нужно будет каждый раз указывать и размер спрайта, если будут использоваться спрайты разных размеров. А при обращении по номеру банка и спрайта размер спрайтов будет читаться из параметров банка. Как их увязать между собой.

    Как вариант можно не делить всю область на банки и не сохранять их параметры. Тогда нужно каждый раз при смене размера используемого спрайта задавать текущий размер и указывать адрес начала спрайтов данного размера. Тогда нет ограничений на количество банков и не надо сохранять в видеокарте их параметры.

    FPGA может аппаратно умножать числа по 18 битов. Это можно использовать для вычисления смещения спрайта в банке.

    Запутаться можно уже...

    Давайте о банках и спрайтах еще обдумаем хорошенько. Еще нужно обдумать о поведении блиттера на границах экрана. Например, как изображать спрайт летящего справа-налево объекта ?
    Последний раз редактировалось zx-kit; 24.06.2013 в 16:42.
    "L-256"

Страница 7 из 100 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 19
    Последнее: 30.09.2011, 03:08
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

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