за юлу плюс обеими руками за
на рассыпухе
к ULA + барсики есть, игрушки есть
ПДП есть схема у велесофт, ничего сложного
только где сам чип брать
Чорный Кот гдето в своих эмпиреях , к простым смертным не спускается
за юлу плюс обеими руками за
на рассыпухе
к ULA + барсики есть, игрушки есть
ПДП есть схема у велесофт, ничего сложного
только где сам чип брать
Чорный Кот гдето в своих эмпиреях , к простым смертным не спускается
Последний раз редактировалось zx_; 22.06.2015 в 22:47.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
и зачем для какой то унылой ULA+ делать видеокарту? любители ЛА3 не поймут что такое FPGA
а можно и не так заполнять)) а ты подгоняешь управление девайсом под частный случай - нинада так делать!
потому и жёсткие, что выбираются один раз на всю игру
"как-то странно" заполнять экран непременно "без промежутков", когда в играх (втч Диззи) дофига экранов полупустых
я ж сказал - список пар "координаты, номер объекта" (и по номеру из массива прочие параметры взять)
для объектов одинакового размера, как ты хотел, можно тупо сделать сразу массив адресов изображений
остальные все параметры одинаковы, а экранный адрес в цикле меняешь сам
да размер тут совершенно же ни при чём, отрисовка - по порядку перекрытия у объектов
да здесь на форуме всегда народ общался "на ты"
блиттер может выводить изображения где угодно, заставлять его печатать "строками" - НЕлогично
нет, не хватит - ну, вот я, например, желаю кучу перекрывающихся слоёв (и даже независимых отдельных объектов)
---------- Post added at 02:24 ---------- Previous post was at 02:20 ----------
это можно делать в обычной памяти, а пассивные девайсы проще присобачить к любому спектруму
где проблема, вызвал простенькую процедуру, она кидает, времени на это уйдёт немного
"мелкий" доступ по одному объекту (или даже частичному параметру) тоже нужен (а точнее даже - необходим!)
а ресурсы железяки небесконечны, так что - только в качестве необязательной примочки, а не основы
---------- Post added at 02:25 ---------- Previous post was at 02:24 ----------
проще вейтить проц при переполнении буфера, всё равно оно маловероятно
разве что нарочно бомбить девайс переброской кучи огромных блоков
не, в простейшем варианте как раз в порты, буфер же прозрачно работать должен
есть он, или без него видеокарта всё успевает - программисту разницы никакой
---------- Post added at 02:28 ---------- Previous post was at 02:25 ----------
издиваишси?ну при чем тут видеокарта
wait проца как защиту от переполнения буфера
+ хорошо бы строчное прерывание
Прихожу без разрешения, сею смерть и разрушение...
Размер тайлов выбирает разработчик игры и может изменить в любой момент
Промежутки после перехода в другое место может потребоваться заполнять черным тайлом, чтобы затереть предыдущую картинку (на этом месте в предыдущей картинке могло быть дерево или другой объект). Если наносим уже второй слой (этой же картинки) также построчно - можно использовать нулевой прозрачный спрайт. Или указывать координаты для каждого одиночного тайла. Можно конечно заполнить экран черным цветом, а потом рисовать одиночные объекты. Это выбирает разработчик игры - как ему удобно, так и заполняет. Новый графический режим только ускоряет вывод тайлов и спрайтов."как-то странно" заполнять экран непременно "без промежутков", когда в играх (втч Диззи) дофига экранов полупустых![]()
Дело в том что предлагаемый графический режим так тоже может, он используется для печати одиночных тайлов и спрайтов. Но для быстрого заполнения всего экрана и введена построчная печать, также как и печать вертикальными столбиками из тайлов. Согласитесь, если тайлы идут друг за другом, то координаты следующего тайла на экране может вычислять сама видеокарта. Если же указывать их для каждого тайла в строке - это замедлит вывод.я ж сказал - список пар "координаты, номер объекта" (и по номеру из массива прочие параметры взять)
для объектов одинакового размера, как ты хотел, можно тупо сделать сразу массив адресов изображений
остальные все параметры одинаковы, а экранный адрес в цикле меняешь сам
Печать строками и столбцами введена для ускорения вывода нескольких графических объектов.
да размер тут совершенно же ни при чём, отрисовка - по порядку перекрытия у объектов
блиттер может выводить изображения где угодно, заставлять его печатать "строками" - НЕлогично
нет, не хватит - ну, вот я, например, желаю кучу перекрывающихся слоёв (и даже независимых отдельных объектов)
Я ведь и так предлагаю кучу перекрывающихся слоев и независимых объектов. Прозрачный цвет позволяет накладывать объекты без клешинга атрибутов. Указываем координаты на экране с точностью до точки для каждого объекта и печатаем по номеру. Не по адресу, а по координатам и номеру. А видеокарта/видеорежим сам определяет адреса. Ведь так проще и быстрее ?
Как выводить тайлы на экран построчно, столбиками или указывая координаты каждого - это выбор разработчика игры. Режим должен поддерживать все три вида печати. Это сделано для обеспечения скорости и гибкости построения экрана. Все это вместе с прозрачным цветом на краях тайлов и спрайтов, а также прозрачный тайл/спрайт с нулевым номером позволяет строить практически любые экраны в играх.
---------- Post added at 08:05 ---------- Previous post was at 06:58 ----------
Посмотрите там, может поможет. ULA + это всего лишь палитра. Она не облегчает написание игр. Мы хотим при той же графике упростить и ускорить построение изображений.
Последний раз редактировалось zx-kit; 23.06.2015 в 05:17.
"L-256"
а если тайлы шестигранные? есть же куча игрушек где они именно такие
---------- Post added at 07:47 ---------- Previous post was at 07:31 ----------
опять же это какое то жесткое ограничение, т.е. нельзя карту бомбить большими изображениямии, а мочему собстно? Да и что такое большие? Это те что карта не успеет вывести пока проц не подаст следующую команду, ну к примеру какая та играшка, которой надо вывести ну 50-70 спрайтов, 32х32 на экран, карта однозначно не будет успеваь их походу отрисовывать, фифи переполнить нараз.
Вообще с портами работать это на самом деле криво, даже если эти порты в память отражены, нужно работать с командами и аргументами, а это поток команд с разным числом аргуметов, а еще лучше это высокоуровневый DisplayList
---------- Post added at 07:49 ---------- Previous post was at 07:47 ----------
экран 320х240 при тайле 8х8 это надо карте подать 40х30=1200 комнд, а если слове 3-4? ну блин тоже же глупо, проще такие тривиальные вещи как вывод мелких тайлов в цикле, обучить карту делать через КА
Нужно при печати очередной строки тайлов сместить координаты начала строки на требуемое место.
Тайлы произвольной формы надо вписыть в прямоугольный тайл и лишние части закрасить прозрачным цветом.
Можно для неизменяемой части экрана создать описание в виде строки данных типа SIZE, 8, 8, SPR_ADDR, 1, 2, PRINT, AT, X, Y, 1, 2, 3, 4, 5, ENTER, PRINT, 3, 4, 5, 6, 7, AT, Y2, X2, SPR_ADDR, 7, 8, SIZE, 20, 20, PRINT, 1, ... END.опять же это какое то жесткое ограничение, т.е. нельзя карту бомбить большими изображениямии, а мочему собстно? Да и что такое большие? Это те что карта не успеет вывести пока проц не подаст следующую команду, ну к примеру какая та играшка, которой надо вывести ну 50-70 спрайтов, 32х32 на экран, карта однозначно не будет успеваь их походу отрисовывать, фифи переполнить нараз.
Вообще с портами работать это на самом деле криво, даже если эти порты в память отражены, нужно работать с командами и аргументами, а это поток команд с разным числом аргуметов, а еще лучше это высокоуровневый DisplayList
---------- Post added at 07:49 ---------- Previous post was at 07:47 ----------
экран 320х240 при тайле 8х8 это надо карте подать 40х30=1200 комнд, а если слове 3-4? ну блин тоже же глупо, проще такие тривиальные вещи как вывод мелких тайлов в цикле, обучить карту делать через КА
Можно описать так 15 экранов и разместь в SD-RAM. Тогда при переходе Диззи в очередное место передавать видеокарте адрес описания фона этого места и команду типа DRAW_LOCATION. После этого сразу команды печати спрайтов объектов.
Последний раз редактировалось zx-kit; 23.06.2015 в 11:05.
"L-256"
Для какой из конфигураций?
"METEOR"??? Почему не "болид" тогда? Неудачное название, это даже не объект какой-то там, а явление возникающее при сгорании... Не хотелось бы это явление наблюдать при подключении карты.
Параллельно не потяну, задача хоть и простая, но не из легких. Свои мысли устройства я наглядно изложил здесь в виде схемы.
Для VGA не хватает выводов, разве что 6bpp получится (решается простым переходником HDMI2VGA), выхлоп переходника можно на шурупы, чтобы карта не выпадала и всё хорошо.
Будет 60Гц как у нормальных людей, а 50Гц смотреть и фапать через SCART или S-Video с выхода видео компа, он то у нас будет свободный, я планирую TV подключить двумя шнурками VGA/SCART комп и HDMI для DivGPU или exGPU или как там по понятней карту назвать...
Большая скорость кого/чего? Во первых плохое соотношение цены и функционала. Уже лучше VNC2, дешевле и в разы для этого случая лучше.
Добавил в схему CP2104, раз нужна возможность отладки и загрузки обновлений или обмен данными с PC (USB-UART).
Раз пошла такая пьянка с U16, то мне лучше идти по пути совместимости обвеса и простоты. Т.к. отлаживать видео режим мне придется на U16, соответственно делать новую конфигурацию спека с этим режимом.
зачем ты вообще принуждаешь разработчика выбирать какой-то общий (пусть даже на время) размер?
ускорять и делать удобным нужно вывод ЛЮБЫХ объектов в ЛЮБОМ порядке
а ты хочешь один частный случай в ущерб другому - нинада так делать!
так - не может, блиттер выгодней запускать выдачей приёмника чем источника
можно быстро с промежутками печатать один объект, а потом к другому переходить
это как "быстрый" бег в грязи по колено вместо "медленной" ходьбы по дороге
а зачем им друг за другом идти так часто, чтобы обращать на это внимание?
вычисление координаты - это копейки, но из-за обязательного вывода ненужных тайлов они накапливаются
ты пойми: для разгрузки медленного z80 выгодней очистить полностью фон и вывести поменьше крупных объектов!
нифига не проще и не быстрее, а ты снова "улучшаешь" частный случай в ущерб ВСЕМУ!
а если вывод не в экран, а в буфер прямоугольный, а потом уже его на экран?
а если крупные объекты для начала конструируются из мелких, а после вывод?
а если у разраба более трёхсот объектов разных размеров?
или вовсе нарезаемых из большой картинки как ему нужно
как их напечатать по номерам?
как уже мной было сказано выше, для скорости гораздо выгодней не мельчить
а для гибкости в построении любого экрана хватит одного универсального интерфейса
---------- Post added at 18:36 ---------- Previous post was at 18:27 ----------
можно, но бессмысленно, потому что емнип блиттер с современной доступной памятью в одном кадре успевает обновить площадь экрана несколько раз, для over 95% игрушек этого хватит, притом место в буфере по ходу отрисовки даже очень крупных спрайтов всё же постепенно освобождается
к портам доступ нужен как ни крути, разраб может хоть скриптами хранить экраны, всех его хотелок не предусмотришь, и чем более высокоуровневый и специализированный интерфейс, тем больше шансов чем-то не устроить больше людей, в чём-то накосячить и недодумать
повторю, проще и быстрей не мельчить, и вообще отказываться от тайлов
или тактолько всё же лучше прямоугольником
Прихожу без разрешения, сею смерть и разрушение...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)