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

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 из 109 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 1084

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

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    поэтому тут нужен просто 3-байтовый адрес спрайт-памяти.
    Гораздо удобнее было бы адресовать спрайты по номеру! Не надо этой арифметики! Карте не врщвращает в Спектрум никаких данных - адрес (3-хбайтовый) придется считать в загрузчике, хранить в программе и передавать каждый раз в карту. Зачем?

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

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

    По умолчанию

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

    Цитата Сообщение от vlad Посмотреть сообщение
    zst раз уж решил взять CycloneII EP2C5Q208 то надеюсь, что будет возможность на будущее установить EP2C8Q208?
    Только если останется 6 лишних выводов.
    На мой взгляд, лучше поставить 3-ри SRAM 512K x 8бит вместо двух по 16бит, скорости и так хватит для 256 цветов, а вот возможностей в разы больше появится (вместо 3-ей SRAM возможно лучше поставить SDRAM для подкачки видео строк или использовать как буфер для различного вида видео данных).
    Пока от лишних наворотов я отказался. Цель - максимально ускорить работу копирования спрайтов в область экрана.
    Попробовал сделать пробные наброски схемы на EP4CE6E22 + 2-ве SRAM 512Kx8 в связке с EPM3064AT100. Пока вроде все получилось.
    При разработке ReVerSE II
    Хорошо бы пока сделать новый графический режим в соответствии с указанным набором команд для тех компьютеров на FPGA, где это возможно - Speccy2010 и ReVerSE. Как вы считаете - это возможно ?
    наткнулся на эти статьи, может пригодятся:
    Генерация видео сигнала "Generating NTSC composite video with an FPGA and two resistors"
    Генерация аудио сигнала "PWM (Pulse Width Modulation)"
    HDMI "HDMI Output"
    Спасибо. Хорошо бы почитать теорию, по видеоролику догадаться трудновато. Думаю, раз есть FPGA, может предусмотреть переключаемый видеовыход, как в Speccy2010 - SCART/VGA/S-VIDEO/COMPOSITE/HDMI ? Хотя бы предусмотреть на будущее возможность подпайки через разъем дополнительных разъемов.
    Цитата Сообщение от Valen Посмотреть сообщение
    Всё таки думаю,
    что в обычной программе, спрайты будут самых разных размеров,
    (т.е. по номеру спрайта уже нельзя будет вычислить, его адрес )
    поэтому тут нужен просто 3-байтовый адрес спрайт-памяти.
    Может лучше стандартизировать размер для хранения спрайтов 16 х 16 точек ? Тогда рассчитывать адрес в FPGA проще. Указанием начальной и конечной строки/столбца спрайта можно уменьшать до нужного размера. А если нужно изобразить больший объект - то составлять их из нескольких спрайтов. Лишние пикселы закрашивать прозрачным цветом.
    Планируете ли выложить все фалы проекта (или некоторые части) в открытый доступ ?
    Можно будет выложить исходники прошивки в этой теме или на GOOGLECODE.

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Гораздо удобнее было бы адресовать спрайты по номеру! Не надо этой арифметики! Карте не врщвращает в Спектрум никаких данных - адрес (3-хбайтовый) придется считать в загрузчике, хранить в программе и передавать каждый раз в карту. Зачем?
    Может хранить спрайты одинаковых размеров в наборах до 256 спрайтов в наборе ? Тогда на каждый набор нужно видеокарте указывать размеры спрайта и количество спрайтов в наборе. Возможно также начальный адрес каждого набора. Тогда при копировании на экран достаточно будет указать номер набора и номер спрайта. Остальные данные по началу блока и размерам спрайта указать при загрузке.

    Возможно FPGA сможет сама вычислять начала каждого спрайта по номеру набора и спрайта. Тогда нужно спроектировать достаточное количество наборов и выделить для этого соответствующие команды и параметры.
    Последний раз редактировалось zx-kit; 23.06.2013 в 20:57.
    "L-256"

  4. #63
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  5. #64
    Master
    Регистрация
    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. Как вы считаете - это возможно ?
    Возможно, но на данных бордах есть ряд архитектурных ограничений.

  6. #65
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 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

  7. #66
    Activist
    Регистрация
    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

  8. #67
    Guru Аватар для Дмитрий
    Регистрация
    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 был бы, иначе полезность карты сводится на нет, если к ней еще скандаблеры цеплять...

  9. #68
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    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"

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

    По умолчанию

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

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

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

  11. #70
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    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"

Страница 7 из 109 ПерваяПервая ... 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

Ваши права

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