User Tag List

Страница 10 из 71 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 703

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

  1. #91

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

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Со звуком пока я научился формировать пакеты и отправлять, а вот с содержимым пакетов пока непонятно, отправляю пакеты #84 Audio InfoFrame, #02 Audio Sample, #01 Audio Clock Regeneration (N/CTS) но телик молчит наверно ECC или содержимое не так собрано... нужны наглядные примеры передачи с их содержимым, как к примеру здесь.
    Со временем наверно все заработает.
    Вероятнее всего нужно делать две карты HDMI и VGA, т.к. вывода под завязку, а там уже по выбору кому что... Или ставить BGA.
    Пока я думаю вывести свободных выводов FPGA (около 18) на разъем. К разъему можно будет подключить небольшую платку. На ней получаем 15 бит на резисторы R-2R. Поставить вместо двух буферов 74LVC245 три регистра. Управлять все тактовыми импульсами с FPGA. Через 8 выходов при 0 подавать 8 битов цвета, при 1 - остальные 7. По фронту записываем 8 битов в первый регистр, По спаду - из 1 во второй регистр и из FPGA в третий.
    Так из 10 выходов получим 15. 5 на SD-CARD, 2 на KSI, SSI. 1 - на ввод данных с последовательного регистра с джамперами. Итого надо с FPGA подать 18 сигналов. Можно найти.
    "L-256"

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

  3. #92

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    где то не правильно посчитал
    выдержка из авторского мануала:
    Скорость работы акселератора ограничивается только физической скоростью работы основного ОЗУ.
    Определить время работы команды с акселератором можно по такой примерной формуле:
    Время работы = время работы команды без акселератора + время работы акселератора
    Время работы акселератора = число пересылаемых байт /7000000 (секунд)
    буфер (очередь) команд (записей в порты) уже есть фактически дисплей-лист, чем не устраивает?
    если ты имеешь в виду то, что я в порты железки кидаю набор команд который в буфере железки скапливается и потом выполняется, то не очень удобно. файлик я могу напихать на пц в текстовом редакторе. и не один, а несколько (например на каждый уровень разные сценарии вывода). Можно конечно потом просто этот файлик загрузить и в какой-то порт скинуть, как моды у ГСки.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  4. #93

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Время работы акселератора = число пересылаемых байт /7000000 (секунд)
    2 байта на 1 такт процессора, то есть 256байт 128 тактов, похоже на правду

  5. #94

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

    По умолчанию

    Таким образом, пришли к выводу, что каждой команде и параметру назначим свой адрес в области атрибутов? Будем записывать параметры в определенный адрес:

    LD HL, 0 ; координата Y
    LD (KOORD_Y), HL

    LD HL, -3 ; координат X
    LD (KOORD_X), HL

    LD A, 32 ; количество тайлов в строке
    LD (KOL), A

    LD HL, #003F ; номера тайлов 1 и 2
    LD (PRINT), HL

    LD HL, #2902 ; номера тайлов 3 и 4
    LD (PRINT), HL
    "L-256"

  6. #95

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    аким образом, пришли к выводу, что каждой команде и параметру назначим свой адрес в области атрибутов? Будем записывать параметры в определенный адрес:
    LD HL, 0 ; координата Y
    LD (KOORD_Y), HL
    LD HL, -3 ; координат X
    LD (KOORD_X), HL
    LD A, 32 ; количество тайлов в строке
    LD (KOL), A
    LD HL, #003F ; номера тайлов 1 и 2
    LD (PRINT), HL
    LD HL, #2902 ; номера тайлов 3 и 4
    LD (PRINT), HL
    Нужно ещё послать команду установки размера тайла LY=8, LX=8.


    Если всего 256 номеров тайлов, то тут получается ограничение,
    на размер тайловой графики,
    всего-то можно адресовать 256 * 8 * 8 = 16КБ из 4 МБ ?

    Какая формула, у видео-карты, для пересчета номера тайла в линейный адрес видео-памяти ?

    ---------- Post added at 13:29 ---------- Previous post was at 12:43 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    К разъему можно будет подключить небольшую платку.
    Может туда PAL кодер добавить ?
    V6Z80P - Back for Good

  7. #96

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Таким образом, пришли к выводу, что каждой команде и параметру назначим свой адрес в области атрибутов? Будем записывать параметры в определенный адрес:
    LD HL, 0 ; координата Y
    LD (KOORD_Y), HL
    LD HL, -3 ; координат X
    LD (KOORD_X), HL
    LD A, 32 ; количество тайлов в строке
    LD (KOL), A
    LD HL, #003F ; номера тайлов 1 и 2
    LD (PRINT), HL
    LD HL, #2902 ; номера тайлов 3 и 4
    LD (PRINT), HL
    Собсно не особо понятно, где тут акселерация, проц должен будет за видеокартой пританцовывать?

  8. #97

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет, я всё же никогда не смогу понять, зачем делать растровый нормальный экран и блиттер и превращать их в жалкий тайловый движок а-ля денди (при том, что конвертация игрушек лишь усложнится). Автор, видно, тоже не понимает, что он хочет сделать и для чего. Ладно, я свою ТЗ высказал. Пожелаю всем успехов в мертворождении.
    Прихожу без разрешения, сею смерть и разрушение...

  9. #98

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Нет, я всё же никогда не смогу понять, зачем делать растровый нормальный экран и блиттер и превращать их в жалкий тайловый движок а-ля денди (при том, что конвертация игрушек лишь усложнится). Автор, видно, тоже не понимает, что он хочет сделать и для чего. Ладно, я свою ТЗ высказал.
    Хотелось бы конструктива.
    Ну вот напиши, как ты думаешь лучше, отрисовать слой тайлов.
    V6Z80P - Back for Good

  10. #99

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Нужно ещё послать команду установки размера тайла LY=8, LX=8.
    Да, когда меняем размер тайлов/спрайтов надо подать команду типа
    LD HL, #0808
    LD (SIZE), HL
    Если всего 256 номеров тайлов, то тут получается ограничение,
    на размер тайловой графики,
    всего-то можно адресовать 256 * 8 * 8 = 16КБ из 4 МБ ?
    Для адресации памти до 16 М достаточно три байта. Программист при проектировании игры распределяет имеющуюся память под тайлы, спрайты, картинки, шрифты и т.п. графические объекты. Группирует в блоки до 256 спрайтов одинакового размера. Начало каждого блока в ассемблере называет как ему удобно, например, TILES1, TILES_20X20, SPRITES1_16X16, SPRITES_100X100.
    Как только переходим к печати тайлов или спрайтов из другого блока загружаем в видеокарту адрес этого блока спрайтов:
    LD HL,SPRITES_100X100
    LD (SPR_ADDR), HL

    Какая формула, у видео-карты, для пересчета номера тайла в линейный адрес видео-памяти ?
    АДРЕС НАЧАЛА БЛОКА * 256+НОМЕР СПРАЙТА * РАЗМЕР ПО-ГОРИЗОНТАЛИ * РАЗМЕР ПО-ВЕРТИКАЛИ

    Может туда PAL кодер добавить ?
    Предполагаю разъем SCART. Сигналы с него можно подать на внешний PAL-кодер, который есть в продаже.

    ---------- Post added at 18:28 ---------- Previous post was at 17:54 ----------

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Собсно не особо понятно, где тут акселерация, проц должен будет за видеокартой пританцовывать?
    Совсем без команд ничего работать не будет. Микропроцессор ведь не знает, что ему делать, пока мы не загрузим ему программу с игрой. Так и видеокарте нужно говорить, что делать, где и что рисовать. А вот рисует она сама и быстро.

    Давайте прикинем ускорение. Сколько пришлось бы выполнить работы микропроцессору при копировании тайла минимального размера 8х8 точек. Так как точка представлена двумя байтами размер тайла 8х8х2=128 байтов.

    Даже важно не количество точек, важно, что Z80 это делал бы программным способом долго, а с помощью нового режима графики быстро, достаточно для динамичных игр.

    Шина данных у FPGA 16 бит, а у Z80 - 8 (FPGA быстрее в 2 раза).
    Тактовая частота у FPGA 84 MHz, а у Z80 - 3,5 (FPGA быстрее еще в 24 раза)
    У Z80 команды копирования 1 байта выполняются около 20 тактов, а у FPGA копирование одной точки - 3 (FPGA быстрее еще в 3 раза)
    Итого - ускорение в 2 * 24 * 3 = 144 по сравнению с программным копированием спрайта.

    Кроме этого Z80 выполняет программы последовательно и кроме чисто копирования должен вычислять адрес каждой точки, что занимает определенное время. А в FPGA процессы могут выполняться параллельно, то есть при копировании точки может вычислять адрес следующей точки в буфере спрайта и буфере экрана.

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

    ---------- Post added at 18:36 ---------- Previous post was at 18:28 ----------

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Нет, я всё же никогда не смогу понять, зачем делать растровый нормальный экран и блиттер и превращать их в жалкий тайловый движок а-ля денди (при том, что конвертация игрушек лишь усложнится). Автор, видно, тоже не понимает, что он хочет сделать и для чего. Ладно, я свою ТЗ высказал. Пожелаю всем успехов в мертворождении.
    Что не так ? Важно, что новый режим упростит написание новых игр, возможно также поможет в ускорении старых. Если что-то мы упустили - пишите, как это исправить. Только с доказательствами, что так эффективнее. Как раз Денди мы копировать не собираемся, но и 3D делать тоже нет. Надо немного ускорить обычную графику Спектрума. Тайлы и спрайты просто помогают построить изображение из повторяющихся элементов. Так почти везде делают.
    Последний раз редактировалось zx-kit; 22.06.2015 в 16:31.
    "L-256"

  11. #100

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 16:57 ---------- Previous post was at 16:52 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    Давайте прикинем ускорение. Сколько пришлось бы выполнить работы микропроцессору при копировании тайла минимального размера 8х8 точек. Так как точка представлена двумя байтами размер тайла 8х8х2=128 байтов.
    понятно что быстрее чем процессором, но! пока рисует видеокарта, процессор крутится в цикле и к примеру ожидает бит готовности, что можно следующую команду подавать, что фактически означает безсмысленое проедание ресурсов онного, нужно не только быстро рисовать, но еще и грамотно с процессором синхронизироваться.

    ---------- Post added at 17:03 ---------- Previous post was at 16:57 ----------

    Sayman подкинул хрошую идею с шейдерами, это вообще идеальный вариант, у карты грубо говоря есть FSM которая умеет команды читать и блиттер, написал простейший код в 2-3 десятка команд, видеокарта при помощи блиттера вывела вам тайловый слой, причем нет каких то заморочек с ограничением размеров итд, надо к примеру эмулировать поведение странного экрана спектрума, тот же шейдер может и эту задачу выполнять

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

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

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

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

Ваши права

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