PDA

Просмотр полной версии : Быстрая видеокарта "METEOR-2013"



Страницы : 1 2 [3] 4 5

Hacker VBI
18.08.2016, 14:17
Sayman, окей, я тоже.

ты видишь вот этот набор:
dup пицот
pop hl
ld (hl),a
edup

и дальше

dup стопицот
pop hl
sub e
jr nc,$+3
ld (hl),b
add a,c
edup

и это по твоему всё дма?

Sayman
18.08.2016, 14:29
Hacker VBI, об чём речь?
баг дма с кратностью в 1 байт:
57916
а всего лишь-то поменял длину транзакции на 1 байт (т.е. сделал кратность в 1 байт).
про остальное даже говорить не хочу...

Hacker VBI
18.08.2016, 14:34
Sayman, доку читать приучен?
"Скорость пересылки составляет 7 Мгц, копирование происходит по два байта (16 бит) при условии что в этот такт к памяти нет обращения от ЦПУ, видео или ТСУ.
В среднем: 4 байта — 2 такта, дма обращается к озу за 1 такт 7 мгц, 16 бит, для пересылки надо 2 обращения
Получаем: скорость DMA 7 МБ/с"

это не баг, дядя.
я вот не могу укусить себя за локоть. это тоже баг?

zx-kit
18.08.2016, 16:16
у тебя же ног у плис не хватало)))

Найдем.


и еще с выравниванием возиться? лучше подумать на тему будущего блитинга с распаковкой

Я про скорость копирования писал. За 10 ns можно будет прочитать в два раза больше данных.


что еще за тайлоспрайты опять полезли?

А блиттер что пересылать будет ?

- - - Добавлено - - -


читать с экрана байт для выделения маски, что за вздор? куча разной фигни не нужной. ббррррр.

Это в стандартном режиме Спектрума надо читать с экрана и накладывать байт маски и байт спрайта. Я предлагаю байт маски и спрайта просто переслать в видеокарту.


это тоже очередной костыль. ТСлаб тоже сделал подобный баян в своём конфиге, только в дма, который умеет только по 2 байта (кратность 2 байта). если надо кратно 1 байту, то ловим пачку багов. нет уж, сами с этим играйтесь...
Есть способ рисовать спрайты с точностью до точки. При этом память сможет записывать 2 точки.

- - - Добавлено - - -



"Скорость пересылки составляет 7 Мгц, копирование происходит по два байта (16 бит) при условии что в этот такт к памяти нет обращения от ЦПУ, видео или ТСУ.
В среднем: 4 байта — 2 такта, дма обращается к озу за 1 такт 7 мгц, 16 бит, для пересылки надо 2 обращения
Получаем: скорость DMA 7 МБ/с"

В Метеоре скорость пересылки при одном банке SRAM составит до 7*14=98 Мбайт/c. С двумя банками 196 Мбайт/c. В моменты, когда не идет чтение слоев для вывода на телевизор и нет записи от Z80. Точка занимает 2 байта.
Сколько памяти SRAM и SDRAM желательно установить для игр?

Sayman
18.08.2016, 17:12
это не баг, дядя.
ну, нормально. картинка рассыпалась вся и это не баг.
на картинке, я ещё раз повторю - баг работы дма тсконфы. я указал вместо кратного 2м байтам размер транзакции, кратность в 1 байт (младший бит = 1). в результате картинка при работе дма разрушилась вся. включая выводимый спрайт, хотя он, вообще-то, якобы не должен быть разрушен. а ты мне про:

Скорость пересылки составляет 7 Мгц
ты тоже не всё в доке читаешь. там же чёрным по белому: "...и минимальных затрат логики ...". вот с этого и надо было начинать писать, а не мегагерцы.
и почему движок тупо не игнорирует 0й бит, а позволяет ему участвовать в операциях? что, опять программист должен побеспокоиться о заднице железячника?

Hacker VBI
18.08.2016, 17:43
Sayman,
я вижу по твоему размытому скриншоту следующее:
- странная палитра, она прописана вообще? правильно отправлена в систему? она для этого изображения? правильно ли установлены биты регистра palsel для неё?
- что с очисткой экрана, не нужно?
- доку писал я, и она проверялась TSL

но продолжим:
кратность пересылки - 2 байта. даже если ты указываешь 0 длину - это 2 байта. установить 1 байт нереально.
так же, указав нечётный адрес источника или приёмника - всё выравнивается системой (это относится к "0й бит" ).

пример бага в студию, ща разберём все допущенные тобою ошибки.

s_kosorev
18.08.2016, 17:47
я указал вместо кратного 2м байтам размер транзакции, кратность в 1 байт (младший бит = 1).
при том что в доке написано что нужно 0? странный вы тип, да там скорее всего всеравно что младшем бите, его просто физически в регистрах нет

- - - Добавлено - - -


что еще за тайлоспрайты опять полезли?
А блиттер что пересылать будет ?
блиттер пересылает области изображений

Sayman
18.08.2016, 18:04
Hacker VBI, окэй, сейчас всё перепроверю (но проверяю один фиг по эмулю, т.к. реального тсконфига у меня нет)

zx-kit
18.08.2016, 18:20
Hacker VBI, про память бы поделился опытом...

- - - Добавлено - - -


блиттер пересылает области изображений
А тайлы у нас будут ?

Hacker VBI
18.08.2016, 18:21
Sayman, ок.

заодно проверь следующее:
- Какая видеопага включена для отображения
- в каком она режиме (16/256 цветов)
- в какой паге ты производишь обновление памяти экрана.
- значения в G X/Y Offset, это интересно - возможно в них не 0, и у тебя сдвинуто положение экрана.

ну и стоит исходить из архитектуры системы, а не своих ожиданий и настроений.
а эмуль - это нормально.

Sayman
18.08.2016, 18:22
уухх сколько переменных то)))))
тем временем, косяк был мой. не скажу в чём.
заодно подсчитал. что спринтер тратит 22.5 такта на пересылку 256 байт. если я верно понимаю, те же 256 байт ТС перекинет уже за 128 тактов? или я опять не так подсчитал?!

s_kosorev
18.08.2016, 20:56
А спринтере 96 битная память?

- - - Добавлено - - -

Это примерно 12 байт за такт памяти

Sayman
19.08.2016, 06:12
s_kosorev, я мог ошибиться в расчётах. я же переспросил там в конце, что я опять не так подсчитал?
я исходил из двух вещей. первое, это по мануалу:

Скорость работы акселератора ограничивается только физической
скоростью работы основного ОЗУ. Определить примерное время работы команды с
акселератором можно по такой формуле:

Время работы = время работы команды без акселератора + время работы
акселератора

Время работы акселератора = число пересылаемых байт /7 микросекунд

второе, по исходнику, опять-таки если верно прочитал исходник на ahdl, память с акселем работают на 42мгц, а не 7 как у ТС (со слов Хакера).
попробуй это всё переведи в такты. тоже хочется узнать, где же тут истина.
так же могу сказать одну вещь, что если на ТСконфе после транзакции нужно ожидать прерывание от ДМА (типа он закончил пересылку данных, опрос статуса дма на предмет бита busy), то тут ожидать этого не нужно. выполнив последнюю команду при которой данные улетают куда надо, я могу выполнять любое другое действие сразу, без ожидания.
т.е. чтобы скинуть сколько-то байт (или заполнить или скопировать), я делаю примерно так:


di ;обязательно, иначе батхерт
ld d,d ;включить аксель
ld a,cnt ;сколько...
ld l,l ;просто копируем
ld a,(hl) ;в этот момент альтера перехватила команду и записала cnt байт из озу в свою память
ld (de),a ;а тут она после перехвата делает запись из своей памяти в озу
ld b,b ;отключение акселератора

никакого ожидания битов и статусов. после ld b,b волен делать что угодно.
Да и сам Хакер тоже не совсем верно подсчитал производительность дма. считать надо с учётом всех участвующих команд проца+время ожидания бита статуса.
единственное, думаю, что ТСный дма будет иметь выигрыш на больших объёмах транзакций. т.е. если я верно прочитал мануал, можно задавать для дма количество выполняемых транзакций (это кроме размера самой транзакции). в то же время, на спринтере именно такого параметра нет. т.е. макс.256байт и всё. потом, если надо, иди на новый круг выполняй процедуру.

s_kosorev
19.08.2016, 08:16
амять с акселем работают на 42мгц
42МГц DRAM не может работать, DRAM 7-10мгц потолок
Существенное повышение только за счет конвееров разных, page mode итд, но опять же DRAM 60нс вроде самые быстрые в конвеере

Sayman
19.08.2016, 09:18
s_kosorev, гугл с тобой не согласен. он мне подсказывает, что до 30мгц и выше при 60нс. уже как бы не 10мгц. и там речь идёт про fpm, а edo модули на спринтере не работают.
в описании на спринтера сказано, что память работает на своих запредельных частотах. в исходнике есть сигнал clk42. Иван говорил про него, что это 42мгц. в общем. открой исходник acceler.tdf, там есть ответ для тебя...
кстати, Иван писал об этом, что когда он там платы запускал, он тестировал на них разные модули СИММ. какие-то заводились сразу, какие-то тупили. закономерности он не выявил, но думаю, что в этом и причина, что некоторые модули не заводились на таких частотах.

s_kosorev
19.08.2016, 10:23
s_kosorev, гугл с тобой не согласен.
есть рандомный доступ, там где полный ras-cas а есть пакетные разные оптимизации, когда выбран ряд уже, так вот полный ras-cas потолок 7-10 мгц, внезапно даже у DDR4

- - - Добавлено - - -

Хотя не, обманул, пересчитал для DDR4 из шустрых, полный цикл аналогичный классической DRAM (тобишь вообще без каких либо оптимизаций) аж 26мгц скорости дает при рабоче 2133мгц :)

Sayman
19.08.2016, 10:32
s_kosorev, а я не буду спорить. я вот что вижу по исходнику, вижу, что это работает. а подробности уже не так важны. если по исходнику на память подают 42мгц. значит там 42мгц. реализация всё ровно. снимем замеры, посмотрим.

s_kosorev
19.08.2016, 10:44
какая там память?

- - - Добавлено - - -

Нашел что Sprinter 2000 использует simm72
Берем даташит на первую попавшуюся микруху 60нс
курим доку http://prntscr.com/c7ml8g и внезапно видим 90-110нс что то около 10мгц
42мгц это модуль может работать на такой частоте, но не сама память, модуль может юзать 6 тактов своего клока на 1 цикл памяти

Sayman
19.08.2016, 11:01
s_kosorev, Время работы акселератора = число пересылаемых байт / 7 микросекунд = 256/7 = 36.57142857142857 микросекунд . переведи в такты. это будет физически возможная (рабочая) скорость работы акселератора у спринтера. остальное для меня китайская грамота.
это я ещё не упоминал о том, что видеопамять тут на сраме...

s_kosorev
19.08.2016, 11:27
так если цикл 7мкс это 140 кб/с
т.е. примерно в 50 раз медленней чей 7мб/с

Sayman
19.08.2016, 11:31
так если цикл 7мкс это 140 кб/с
как ты это подсчитал? как бы, по манулу, вообще до 14мб/с... как бы. что-то у вас с математикой, у Ивана или у тебя (и у меня тоже).

s_kosorev
19.08.2016, 11:56
Ну числобайт надо не делить а множать на время цикла. Во вторых в исходниках видно что базовая частота для cas которая 42/4 еще и блокируется сигналом CT1 который я по *****коду на ахдл не распарсил еще.

- - - Добавлено - - -

14мб это пропускная или копирование? На копирование надо в 2 раза больше трактовке если что

- - - Добавлено - - -

нашел первоисточник недопонимания комрада Sayman, он просто читать не умеет
цитата из доки
"Время работы акселератора = число пересылаемых байт /7000000 (секунд)"
Что означает что нужно количество байт поделить на 7млн и получится время в секундах, автор тоже тот еще объяснятель

В общем 7мб/сек макс скорость копирования

- - - Добавлено - - -

пруф http://winglion.ru/sprinter/sp2000.pdf

- - - Добавлено - - -

и внезапно все так сложилось у автора с математикой все ок

Sayman
19.08.2016, 12:04
7000000 (секунд)
это как и есть 7 микросекунд, не?

автор тоже тот еще объяснятель
я там в мануале некоторые строчки по 10 раз перечитывал, чтобы понять ход его мысли)))

В общем 7мб/сек макс скорость копирования
теперь мы пришли к тому, с чего начинали, т.е. к всё той же кратности адресов и транзакций у ДМА в тс конфе. ))))
нет, я так то понимаю, что столбцы там всякие, чётные и не чётные и даже представляю какая каша может получаться, если адрес не будет чётным (проверял даже). вопрос не в этом, а в том, "а зачем, если можно сделать более удобнее и без потери скорости"?
ладно, это к данной теме (по сабжу) не относится... извините.

s_kosorev
19.08.2016, 12:09
А тем временем осознал что это CT1, это блин делитель на 1.5 итого частотам памяти 42/1.5/4 = 7мгц, надо схему смотреть но судя по высказывании о 14мб/сек вангую что simm72 либо запаралелен на 16 бит (что в теории правильно а на практике можно отхватить) либо отброшено половина сима, схему влом искать

- - - Добавлено - - -


это как и есть 7 микросекунд, не?
нет! почитай, это результат будет в секундах

- - - Добавлено - - -


т.е. к всё той же кратности адресов и транзакций у ДМА в тс конфе. ))))
кратность то причем? Ну отбросили некратные операции, это нормально, там как работа с байтами на 16бит шине может DMA в 2-3 раза по занимаемым ресурсам увеличить а польза сомнительная

Sayman
19.08.2016, 12:51
кратность то причем?
кратность при том, что если адрес источника не кратен 2 (т.е. иными словами не чётный, бит 0 выставлен и он внутри ДМА не игнорируется, судя по эмулятору), то чтение происходит с нечётного адреса. если не веришь мне, вон исходник демки jerry, там есть место, где он делает $&1 выравнивание на чётный адрес. убери выравнивание и посмотри на результат.
т.е. я говорю о том, что подобные, некоторые, аппаратные решения накладывают какие-то ограничения там, где этого можно было бы избежать. если говорить в рамках ДМА, то вот меня ломает делать всякие выравнивания лишние, тратить ценные байты. когда этого можно было бы избежать, работай дма чуть иначе (не поленись разработчик железки, так скажем).
схема спринтера (https://www.dropbox.com/s/u7bivx6myt764q1/Sprinter.pdf?dl=0).

s_kosorev
19.08.2016, 12:59
(т.е. иными словами не чётный, бит 1 выставлен и он внутри ДМА не игнорируется, судя по эмулятору)
может это баг эмулятора?

- - - Добавлено - - -


если говорить в рамках ДМА, то вот меня ломает делать всякие выравнивания лишние, тратить ценные байты. когда этого можно было бы избежать, работай дма чуть иначе (не поленись разработчик железки, так скажем)
уж не знаю, графика как правило естественным образом кратна двум

Sayman
19.08.2016, 13:08
уж не знаю, графика как правило естественным образом кратна двум
какая графика? спрайты всякие? ну я вот не художник. я беру спрайт со старшой какой-нить платформы, а он там большой. надо бы уменьшить. очень сильно не факт, что при масштабировании оптимальное качество будет именно "по нулям" (когда в размерах спрайта по х и у и по итогу в размере 0й бит = 0). а так я даже не суечусь, я выбираю такое масштабирование, которое на мой взгляд оптимально и мне не важно, кратно там оно чему-то или нет. графика байт на пиксель, какие там нафиг кратности? для чего?

s_kosorev
19.08.2016, 13:17
какие там нафиг кратности? для чего?
ну как правило по горизонтали кратно 2м, даже если по горизонтали не кратно, есть 50% что по вертикали будет кратно, да и добить до кратного совсем не сложно, в общем проблема высосана из пальца

Buyan
19.08.2016, 13:20
т.е. иными словами не чётный, бит 0 выставлен и он внутри ДМА не игнорируется, судя по эмулятору
заменил #0000 адреса на #0001 в одной из своих прог - ниче не изменилось, 0й бит игнорится, перекачай эмулятор, поди версия древняя

Sayman
19.08.2016, 13:33
перекачай эмулятор, поди версия древняя
перекачал по этой (https://github.com/tslabs/zx-evo/raw/master/pentevo/unreal/Unreal/bin/unreal.7z)ссылке.
результат:
57928
что я сделал:


dma_cpy defb #30 ;dest

; ds $&1 ;выравниваем по четному адресу *вот тут я закоментил*
map_pa

почему у меня всё слезло?


в общем проблема высосана из пальца
ну знаешь, кому из пальца, а кому и нет. мне не удобно. кому-то ещё там другое не удобно и т.д. как я уже говорил, если начать рыть авторские факи и мануалы. можно много несостыковок найти и вот таких "высасывалок". тут надо ограничиться (высосано из пальца), там, там.

ну, в общем, ладно. оставим это всё в покое...у меня всё ровно нет ТС и пока не планировал обзаводится этой штуковиной. был бы автор хотя бы русским (в плане нормальной связанной речи, а не в стиле удафком), можно было бы подумать.
в целом, могу написать, что конкретно мне в ТС не очень или очень не нравится, если сравнивать с тем же спринтером.

s_kosorev
19.08.2016, 13:54
Ты даже не понял что ты сделал. Ты -2 сдвиг сделал. Ты хоть в какой то точке способен разобраться? Нужно читать внимательно а не выдумывать

Sayman
19.08.2016, 14:02
Ты -2 сдвиг сделал.
вообще говоря адрес палитры сдвинулся на 1 байт.

Hacker VBI
19.08.2016, 14:06
Sayman, что ты городишь вообще
ds - stands for "define space".
db stands for "define byte"

s_kosorev
19.08.2016, 14:08
Ну и чего ты голову морочиш? Нормальный человек как бы понимает что если спереди убран выравнивающий ds то он должен быть добавлением после блока, что бы следующие данные не уползли. Т.е. собственную криворукость выдавать за архитектурные косяки платформы это конечно круто

Hacker VBI
19.08.2016, 14:13
s_kosorev, :v2_cheer:

Sayman
19.08.2016, 14:14
понимает что если спереди убран выравнивающий db
:biggrin:
вот объясни мне, в чём различие, если я данные беру с адреса 0x0a38 или с адреса 0x0a37? почему, к примеру, на спринтере мне не нужно двигать адреса. вот я закинул палитру прям следующим байтом после кода, без всякого деления и выравнивания. указал адрес источника, и она погрузилась. а тут я сделал тоже самое, убрал один выравнивающий байт и палитра, ВНЕЗАПНО, перестала загружаться, хотя, есть там...
...
defw pallete
...
ds $&1 ;выравниваем по четному адресу
DISPLAY "BLAH=",$ (тут напечатает адрес палитры, т.е. 0x0a38 изначально или 0x0a37 если убрать выравнивание).
map_pal

pallete incbin "gfx/fon.png.pal"
ds $200-($-pallete)
pallete_l equ $-pallete

и т.д.
вы уж не поленитесь. исходник соберите.
можно оставить выравнивание. чёрт с ним, я просто беру и кидаю палитру сразу после последнего байта кода (т.е. не чётный адрес). вот хоть убейте, всё в точности. и это при том, что адрес палитры в регистре уже учтён.
а если эмуль выдаёт не соответствие к реальной железке, тогда это не ко мне вопрос, а к его автору.
опять таки, чёрным по белому, ТСлабом (автором конфы) написано, что: Записывая в младший байт регистра адреса число, младший бит НЕОБХОДИМО занулять, что как бы намекает на то, что 0й бит нифига не игнорируется.
если есть не состыковка между мануалом и действительностью, я тогда тут причём? не надо обвинять меня в кривости там, где моей вины нет.

Buyan
19.08.2016, 14:20
вообще говоря адрес палитры сдвинулся на 1 байт.
если у тебя адрес палитры в памяти сдвинется на один байт, то дма адрес источника возьмет кратным двум все равно, как следствие значениям цвета (2х байтным) придет конец (старший байт от одного цвета будет, а младший от другого), не?

s_kosorev
19.08.2016, 14:21
Ну смотри блок начинался с 0x10FF, его выровняли на 0x1100 так как честность. Ты убрал sb и поличил и за честности DMA будет брать с адреса 0x10FE. Ты убрал байт а сдвинул на 2 фактически. Ну элементарно же

Hacker VBI
19.08.2016, 14:22
Sayman, то есть тебе не доходит?
что пересылка дма ВСЕГДА идёт с чётного адреса? и работает 16битно?

и что можно сделать
align 2
pallete incbin "gfx/fon.png.pal"

и в отправку?

и что одной транзакцией ты можешь переслать сразу 128 кб, при этом - процессор свободен и может заниматься вычислениями?

юзай лдир, чо.

Sayman
19.08.2016, 15:02
процессор свободен и может заниматься вычислениями?
Опа, стопэ. А как же обязанность дождаться от дма статус свободен? Не так уж он и свободен, как бы, если каждый раз всё будет стоять и ждать.

юзай лдир, чо. ты что то путаешь, мне не надо юзать лдир...как бы...

- - - Добавлено - - -

Нафиг мне эти выравнивания там, где они не нужны?
Почему палитра 555, а не 888?
С какого перепугу быстрый девайс в виде иде был вдруг вытиснен и заменён на более тормозный и не удобный в виде сд?
С чего вдруг палитру не дают читать?
Диспечер памяти можно было сделать явно более удобным, учитывая, что автор ложил на все существующие стандарты.
И т.д.
Как я и говорил в самом начале, набор кастылей.

Hacker VBI
19.08.2016, 15:08
на все твои вопросы есть обоснованные ответы.

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

s_kosorev
19.08.2016, 16:18
Не так уж он и свободен, как бы, если каждый раз всё будет стоять и ждать.
Что бы не ждать статус DMA, на полноценных компьютерах юзают прерывания по окончанию транзакции, думаю можно допилить если комп на FPGA

Hacker VBI
19.08.2016, 16:38
s_kosorev, это тоже есть. можно установить вектор прерывания (http://hype.retroscene.org/blog/dev/195.html), которое отработает по окончанию транзакции.
Чем не полноценный компьютер? :)

Totem
20.08.2016, 10:04
Напоминает, глухой и слепой, оба немые. Ну зачем ждать DMА?
Объясните тупому?
Потесните, в чем "цинусус"? этих плоскостей? зачем убирать "клэшинг" в разрешениях, где по сути не видно ничего?

Nesser
21.08.2016, 00:32
Напоминает, глухой и слепой, оба немые. Ну зачем ждать DMА?
Объясните тупому?
Потесните, в чем "цинусус"? этих плоскостей? зачем убирать "клэшинг" в разрешениях, где по сути не видно ничего?

Во, здравый смысл, я уже не в силах воевать :)
Само разрешение 256x192 уже является клэшингом :)
Из-за пары клэшей столько всего придумали, при чём только в теории.
------------
Начали делать так начните с концепции, что вообще требуется, не надо гигагерцы и гигалитры, всё вполне можно уложить и в z80 (хотя MUL и DIV добавить не помешало бы).
тs-conf классно, но не настолько что бы можно было с комфортом работать.
Один только VideoDAC вместо IDE чего стоит, я даже покупку из-за этого отложил.

Sayman
21.08.2016, 06:54
Nesser, я как бы об этом и пытался сказать...

Nesser
22.08.2016, 20:57
Nesser, я как бы об этом и пытался сказать...

Нас походу не хотят понять :)

s_kosorev
22.08.2016, 23:03
4K нужно думать, как раз в выходу появятся на свалке бу моники такие

Sayman
23.08.2016, 05:22
Nesser, может и хотят, только на все вопросы есть типа обоснованные ответы.

Hacker VBI
23.08.2016, 10:46
Nesser, "Один только VideoDAC вместо IDE чего стоит, я даже покупку из-за этого отложил. "
Понимаешь какая штука. Увы, в самой еве есть железные ограничения на вывод цвета (http://forum.tslabs.info/viewtopic.php?f=35&t=178).
" Это ограничение (64 цвета) так же было перенесено в современную архитектуру — PentEvo(ZX Evolution) на базе плис ALTERA."
отсюда и такой странный хак, как "VideoDAC в IDE". но при этом качество изображения становится реально отличным.

Sayman
23.08.2016, 11:56
отсюда и такой странный хак
а у меня от сюда вытекает один вопрос. я просто не очень шарю в таких очень сильно железных делах, может кто прояснит? вот у Эвы для цветастости выделили у плисины по 2 ноги на каждый сигнал р, г, б. этого оказалось мало (64цвета, маловато будет) и ТС решил выкинуть ИДЕ, а свободные сигналы после иде использовать для передачи цвета. так?
а вот и вопрос: у Спринтера при этом для передачи цвета выделен только один сигнал WR_COL. Почему спринтер может 24 бита (вообще 32 бита, но младшие 8 бит игнорируются) палитру с одним сигналом, а эво нет? Быть может реализация спринтера по части палитры имеет какой-то недостаток? я никаких полос или других помех (аля ШИМ) не наблюдаю. могу взять любую картинку и сконвертить её в 256 цветов с адаптивной палитрой (из фотошопа, там на выбор несколько вариантов конверсии, адаптивные самые точные тут, хотя где-то может и точнее есть) и всё будет прекрасно показано. в чём прикол? если никаких приколов нет. то что мешало ТСу сделать аналогично?

Smalovsky
23.08.2016, 12:01
Для восьмибитной графики изображение на Метеоре будет динамичней чем на тсконфиге в растровом режиме, так изображения распределены по планам(слоям), которыми удобнее манипулировать. На тсконфиге в растровом режиме придётся перерисовывать весь экран, а это большая нагрузка на процессор.
Тайлоспрайтовый двиг не привычен для спектрумистов, и по концепции ближе к приставкам, что как бы стирает имидж спектрума как компьютера.

Sayman
23.08.2016, 12:04
Smalovsky, если в каждый план засунуть 8bpp, то это хорошо. если там по 1 - 4 или по 8 цветов на план, то нафиг она эта многоплановость не нужна.
про тайлоспрайтовый двиг согласен, лучше сразу 3д двиг какой нить)))

Hacker VBI
23.08.2016, 12:07
Smalovsky, не смешивай ОДИН растр конфы и СЛОИ метеора
сравнивай СЛОИ конфы и СЛОИ метеора.
естественно что при 256цветах (1 байт на точку) обновить 64тысяч (320х200) байт процессором очень сложно. но тут очень приходится кстати ДМА.

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

Sayman
23.08.2016, 12:11
Hacker VBI, я к тому. что пусть даже ИДЕ выкинули. на внешней платке ide VideoDac, я так думаю, можно было извратится да сделать нормальные 24 бита.
кстати, хотел спросить ещё. для примера, вывожу я спрайт на ТСконфе в заданных координата по Х и У. вывел, но потом мне нужно вернуться к одной из координат (или к обеим). порты с координатами читать можно? они запоминают последние значения?
нормального манула (без удаФовского языка) явно не хватает.

Smalovsky
23.08.2016, 12:54
Мне Метеор больше нравится чем тсконфиг. Ещё бы был функционал для графических примитивов с аппаратной поддержкой в слоях - точки, линии, прямоугольники, многоугольники, заливка. И цвет для примитивов можно было бы выбирать произвольный.
Неплохо бы посмотреть прототипы скринов для Метеора, как это делал иноземцев для своего режима.

Buyan
23.08.2016, 13:02
порты с координатами читать можно? они запоминают последние значения?
Там не порты, а память, в которой хранятся описатели спрайтов, 512 байт, по 6 на спрайт, память альтеры, работает на запись только. Вопрос в другом - нафига их вообще читать?

Hacker VBI
23.08.2016, 14:29
Sayman, есть цикл статей по программированию под конфу (http://hype.retroscene.org/tag/TS-Config/). Там две страницы, почти всё описано, и язык довольно понятный :)
Ищи по приставке в названии TSconf: и дальше то что интересно.
Вот статья по спрайтам (http://hype.retroscene.org/blog/dev/175.html)

и как правильно говорит Buyan, спрайт представляет собою 6 байт, описывающих весь его вывод - координаты, размеры и т.д.
для спрайтов читать нечего, всё в основной памяти лежит. для того что бы обновить координаты спрайта - в этих 6 байтах указываются новые Х и У, и эти данные отправляются в систему (в память альтеры)

24 бита это хорошо конечно. с вдаком получаем 5/5/5бит цвета (15 бит), палитра уже большая.

s_kosorev
23.08.2016, 14:34
а вот и вопрос: у Спринтера при этом для передачи цвета выделен только один сигнал WR_COL. Почему спринтер может 24 бита (вообще 32 бита, но младшие 8 бит игнорируются) палитру с одним сигналом, а эво нет?
ну вот не звезди для видео выделено 24+ ноги на FPGA, схемы смотреть может кто угодно

- - - Добавлено - - -


Ещё бы был функционал для графических примитивов с аппаратной поддержкой в слоях - точки, линии
и libGDX аппаратно не забыть

Sayman
23.08.2016, 14:49
s_kosorev, я же говорил, не умею я сильно железные темы вникать. Сигналы VDxx видимо это. Ну тады извиняйте, я думал там на wr_col завязано...

Smalovsky
23.08.2016, 16:43
Hacker VBI, тут вообще-то тема про Метеор. Или пиши как программировать для Метеора, или делай свой топик.
Я заинтересовался программированием для Метеора. Был бы хоть эмулятор с поддержкой одного слоя.

Hacker VBI
23.08.2016, 16:45
Smalovsky, этой теме 3 года.
и никаких сдвигов кроме флейма годами.
писать не о чём :v2_dizzy_facepalm:

Smalovsky
23.08.2016, 17:25
Hacker VBI, надо было активничать, что бы были сдвиги, а не флеймить.
Когда программная модель выбрана, то дело пойдёт быстрее.
Вообще, на нулевом слое стандартный экран. Для него тоже ведь надо свою палитру предусмотреть, иначе стандартные цвета будут диссонировать с более богатыми оттенками цветов слоёв.

Hacker VBI
23.08.2016, 17:31
Smalovsky, активничай

Smalovsky
23.08.2016, 18:41
Тут в управляющих регистрах надо предусмотреть возможность зеркального вывода по горизонтали и вертикали.
Допустим, надо отзеркалить по горизонтали, тогда запись данных в видеокарту надо вести не от левой границы спрайта к правой, а с правой к левой. Если зеркалить по вертикали, то запись во внутреннюю память надо организовать не от верхней границы спрайта к нижней, а от нижней к верхней.
Есть недостатки формата спрайтов - слишком много данных в памяти займут ненужные байты прозрачных пустот в спрайте.
Неплохо бы написать уже примерный список управляющих регистров без привязки к адресам.

MetalliC
24.08.2016, 00:41
битпланы... спрайты... тайлы... я как в далекое прошлое попал
кто-нибудь пробовал для разнообразия посмотреть эволюцию развития 2Д-шных видеочипов игровых систем ? ;)

от тайловых карт и задников, тем более битплановых, во всех их проявлениях начали отказываться еще в ранних 90х, оставили только спрайты, дохрена спрайтов. всем(?) известный Neo-Geo например так сделан.

позже пришли к выводу что и аппаратные спрайты ерунда и нафиг не нужны. потому 2Д-игровые аппараты 2й половины 90х были уже часто с блиттерами.
то есть всё что умеет видеочип - отображать фреймбуфер и копировать куски памяти туда-сюда, с масочкой, и опциональным альфа-блендингом.
такими и было большинство из немногих поздних 2Д-шных игровых систем начала 2000х, например как Cave CV-1000 (http://www.world-of-arcades.net/Cave/Hardware_SH3/Hardware.htm) известная буллетхеллами типа DoDonPachi (https://www.youtube.com/watch?v=yZpN3S4fFJw) или DeathSmiles (https://www.youtube.com/watch?v=LXiRiZ5g-a0), в которых всё видео состоит лишь из Альтеры-блиттера и пары чипов видеопамяти, относительно шустрых и больших.

а вы тут про какие-то битпланы...

Smalovsky
24.08.2016, 01:08
MetalliC, спектрум тебе не денди. Для спектрума уже сформировалась целая культура программирования графики. Спектрумисты хотят доступ к каждому пикселю - для разных меню, редакторов, трёхмерной графики, а этого приставочная графика не может им дать. Приставочная графика - примитив для бегалок-прыгалок.
Ещё есть вопрос стилистики - графика для спектрума должна быть узнаваема. Если на экране будут изображены высокополигональные и многоцветные модели, то это уже не спектрум.
В принципе, можно идти и по пути приставок, как это сделал тслабс, но это игнорирование целой культуры программирования графики спектрума. Да и если посмотреть кто в окружении тслабса, то можно увидеть много людей, которым нравятся приставки. Поэтому спектрумисты так охотно не идут к тслабсу. Настоящие программисты для спектрума уже значительно ушли со спекки на писи, остались только ностальгирующие - застрявшие во времни приставок люди, которые думают что видеоигры - самое полезное применение ЭВМ.
Я вот помню, как в где-то в 93-97 годах, когда появились денди, спектрумисты, которые увлекались программированием даже не воспринимали приставки всерьёз. Основная проблема для них было - спектрум или писи.

s_kosorev
24.08.2016, 01:38
Если на экране будут изображены высокополигональные и многоцветные модели, то это уже не спектрум.
есть готовая корка для FPGA, определяет наличие зла на экране, можно к монитору питания подрубать

Hacker VBI
24.08.2016, 10:12
"Да и если посмотреть кто в окружении тслабса, то можно увидеть много людей, которым нравятся приставки."
Smalovsky, настолько безбожно врёт, что прямо смешно :)
а покажи свои работы, "настоящий спектрумист"?

Smalovsky
24.08.2016, 12:33
Hacker VBI, я обязан что-то показывать? Лучше на хайпе в поиске по тегам набери nes.)) Плюс много интересующихся тайлоспрайтовым двигом - это тоже, считай, приставочники.
-
Я вот подумал, выводить спрайты мы можем на экран, а вот как потом их стирать? Неохото для стирания использовать служебные цвета для вывода, может, предусмотреть какой-то механизм для стирания, например, выделить специальный регистры, в которых будет храниться цвет "ластика" для каждого слоя и управляющий регистр вывод/стирание? Тогда в режиме ластика любая запись в регистр данных приведёт к затиранию данных в установленной области вывода.

Hacker VBI
24.08.2016, 12:45
Smalovsky, согласен.
тяжело показать свой труд, которого не существует.
а я человека по трудам оцениваю.

Как результат, твоё мнение - это мнение человека, который "во всём разбирается, всё знает", но при этом это "всё" - очень поверхностно.

MetalliC
24.08.2016, 12:56
Smalovsky, вы меня или не поняли, или прочитали предыдущий пост по-диагонали ;)
имхо, TS-conf со своими картами тайлов и спрайтами, типа как в консолях середины-конца 80х, является таким же анахронизмом как и описываемое в этом топике.
в более позднием игровом железе от этого всего отказались в пользу быстрых блиттеров (тут их вроде DMA называют), в виду большей гибкости, простоты, удобства и дешевизны.

Nesser
24.08.2016, 13:05
Sayman, есть цикл статей по программированию под конфу (http://hype.retroscene.org/tag/TS-Config/). Там две страницы, почти всё описано, и язык довольно понятный :)
Ищи по приставке в названии TSconf: и дальше то что интересно.
Вот статья по спрайтам (http://hype.retroscene.org/blog/dev/175.html)

и как правильно говорит Buyan, спрайт представляет собою 6 байт, описывающих весь его вывод - координаты, размеры и т.д.
для спрайтов читать нечего, всё в основной памяти лежит. для того что бы обновить координаты спрайта - в этих 6 байтах указываются новые Х и У, и эти данные отправляются в систему (в память альтеры)

24 бита это хорошо конечно. с вдаком получаем 5/5/5бит цвета (15 бит), палитра уже большая.

Да не надо такой огромной палитры, для 4/8 бит на цвет палитры достаточно 15 битной, а для 5/5/5 вообще палитра не нужна, яркость каждого цвета уже описана, тем более что точнее будет 1/5/5/5, если старший бит 0 то 5/5/5 это яркости RGB, а если старший бит 1 то первые 15 бит это уже палитра, если все 16 бит единицы то это прозрачный.
По сути и палитра то не нужна, 5/5/5 этого более чем достаточно, по 32 яркости на цвет.

- - - Добавлено - - -


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

Это делается примитивно и просто, в плис забивается регистровый счётчик с вычитанием/сложением.

Hacker VBI
24.08.2016, 13:21
MetalliC, отчасти с тобой согласен. разница в том, что TS-conf работает всего то с 2012го года.
и есть отличные результаты:
http://analysis.4sceners.de/assets/articles/bestof/image005.jpg
Best Oldschool Demo:
01. Synchronization (http://bbb.retroscene.org/prod.php?p=8817) / Consciousness (ZX Spectrum enhanced)
"Some may speak of a sham, others simply do not care and enjoy a thoroughly great demo. "Synchronization" splits minds, because this wonderful show runs only on a modified Speccy. That's nothing we care about, because effects, graphics and design can only be described as spectacular. (http://analysis.4sceners.de/#!/articles/bestof/en) Also the magic delivered through effects is accompanied by incredibly good music which rushes your soul from one high point to the next. "
и я - один из двух кодеров этой демы.

А вот метеор - обсуждается до сих пор.

зы: да, блиттером в конфе DMA служит, есть режимы для этого

Sayman
24.08.2016, 13:31
Да не надо такой огромной палитры, для 4/8 бит на цвет палитры достаточно 15 битной
кому достаточно. а кому нет.

По сути и палитра то не нужна, 5/5/5 этого более чем достаточно, по 32 яркости на цвет.
палитра при работе с графикой 4/8 бит на точку как раз нужна. т.е. выборка 64 или 256 цветов из какой-то палитры в столько-то цветов (столько-то бит). да и что такое 32 яркости против 256...рваные края на картинке, больше дизиренга, жутко лесенкообразный градиент. ну уж нафиг...

01. Synchronization / Consciousness (ZX Spectrum enhanced)
демка, конечно, интересная. но она всё-таки в основном "спрайтовая". пестрят спрайты, тайлы, заливка градиентом и манипуляция с результатом. хотелось бы увидеть что-то аля рефреш. догма и тому подобные демы, без тайлоспрайтов. тунельчики. ротозумы, блобсы всякие, 3д обжекты и тому подобное.

Nesser
24.08.2016, 13:36
Hacker VBI, я обязан что-то показывать? Лучше на хайпе в поиске по тегам набери nes.)) Плюс много интересующихся тайлоспрайтовым двигом - это тоже, считай, приставочники.
-
Я вот подумал, выводить спрайты мы можем на экран, а вот как потом их стирать? Неохото для стирания использовать служебные цвета для вывода, может, предусмотреть какой-то механизм для стирания, например, выделить специальный регистры, в которых будет храниться цвет "ластика" для каждого слоя и управляющий регистр вывод/стирание? Тогда в режиме ластика любая запись в регистр данных приведёт к затиранию данных в установленной области вывода.

Стирается также - спрайтом.
Принцип построения экрана, для примера возмём Exolon:
1) Выводим или спрайт размером 256x192 с черным цветом (хранить его не надо) или заполняем экран спрайтами 8x8, 16x16 самого заднего фона (как к примеру в Contra с dendy), ну или вообще bmp вывести
2) Выводим корабли
3) Накидываем звёздочки
4) Выводим врагов которые двигаются ЗА стенками И выстрелы
5) Выводим спрайты полов и стенок
6) Выводим врагов которые двигаются ПЕРЕД стенками И выстрелы
7) Выводим спрайты лифтов
8) Выводим космонавта
9) Выводим пушки
10) Выводим статистику
11) Выводим стрелку мыши (если надо)
12) Вычисляем новые координаты всего и вся
13) Начинаем заново.

Всё, никаких планов и прочей дребедени.
Здесь даже стирать ничего не надо, всё само на 1 пункте подготовиться.
Достаточно всего одного универсального VideoDMA и парочку Plot.
Объём видеопамяти при этом ничем не ограничен, в памяти процессора ей вообще отображаться не надо, загрузил спрайты с диска, распаковал, кинул в видеопамять.
CPU это ЦЕНТРАЛЬНЫЙ процессор, с каких пор в задачи процессора стала входит переброска блоков информации? на кой хер это ему нужно? его дело подготовить координаты и загрузить счётчики, дальше ему должно быть насрать как оно там будет перебрасываться, хоть боком хоть с прискоком.
Зачем вообще делать компьютер в котором CPU занимается попиксельным копированием информации с одного места в другое? ЗАЧЕМ????? делать CPU в котором тысячи регистров и программно делать копирование? ЭТО БРЕД!
Это тоже самое что директор завода будет на проходной полы подметать, НАХЕРА? что бы перекинуть спрайты из памяти на экран достаточно с десяток регистров и за 1 такт процессора кусок спрайта уже успеет отобразиться, зачем на CPU писать программу которая вычисляет по таблицам адреса (экономия скорости бугага) переключает банки памяти, считывает байты, записывает байты, корректирует байты, НАААААХРЕЕЕЕНААААА ? Пока CPU с умным видом отобразит ОДИН спрайт, сранная рассыпуха логики уже ДВУХСОТЫЙ спрайт дорисовывать будет.

- - - Добавлено - - -


кому достаточно. а кому нет.

палитра при работе с графикой 4/8 бит на точку как раз нужна. т.е. выборка 64 или 256 цветов из какой-то палитры в столько-то цветов (столько-то бит). да и что такое 32 яркости против 256...рваные края на картинке, больше дизиренга, жутко лесенкообразный градиент. ну уж нафиг...

демка, конечно, интересная. но она всё-таки в основном "спрайтовая". пестрят спрайты, тайлы, заливка градиентом и манипуляция с результатом. хотелось бы увидеть что-то аля рефреш. догма и тому подобные демы, без тайлоспрайтов. тунельчики. ротозумы, блобсы всякие, 3д обжекты и тому подобное.

Тогда проще прикрутить GeForce 210.
1 кадр в сутки z80 успеет вычислить.

Sayman
24.08.2016, 13:41
1 кадр в сутки z80 успеет вычислить.
не понял, 1 кадр чего? что-то в рефреше под пятногон не надо было никаких "Riva TnT", а для ТС вдруг гфорс потребовался))) смешно)))
под бейзконфу, кстати, были демки со всякими 3д (хоть и немного).

Nesser
24.08.2016, 13:57
не понял, 1 кадр чего? что-то в рефреше под пятногон не надо было никаких "Riva TnT", а для ТС вдруг гфорс потребовался))) смешно)))
под бейзконфу, кстати, были демки со всякими 3д (хоть и немного).

А ну ка, дай ссылочку на видео 16 миллионов на точку 1920x1080, смушингами и всякими ништяками под z80.

Hacker VBI
24.08.2016, 13:59
Sayman, есть и такое (http://bbb.retroscene.org/prod.php?p=8873)
"пестрят спрайты, тайлы, заливка градиентом и манипуляция с результатом. "- это так кажется.
естественно что юзается всё что только возможно, но дема чисто кодерская.
есть там части и с псевдо-3д
http://bbb.retroscene.org/screens/160730/sync_sshot000013.png
http://bbb.retroscene.org/screens/160730/sync_sshot000031.png

Nesser
24.08.2016, 14:06
Да нормальное демо, и без всяких 16 миллионов нормально смотрится.

- - - Добавлено - - -

Однако есть несколько но, не по этой деме а вообще, при написании кода работы с экраном разрешение вкладывать не фиксированное а плавающее, изначально взятое из видеокарты, естественно видеокарта должна это уметь :)
Тогда если включить разрешение 640x480 например, то это же дема должна отображаться на крайних 256x192 нормально, вот тогда цель будет достигнута.

Sayman
24.08.2016, 14:06
Nesser, ты хоть знаком с перечисленными мной демками?
ознакомься: рефреш (https://www.youtube.com/watch?v=nlmtFq155Y4), напалм (https://www.youtube.com/watch?v=x292Y8YR2xA) и т.д. а вот демка с 3д под бейзконфу: the board (https://www.youtube.com/watch?v=bbUGcA_ZaVo), the link (https://www.youtube.com/watch?v=EECqtHM90Wc) и т.д.

дай ссылочку на видео 16 миллионов на точку 1920x1080
это тут вообще причём? я где то говорил про FullHD для спектурма? если речь про 24 бита палитру, так это палитра. на экране один фиг только 256 цветов. ты что-то путаешь.

s_kosorev
24.08.2016, 14:08
имхо, TS-conf со своими картами тайлов и спрайтами, типа как в консолях середины-конца 80х, является таким же анахронизмом как и описываемое в этом топике.
так блиттер тоже старье уже, в современных консолях от него отказались в пользу шейдерных процессоров

Sayman
24.08.2016, 14:09
есть и такое
да, тут уже поинтереснее, но потом дема сползла к псевдоплазме, которую можно получить манипуляциями с палитрой (хотя исходники вроде пролетали, надо бы глянуть, может там более иначе, чем мне кажется)...

zx-kit
24.08.2016, 17:23
Если делать в железе, для какого компьютера подойдет видеокарта Meteor ?
На ZX-Evo не пойдет. Там некоторые сигналы отсутствуют. Нужно также подавать INT с видеокарты.
Для модульного компьютера лучше шина ZST-BUS. Не надо на каждой плате ставить согласующие буферы с Z80. Поэтому плата меньше и разъем надежнее.
Для ZXM-Phoenix и Scorpion можно через тройник-преобразователь.
Много желающих переделывать старые игры для устранения клешинга и писать новые без 3D и аппаратных спрайтов ?
16 бит на цвет так как все слои хранятся по 16 бит на точку без палитр.

Nesser
24.08.2016, 18:33
Nesser, ты хоть знаком с перечисленными мной демками?
ознакомься: рефреш (https://www.youtube.com/watch?v=nlmtFq155Y4), напалм (https://www.youtube.com/watch?v=x292Y8YR2xA) и т.д. а вот демка с 3д под бейзконфу: the board (https://www.youtube.com/watch?v=bbUGcA_ZaVo), the link (https://www.youtube.com/watch?v=EECqtHM90Wc) и т.д.

это тут вообще причём? я где то говорил про FullHD для спектурма? если речь про 24 бита палитру, так это палитра. на экране один фиг только 256 цветов. ты что-то путаешь.

Смотрел я демки.
Это ТЫ сказал что ступеньки градаций и всё такое :)

- - - Добавлено - - -


Если делать в железе, для какого компьютера подойдет видеокарта Meteor ?
На ZX-Evo не пойдет. Там некоторые сигналы отсутствуют. Нужно также подавать INT с видеокарты.
Для модульного компьютера лучше шина ZST-BUS. Не надо на каждой плате ставить согласующие буферы с Z80. Поэтому плата меньше и разъем надежнее.
Для ZXM-Phoenix и Scorpion можно через тройник-преобразователь.
Много желающих переделывать старые игры для устранения клешинга и писать новые без 3D и аппаратных спрайтов ?
16 бит на цвет так как все слои хранятся по 16 бит на точку без палитр.

Я бы может и переделал несколько старых, но только с 8/16 бит на точку, аппаратной переброской и желательно бы с плавающим разрешением.
Если движок налажен программно+аппаратно то наваять игру заново не так уж и сложно, неужели сложно R-Type заново сделать? только с установкой и прокачкой модулей космолёта :D
Там кода на 1-2 кБ, а остальное звуки, музыка и графа.

Да кстати - звуки и музыка..................................
А их по сути до сих пор и нету.
TSFM весчь классная, но на самом zx музу то и не сделать :)

----------------

Вопрос музакерам - реально ли генераторами сделать нормальный игровой звук или всё же надо что-то wav`образное ?

zx-kit
25.08.2016, 06:03
Метеор буду делать для Феникса с шиной ZX-BUS. Добавлю развертку Pentagon-128.

Nesser
25.08.2016, 10:44
Оцени ещё раз все за и против, жалко потраченного времени.
Делать НАДО, но корректируй сразу с учётом пожеланий.

Я всё таки за гибкое изменение параметров а не жёстко зафиксированных схемотехнично.

- - - Добавлено - - -

Аааа кстати, а если игры переделывать то кто рисовать будет? я не художник и не музыкант :D
Видеокарта это классно, но рисовать то кто будет ?

Hacker VBI
25.08.2016, 10:45
Nesser, Captain Drexx

http://www.youtube.com/watch?v=LnQb8wICMac
длина кодового блока - 10271 байт
это без буферов и уровней, без музык, график и прочей херни
но, естественно, с dup-ами, текстами и переменными :)

- - - Добавлено - - -

zst, ходят слухи что в фениксе ZX-BUSа нету :)

Sayman
25.08.2016, 10:49
Captain Drexx
прикольна. игрулина аля товер дефенс. для zx совсем редкость (или уже нет?). а исходнички есть? это же под обычный 128й да?

Hacker VBI
25.08.2016, 11:01
хаха))
всё есть :) я писал (http://hype.retroscene.org/tag/Captain%20Drexx/) :)
первый и единственный товер дефенс на спектруме.
и да, 128 онли.
продавался не кронософте в формате кассеты, продано около 20 штук ;)


http://www.youtube.com/watch?v=L_1Ex4bL7yo

Nesser
25.08.2016, 11:40
Nesser, Captain Drexx

http://www.youtube.com/watch?v=LnQb8wICMac
длина кодового блока - 10271 байт
это без буферов и уровней, без музык, график и прочей херни
но, естественно, с dup-ами, текстами и переменными :)

- - - Добавлено - - -

zst, ходят слухи что в фениксе ZX-BUSа нету :)

Ого, дефендер, не видел если честно :)

Нууу с видеокартой то DUPы не нужны :) даже если кодовый блок+текст+переменные и будет на 16 кБ этого точно хватит, тем более в прямом доступе то 48 кБ :)
Я уж и не знаю что можно запихать в 48 кБ если графика, звуки и музыка находятся в теневых страницах :)

Sayman
25.08.2016, 11:46
уж и не знаю что можно запихать в 48 кБ если графика, звуки и музыка находятся в теневых страницах
запихнуть можно много чего. например, если игрулина аля Вольф (например, как версия для АТМы), то только для каждого масштаба (64 масштаба) своя отдельная процедура (т.е. 64 процедуры в случае с версией для АТМ которые занимают 14801 байт). ну и остальной код тоже там довольно не малый. И если карта сама не умеет в масштабы, то и 48кб может быть очень и очень впритирочку...

Nesser
25.08.2016, 13:49
запихнуть можно много чего. например, если игрулина аля Вольф (например, как версия для АТМы), то только для каждого масштаба (64 масштаба) своя отдельная процедура (т.е. 64 процедуры в случае с версией для АТМ которые занимают 14801 байт). ну и остальной код тоже там довольно не малый. И если карта сама не умеет в масштабы, то и 48кб может быть очень и очень впритирочку...

Зачем такой шнягой CPU напрягать, да ещё и кучу видов одного и того же спрайта хранить ? :)
Масштабирование это проблема видеокарты, всё равно уже стоит ПЛИС, для справки скажу что все видеокарты изначально разрабатываются на ПЛИС и когда уже всё обкатано тогда уже переводят на штамповку.
Если начали делать так делать надо уже нормально.
Изначально нужна КОНЦЕПЦИЯ, то есть для чего вообще делать то видеокарту, не надо гнаться за суперпупер цветами и разрешениями, надо простое и уникальное решение для СЛАБОГО процессора, без всяких SDK, RISC и прочей дребедени.

Все эти масштабирования примитивно решаются в логике, крутить углы по сути тоже фигня, и портянку с текстурой можно вывести X1,Y1,X2,Y2, не сложно же реализуется.

И да, не вижу ничего зазорного если Z80 сделать на плис в виде 40 ногой панельки, поменять можно в любом zx-spectrum, одно время даже некоторые заводы (на заказ) шлёпали кристаллы плис в любой корпус, так же пихали и в 40 DIP, сейчас не знаю, наверное не выгодно.
Разве это плохо если LDIR будет не 21 такт а 1-2 такта? а в дополнение к ADD и SUB будет MUL и DIV ?

Я не работал с ПЛИС :) но на рассыпухе могу собрать что угодно, надеюсь скоро окончу текущие "проекты" с PICами (надо для заработка) и сяду ПЛИСины курить, не думаю что там всё сложно.
Но здесь же есть уже готовые спецы по ПЛИСинами, скажите, разве нельзя наваять всё это и что бы программно это обслуживалось как можно проще?
тс-конф перехватывает команды CPU, отлично, это правильное направление, в плис напихали и видео и ВСЁ ОСТАЛЬНОЕ.....это НЕПРАВИЛЬНО, видео должно быть ПОЛНОЦЕННЫМ, если надо 24 ноги для цап значит должно быть 24 ноги а не 6.
ВСЁ ОСТАЛЬНОЕ должно быть в ДРУГОЙ плис.
Нууу и так далее, вся система должна быть собрана в одну КУЧУ, а сейчас это кубик рубик который априори в правильное положение НЕ СОБИРАЕТСЯ.
Одной только видеокартой ничего не исправить.
Нужна концепция и пробы пробы пробы.

Hacker VBI
25.08.2016, 13:53
Nesser, с-конф НЕ перехватывает команды CPU.
в тс-конф - отдельные порты на всё необходимое.

Nesser
25.08.2016, 13:58
Nesser, с-конф НЕ перехватывает команды CPU.
в тс-конф - отдельные порты на всё необходимое.

Значит я ещё с чем то намешал :)
В какой то штуке LD H,H LD L,L и подобное вроде перехватывалось.
Но опять же, тс-конф это плис, всегда можно доработать, вот только видеоDAC уже не полноценным получился, материнку надо править :)

Hacker VBI
25.08.2016, 14:04
Nesser, вDAC решает (forum.tslabs.info/viewtopic.php?f=31&t=421) заложенную в архитектуре проблему вывода цвета, не более.

Sayman
25.08.2016, 14:04
Nesser, ты не понял. 64 масштаба не спрайтов, это 64 процедуры. 1 процедура выдаёт тебе 1 масштаб для текстуры/спрайта. нет потребности хранить 64 копии в разных масштабах на 1 текстуру. чтобы честно видяхой это делать, она должна уметь делать сама масштабирование. для спринтера есть конфа с аппаратным масштабированием (хз как её подключать, не разобрался).

тс-конф перехватывает команды CPU
команды умеет перехватывать Спринтер, а не ТС. именно так и работает аксель.

LD H,H LD L,L
ld h,h - это "удвоение байта" (должно было быть, может и есть, не проверял)
ld l,l - копирование...

Nesser
25.08.2016, 14:17
-----------------------------
Ээээээээ погодите ка, по поводу метеора.

А как вы собрались буфер вывода делать? Типа сканер выводит изображение на экран и я в это же время там всё перерисовываю и двигаю? а как же временный буфер на 1 кадр?

- - - Добавлено - - -


Nesser, ты не понял. 64 масштаба не спрайтов, это 64 процедуры. 1 процедура выдаёт тебе 1 масштаб для текстуры/спрайта. нет потребности хранить 64 копии в разных масштабах на 1 текстуру. чтобы честно видяхой это делать, она должна уметь делать сама масштабирование. для спринтера есть конфа с аппаратным масштабированием (хз как её подключать, не разобрался).

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

ld h,h - это "удвоение байта" (должно было быть, может и есть, не проверял)
ld l,l - копирование...

-----
Ааа теперь понятно, это у меня всё в голове намешалось :) видимо потому что нет нормально оформленной документации и на то и на то.

Да если такой мешок логики уже поставили на плату то естественно все масштабирования должна делать эта логика, иначе какой смысл ставить тысячи микросхем логики в 1 корпусе и продолжать всё делать программно, зачем :)

У нас процессор CISC, значит и всё что навешиваем должно быть сделано по такому же принципу, пусть не быстро но уверенно.

zx-kit
25.08.2016, 17:54
Описание концепции, характеристик, переменных видеокарты собрал в 1 пост.

Smalovsky
26.08.2016, 03:46
Мои соображения насчёт новых регистров и блиттера. Ошибки в тексте есть)).
Предлагаю следующие регистры:
accel_mode - выбор аппаратного ускорения: 0 - через регистр данных, 1 - БЛИТТЕР.

out_mode - режим вывода: 0 - вывод через регистр данных или блиттер, 1- режим ластика;
В режиме ластика при выводе через регистр данных запись любого значения в регистр данных приводит к к заполнению области вывода цветом очистки, при выводе блиттером область вывода заполняется цветом очистки.
out_control - регистр контроля. При выводе через блиттер, значение нулевого бита: 0 - пересылки нет( устанавливается после пересылки), запись 1 - начать пересылку; значение первого бита: 0 - данные из памяти брать последовательно, 1 - данные из памяти выравнивать в соответствии с регистрами dxl, dxh, dyl, dyh, alignment_value( этот режим работы блиттера полезен, когда нужно переслать подготовленную в памяти компьютера теневую область). При выводе через регистр данных, значение нулевого бита устанавливается и сохраняется значение 1 при последовательной записи значений в регистр данных, запись 0 приведёт к сбросу последовательного вывода и дальнейшее заполнение области вывода будет происходить сначала; значение первого бита игнорируется.
Пары регистров clear_color_1_h:clear_color_1_l .. clear_color_1_h:clear_color_1_l - двубайтное значение цвета очистки для каждого слоя с учётом значений прозрачности.
data_format - формат данных для вывода через регистр данных или блиттер:
0 - двуцветный вывод двумя первыми служебными цветами;
1 - двуцветный вывод двумя первыми служебными цветами с учётом маски;
2 - вывод служебными цветами;
3 - ВЫВОД ДВУБАЙТНЫМ ЗНАЧЕНИЕМ ЦВЕТА С УЧЁТОМ ПРОЗРАЧНОСТИ. Запись в регистр данных при таком формате последоватиельна - побайтово передаётся значение цвета.
alignment_value - значение ширины строки по которому происходит выравнивание данных блиттером при считывании данных из памяти.
bl_status - статус пересылки данных блиттером: 0 - пересылка закончена, 1 - пересылка идёт.
Пары регистров bl_addr_h:bl_addr_l - задают начало пересылаемой блиттером области данных внутри страницы( для регистра bl_addr_h биты 7 и 6 игнорируются).
bl_num_page - номер страницы в которой начинается область данных пересылаемой блиттером.
Адрес назначения во внутренней памяти видеокарты при пересылке блиттером вычисляется автоматически исходя из значений регистров xl, xh, yl, yh. Блиттер сам выравнивае выводимые данные в области вывода и определяет количество пересылаемых байт используя значения регистров dxl, dxh, dyl, dyh. Другими словами - со стороны памяти компьютера данные можно брать с выравниванеием или последовательно, а со стороны области вывода данные выводятся с выравниванием автоматически.
Соглашение о выводе через регистр данных:
Последовательная запись значений в регистр данных приводит к последовательному заполнению области вывода, определяемую регистрами xl, xh, yl, yh, dxl, dxh, dyl, dyh. Перезапись одного из перечисленных регистров приводит к началу последовательного вывода в начало новой области вывода. Что бы сделать сброс последовательного вывода и вернуться к выводу в начало области вывода не переопределяя последнюю - необходимо воспользоваться регистром out_control.

- - - Добавлено - - -

Если блиттеру дать команду скопировать область размером 224*256*2=114688 байт - экран в непосредственном режиме данных, то сколько времени будет происходить копирование?

zx-kit
26.08.2016, 05:52
Мои соображения насчёт новых регистров и блиттера. Ошибки в тексте есть)).
Предлагаю следующие регистры:
accel_mode - выбор аппаратного ускорения: 0 - через регистр данных, 1 - БЛИТТЕР.

Лучше accel_mode - выбор ускорения: 0 - программно-аппаратное, 1 - блиттер.


out_mode - режим вывода: 0 - вывод через регистр данных или блиттер, 1- режим ластика;
В режиме ластика при выводе через регистр данных запись любого значения в регистр данных приводит к к заполнению области вывода цветом очистки, при выводе блиттером область вывода заполняется цветом очистки.

Стирание лучше сделать без пересылки данных блиттером. Любой цвет 1xxxxxxx xxxxxxxx со старшим битом = 1 считается прозрачным.


data_format - формат данных для вывода через регистр данных или блиттер:
0 - двуцветный вывод двумя первыми служебными цветами;
1 - двуцветный вывод двумя первыми служебными цветами с учётом маски;
2 - вывод служебными цветами;

1 и 2 не надо разделять. Проще подобрать 4 цвета для данного формата спрайта с маской для устранения клешинга.


3 - ВЫВОД ДВУБАЙТНЫМ ЗНАЧЕНИЕМ ЦВЕТА С УЧЁТОМ ПРОЗРАЧНОСТИ. Запись в регистр данных при таком формате последоватиельна - побайтово передаётся значение цвета.

Тут формат по одной точке для рисования картинок на экране ?


alignment_value - значение ширины строки по которому происходит выравнивание данных блиттером при считывании данных из памяти.
bl_status - статус пересылки данных блиттером: 0 - пересылка закончена, 1 - пересылка идёт.
Пары регистров bl_addr_h:bl_addr_l - задают начало пересылаемой блиттером области данных внутри страницы( для регистра bl_addr_h биты 7 и 6 игнорируются).
bl_num_page - номер страницы в которой начинается область данных пересылаемой блиттером.
Адрес назначения во внутренней памяти видеокарты при пересылке блиттером вычисляется автоматически исходя из значений регистров xl, xh, yl, yh. Блиттер сам выравнивае выводимые данные в области вывода и определяет количество пересылаемых байт используя значения регистров dxl, dxh, dyl, dyh. Другими словами - со стороны памяти компьютера данные можно брать с выравниванеием или последовательно, а со стороны области вывода данные выводятся с выравниванием автоматически.

Да, это пригодилось бы для блиттера, но он не пригоден для устранения клешинга атрибутов и отложен на второй этап разработки.



Соглашение о выводе через регистр данных:
Последовательная запись значений в регистр данных приводит к последовательному заполнению области вывода, определяемую регистрами xl, xh, yl, yh, dxl, dxh, dyl, dyh.

Так задумано для программно-аппаратного ускорения рисования спрайтов.


Перезапись одного из перечисленных регистров приводит к началу последовательного вывода в начало новой области вывода. Что бы сделать сброс последовательного вывода и вернуться к выводу в начало области вывода не переопределяя последнюю - необходимо воспользоваться регистром out_control.

- - - Добавлено - - -

Если блиттеру дать команду скопировать область размером 224*256*2=114688 байт - экран в непосредственном режиме данных, то сколько времени будет происходить копирование?
Вывод картинки из 8 слоев на телевизор занимает 8/14 времени. Значит на блиттер остается 6/14 времени. Частота работы статики 98 MHz. Если надо скопировать блиттером 224*256 точек, то при чтении из статической памяти это заняло бы (224*256*2*14) / (6*98) = 2,73 мс. При чтении из SDRAM и записи в SRAM копирование ускорится раза в два.

Nesser
26.08.2016, 18:38
Стирание лучше сделать без пересылки данных блиттером. Любой цвет 1xxxxxxx xxxxxxxx со старшим битом = 1 считается прозрачным.

Тогда уж лучше 00000000 00000000 (0) это прозрачный цвет, 0PPPPPPP PPPPPPPP (1-32767) - номер палитры, 1GGGGGRR RRRBBBBB (32768-65535) - непосредственный цвет пикселя в формате 5/5/5.
Почему именно 0 для прозрачности? для компрессии, пустые места очень хорошо сжимать форматом N,0.

Но в принципе и можно 0GGGGGRR RRRBBBBB - цвета пикселя, 1PPPPPPP PPPPPPPP - палитра, 11111111 11111111 - прозрачный.

Hacker VBI
26.08.2016, 19:51
Nesser, да любой повтор сожмётся, хоть 0, хоть ff хоть 42

Nesser
26.08.2016, 20:59
Nesser, да любой повтор сожмётся, хоть 0, хоть ff хоть 42
Ну то да, всё равно таблицу частых цифр делать.

zx-kit
27.08.2016, 19:20
Чтобы не опрашивать готовность видеокарты при пересылках больших картинок надо, при перегрузке видеокарты, тормозить Z80 с помощью сигнала WAIT.

Предусмотреть несколько режимов INT:
1. Для демок - частотой 48 Hz с расположением как в Pentagon-128.
2. Для игр - частотой 50 Hz с расположением как в ZX Spectrum.
3. Для совместимости с программи для Феникса - частотой 50 Hz с расположением как в ZXM-Phoenix.
4. Для музыки для MoonSound - c частотой 60 Hz с расположением как в VGA 640x480 60 Hz.

INT подавать с FPGA через буфер и резистор 270 Ом на Z80. В Фениксе снять перемычки, через которые подается INT с логики компьютера и звуковой карты MoonSound.

Для воспроизведения оцифрованных звуков можно добавить INT с частотой 22.05 kHz.

Nesser
27.08.2016, 22:11
Чтобы не опрашивать готовность видеокарты при пересылках больших картинок надо, при перегрузке видеокарты, тормозить Z80 с помощью сигнала WAIT.

Предусмотреть несколько режимов INT:
1. Для демок - частотой 48 Hz с расположением как в Pentagon-128.
2. Для игр - частотой 50 Hz с расположением как в ZX Spectrum.
3. Для совместимости с программи для Феникса - частотой 50 Hz с расположением как в ZXM-Phoenix.
4. Для музыки для MoonSound - c частотой 60 Hz с расположением как в VGA 640x480 60 Hz.

INT подавать с FPGA через буфер и резистор 270 Ом на Z80. В Фениксе снять перемычки, через которые подается INT с логики компьютера и звуковой карты MoonSound.

Для воспроизведения оцифрованных звуков можно добавить INT с частотой 22.05 kHz.

Z80 нельзя тормозить ни в коем случае, иначе какой тогда вообще смысл разделять задачи, 1-2 буфера приёма по 2-16 операций решает проблему, проверяем опустошение буфера и кидаем сразу 1-16 команд, нууу это так, навскидку.
Так частота же вроде зависит не от желания а от количества тактов в фрейме :)

Для оцифрованных звуков частота должна быть как бе x2 по причине синусоидальности сигнала :) значит не менее 44.1 кГц для удобоваримого на слух звука.
22050 выборок в секунду это 11025 частота синуса 360 гр.

- - - Добавлено - - -

--------------------
Текс, внимательнее прочитал "описание".

"Новый видеоадаптер предназначен для компьютеров, у которых есть цифровые сигналы цвета (до 8 сигналов). Или через дополнительную приставку-компаратор для оцифровки аналоговых сигналов с 2-3 уровнями сигналов как у ZX-SPECTRUM, БК-0011М."

"VGA адаптер разрабатывается для подключения к разным компьютерам и станкам с ЧПУ. У них разные частоты вывода точек на экран телевизора."

Я что-то уже начинаю сомневаться в необходимости этого "адаптера" для спектрума.

Smalovsky
27.08.2016, 22:28
В самом деле, для станков зачем делать???

s_kosorev
27.08.2016, 23:07
В самом деле, для станков зачем делать???
что бы злые устройства не делали станки? А еще нужно клешинг на станках убрать

zx-kit
27.08.2016, 23:32
В самом деле, для станков зачем делать???
У станков со временем садятся кинескопы на старых мониторах. Поэтому для подключения к современным мониторам пригодится VGA Sputnik. как раньше подключали через VGA&PAL.

Nesser
27.08.2016, 23:33
Ээээээммммм........а спектруму ЭТО зачем?

zx-kit
28.08.2016, 06:18
Ээээээммммм........а спектруму ЭТО зачем?

В отличие от видеоадаптера VGA&PAL видеоадаптер VGA Sputnik предназначен для подключения Спектрума и советских компьютеров к VGA монитору в режиме FULL HD 1920x1080. Возможность подключения к компьютеру через цифровые или аналоговые входы RBGS. Предполагалось добавить некоторые видеорежимы видеокарты Метеор. Но мы уже так разогнали Метеор и увеличили память, что VGA Sputnik уже не успеет за ним. Разве только для устранения клешинга с одним дополнительным слоем. Память там только SDRAM.

А в Метеоре 2M SRAM и 32M SDRAM, что позволит выводить 8 слоев и в будущем копировать тайлы, спрайты и картинки с помощью блиттера из SDRAM в SRAM.

Nesser
28.08.2016, 18:16
Ну ладно, в общем есть несколько моментов.
Координаты спрайтов только положительные, это очень неправильно, 15 бит координат должен отвечать за - и +, то есть от -32767 до 32767, что это за ускорялка где обрезку спрайтов должен делать цпу.

"Метеор: 2 бита на цвет точки. Атрибут на область 8х1 точек, рабочие 4 цвета из 32768, любой из четырех можно указать как прозрачный. Атрибут не хранится в памяти, а перекрашивает 8 точек экрана в 4 цвета при рисовании тайла или спрайта."

Ээээээээ, что бы это значило? это будет что-то типа эмулятора курсовой работы?
К чему весь этот огород? неужели при 32 МБ видеопамяти точка должна быть 2 бита? зачем? туда что не влезет экран с точкой в 8/16 бит?

-----------------
"Скорость рисования спрайта для Z80
Спрайт хранится в виде байт маски, байт пикселов и т.д.
Можно его записать в видеокарту командой (42 такта на 8 точек или 5.25 тактов на точку):
ldir

Или последовательностью команд (32 такта на 8 точек или 4 такта на одну точку):
ldi
ldi

Или последовательностью команд (24 такта на 8 точек или 3 такта на одну точку):
pop de
ld (hl),e
ld (hl),d"
-------------------
Да нет же, я не буду рисовать спрайты таким образом - 3500000/50/3 = 256 x 91 ? что за нах? весь cpu уйдёт на отрисовку трети экрана 50 раз в секунду ?
Зачем эти десятки мегабайт памяти и сотни мегагерц частоты если я одной третью экрана в фрейм полностью убиваю процессор?

Я вообще не понимаю для чего всё это? 2 экрана на каждый слой для компенсации синхры? так нафига столько слоёв если процессор успеет отрисовать всего 1 спрайт 256 x 91 ?
Ааааа моя крыша щас лопнет.
Или я вообще ничего не догоняю.

zx-kit
28.08.2016, 19:06
Да, при программно-аппаратном рисовании спрайтов времени хватит на рисование тайлов или спрайтов суммарным размером 256х91. При этом мы можем использовать аппаратный скроллинг фона и количество цветов в спрайте 3+прозрачный. При этом рисование с координатами с точностью до точки без вычисления адреса и скроллинг без потери цветов. При этом до 32768 цветов на экране.
А посчитай, сколько спрайтов рисуется программным способом и какой при этом скроллинг и количество цветов ?

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

Аппаратное рисование с помощью блиттера понадобится при переходе на новый уровень игр.

Smalovsky
28.08.2016, 20:04
Нессер, ты не разобрался в слайс-энджинге. Те части изображений, которые неподвижны рисуются один раз в своем слое, например, задний фон рисуется только один раз в нижнем слое, а не перерисовывается каждый раз. Так же и неподвижный передний план( деревья) рисуется только один раз в верхнем слое. А уже подвижные изображения( спрайты) рисуются каждый кадр где-то в средних слоях, их общая площадь составляет незначительную величину от площади экрана, и процессор успевает их отрисовывать.

Nesser
28.08.2016, 22:15
Нессер, ты не разобрался в слайс-энджинге. Те части изображений, которые неподвижны рисуются один раз в своем слое, например, задний фон рисуется только один раз в нижнем слое, а не перерисовывается каждый раз. Так же и неподвижный передний план( деревья) рисуется только один раз в верхнем слое. А уже подвижные изображения( спрайты) рисуются каждый кадр где-то в средних слоях, их общая площадь составляет незначительную величину от площади экрана, и процессор успевает их отрисовывать.

Да я понял что это 8 аппаратных слоёв и они оттуда отображаются.
НО!
Вы конечно извините, но отдавать 100% мощности процессора на рисование 91 спрайта размером 16 на 16 я как то не готов, а кто будет подготавливать координаты для спрайтов? Вася Пупкин? а кто будет музыку играть? а кто звуки будет делать? а кто хоть какой нибудь искусственный интеллект будет делать?
Кто будет математикой заниматься? Кто рассчитает траектории полёта выстрелов и всех объектов?
Допустим я делаю 16 выстрелов размером 4 на 2, затраты на вывод 1 выстрела несоизмеримы с его размером.
От 3,5 Мгц можно смело вычитать 75% на ПРОЧИЕ вычисления.
Итого остаётся 22 спрайта 16x16, и это если не заниматься поллитрой, это же всего лишь 1 табличка размером 96 на 58 летающая по экрану, И ВСЁ !
8 статических слоёв и всего лишь 1 спрайт 96 на 58 двигающийся по экрану, ляпота..........
Лично мне такого не надо.

По сути это не ускоритель а тормозитель, огромная плисина с мешком памяти и бедный чахлый процессор 80-ых побайтово выводящий спрайты на экран.
Хотя я вообще не уверен что это можно сделать.
------------------
pop de
ld (hl),e
ld (hl),d
------------------
А это разве ВСЁ? что надо для рисования спрайта?
Про прерывания кстати можно забыть, про звуки и всё остальное. Прерывания ВСЕГДА должны быть выключены, ибо стек.
Я сразу ПРОТИВ.
Этот вариант?
-----------------
ldi
ldi
-----------------
Не маловато ли?
Работаем с видео прямо в памяти процессора? класс, за что боролись на то и напоролись, сколько там её надо в прямом доступе? 2 мбайта? та легко, впихнём в 16 битный адрес 2 мбайта и будем по ldi перебрасывать с места на место, не забывая при этом саму программу держать в уме.....короче по факту - ничего не получиться.
Иииии дааааа - мне надо как будет делать?
Для спрайтов 8x8

ld hl,адрес спрайта
ld de,адрес на экране (чО? надо бы предварительно вычислить для каждого спрайта)
ld bc,8*8
l1 ldi ldi ldi ldi ldi ldi ldi ldi
add de,256-8 (inc d, e-надо возвращать на 8 байт назад) - ?
djnz l1 (это в кратце, по факту надо огород через А делать ибо ldi bc юзает)

так что ли? такт тут явно больше 5 тактов на пиксель
А если мне надо босса 64 на 64 гонять по экрану? да ещё и с кучей мелких анимационных деталей
64 ldi ставить? так плять а сколько же тогда из 64 кб отображаемой памяти останется под программу? если в ней и сам экран и память спрайтов? ах даааа, будем страницы щёлкать предварительно их вычисляя перед каждой строкой в каждом спрайте?

Должно быть 1 байт на пиксель - 256 цветов, а 4 цвета на пиксель это вообще что? переделывать монохромную игру в 4 цвета это блооо высший класс.

Я вообще не скурил весь этот огород.
Или я всё не так понимаю?

Пусть будет несколько слоёв, 8 много, 2-4 за глаза, и то, приоритет должен быть не в слои а в скорость АППАРАТНОГО вывода спрайтов, называйте как хотите, но в 2D графике компьютера есть только спрайты, и текст тоже спрайты, зачем спрайты выводить ПРОГРАММНО если ПЛИС это может сделать в 1000 раз быстрее и абсолютно независимо от CPU ???
И зачем FullHD разрешение? оно должно быть изменяемым от 256x192 до хотя бы 800x600 с учётом VGA и SVGA, то есть иметь весь список стандартных разрешений, зачем делать 1920x1080 запросов 60 раз в секунду? 124 416 000 субпикселей? 125 миллионов запросов ради 50 тысяч точек?

Что вообще происходит? :)

zx-kit
29.08.2016, 04:58
Да я понял что это 8 аппаратных слоёв и они оттуда отображаются.
НО!
Вы конечно извините, но отдавать 100% мощности процессора на рисование 91 спрайта размером 16 на 16 я как то не готов, а кто будет подготавливать координаты для спрайтов? Вася Пупкин? а кто будет музыку играть? а кто звуки будет делать? а кто хоть какой нибудь искусственный интеллект будет делать?
Кто будет математикой заниматься? Кто рассчитает траектории полёта выстрелов и всех объектов?

Все это будет делаться также как делалось в играх для ZX Spectrum. Или ты считаешь, что для Z80 на частоте 3.5 MHz нельзя написать ни одну игру ?


Допустим я делаю 16 выстрелов размером 4 на 2, затраты на вывод 1 выстрела несоизмеримы с его размером.

Все относительно. Посчитай, сколько времени тратится сейчас на те же задачи и сравни с новым режимом.


От 3,5 Мгц можно смело вычитать 75% на ПРОЧИЕ вычисления.
Итого остаётся 22 спрайта 16x16, и это если не заниматься поллитрой, ну это же всего лишь 1 табличка размером 96 на 58 летающая по экрану, И ВСЁ !
8 статических слоёв и всего лишь 1 спрайт 96 на 58 двигающийся по экрану, ляпота..........
Лично мне такого не надо.
По сути это не ускоритель а тормозитель, огромная плисина с мешком памяти и бедный чахлый процессор 80-ых побайтово выводящий спрайты на экран.

Ускорение есть: скроллинг экрана аппаратный, не надо накладывать маску на фон - рисуем спрайт ГГ в отдельном слое с прозрачным цветом вместо маски, не надо вычислять адреса спрайтов на экране, не надо вычислять границы секторов экрана при спрайте высотой больше 8 точек, по два буфера на слой для устранения мерцания при движении спрайтов. Блиттер для доработки старых игр не нужен. А новую игру такого же уровня написать трудно. И если кто сможет, то и перечисленные возможности облегчат написание и ускорят игры.


Для спрайтов 8x8

ld hl,адрес спрайта
ld de,адрес на экране (чО? надо бы предварительно вычислить для каждого спрайта)
ld bc,8*8
l1 ldi ldi ldi ldi ldi ldi ldi ldi
add de,256-8 (inc d, e-надо возвращать на 8 байт назад) - ?
djnz l1 (это в кратце, по факту надо огород через А делать ибо ldi bc юзает)

ld hl, адрес спрайта
ld de, graph_data ; адрес начала графических данных. в области регистров видеокарты выделен диапазон размером 256 байтов для команд ldi и ldir
DUP 16
ldi
EDUP

Только в разных играх байт маски и байт спрайта могут лежать не последовательно. Поэтому, используя код игры, надо получить эти два байта и записать в видеокарту для рисования 8 точек без клешинга. Как собираешься это делать блиттером ?


Должно быть 1 байт на пиксель - 256 цветов, а 4 цвета на пиксель это вообще что? переделывать монохромную игру в 4 цвета это блооо высший класс.

Я вообще не скурил весь этот огород.
Или я всё не так понимаю?

Если игра монохромная и монохромные спрайты рисуются по фону, на котором есть изображение, например, домов, то в спрайтах УЖЕ есть по два байта на 8 точек. Берем эти два байта и выводим в новый слой для устранения клешинга. При этом сможем выбрать новые 2 цвета для ГГ. Если в монохромной игре спрайты рисуются на черном фоне, то проблемы клешинга нет и ничего можно не делать.
Точки рисуются сразу по 8. Вот для этих рисуемых 8 точек можно выбрать любой из текущих 4 цветов. В стандартном экране только 2 цвета на 64 точки.



Пусть будет несколько слоёв, 8 и нафиг не надо, 2-4 за глаза, и то, приоритет должен быть не в слои а в скорость АППАРАТНОГО вывода спрайтов, называйте как хотите, но в 2D графике компьютера есть только спрайты, и текст тоже спрайты, на кой хер спрайты выводить ПРОГРАММНО если ПЛИС это может сделать в 1000 раз быстрее и абсолютно независимо от CPU ???

Если 4 слоя хватит, то можно уменьшить количество микросхем SRAM с 4 до 2. Или вместо микросхемы SDRAM лишние 2 микросхемы SRAM переставить на отдельную шину для ускорения. Блиттер будет на втором этапе разработки. 1 этап для устранения клешинга.


И зачем FullHD разрешение? оно должно быть изменяемым от 256x192 до хотя бы 800x600 с учётом VGA и SVGA, то есть иметь весь список стандартных разрешений, зачем делать 1920x1080 запросов 60 раз в секунду? 124 416 000 субпикселей? 125 миллионов запросов ради 50 тысяч точек? нахера?

Что вообще происходит? :)
Это разрешение монитора, разрешение экрана остается без изменений. Увеличением занимается видеокарта, но это к рисованию отношения не имеет. Она может загрузить строку в свой буфер и затем выводить 4 строки с увеличением каждого пиксела в 4 раза.

Nesser
29.08.2016, 13:01
- В играх для спектрума НИКОГДА не хватало мощности процессора даже для монохромного изображения.

- Я считай что на z80 МОЖНО делать нормальные игры с АППАРАТНОЙ видеокартой а на ПРОГРАММНОЙ видеокарте НЕЛЬЗЯ.

- Ускорения НЕТ, аппаратный скроллинг это когда в памяти находится подготовленный экран 1024 на 1024 и он на экран 256 на 192/240 отображается АППАРАТНЫМИ средствами, у тебя же размер хранимого экрана 256 точек и размер отображаемого экрана 256 точек, извините, а каким хером я буду дорисовывать края? даже на денди есть возможность дорисовывать ЗА ПРЕДЕЛАМИ экрана, да и любая дорисовка это уже ПРОГРАММНЫЙ скроллинг.

- Отсутствие маски это не преимущество а недостаток, Амига в своё время только за счёт маски и выплыла, cpu работает только с 1 битной маской а чип AGA подставляет на него 8/16/24 битный цвет.

- "по два буфера на слой для устранения мерцания при движении спрайтов" ? 16 буферов? ради чего? ради монохромного спрайта подкрашенного четырьмя цветами? это огород на котором ничего не будет расти.

- "в области регистров видеокарты выделен диапазон размером 256 байтов для команд ldi и ldir" - (пауза в размышлениях)............это типа 2 окна по 256 байт, в одном окне просвечивается кусок спрайта в памяти а в другом окне просвечивается кусок на экране без учёта смещений ?..............и нам надо с помощью процессора перекинуть с одного места в другое?...............а нах тогда ПЛИС нужна? это полностью аналогично ситуации - идёт литьё монолитного дома, по сиське бетонанасоса подают бетон на 10 этаж, при чём не сразу в опалубку а в корыто, из которого 2 подмастерья в ЛОПАТАХ несут бетон через 5 подъездов на другую сторону дома, ну да, сиська прекрасно достаёт до другой стороны дома, можно сиську прям в опалубку вставить и туда налить сразу 5 кубов, а зачем? мы будет на другую сторону дома наливать по 20 литров в тазик и носить через весь дом в лопатках, глядишь 1 миксер и перенесут за неделю, правда он засохнет через час, но то не важно, главное ПРИНЦИП !

- на спектруме ВСЕ игры монохромные, у него НЕТ цветного экрана, есть только атрибутный экран, который накладывается поверх графического МОНОХРОМНОГО, по данной причине все спрайты в играх МОНОХРОМНЫЕ, а атрибуты вообще могут хранится жёстко в регистрах и накладываться в конце экрана независимо от изображения, поэтому найти их в недрах игры проблемно и НЕ ИМЕЕТ НИКАКОГО СМЫСЛА.

- в стандартном экране не 2 цвета на 64 точки а ДВА ЭКРАНА - один графический монохромный другой атрибутный цветной.

- нужно боооооольше пааааамятииии (C Warcraft)

- А ничего что ты частоту в 125 МГц выводишь через ёмкостные R2R а не через дифференциальный корректирующийся ЦАП ?

- Другой вопрос а зачем такая развёртка? если только ради прямоугольного скругления квадратных пикселей то нах оно надо, ничего что это анаморфия с неквадратным пикселем? 4:3 и 16:9/16:10 не?

- Разрешение должно чётко соответствовать размеру пикселя, не надо никаких тв-эмуляторов, или может сразу 4К мониторы всем взять? у меня для спектрума стоит монитор 1024x768, это МАКСИМУМ который требуется для развёртки, 50 МГц за глаза для спектрума, зачем делать FullHD развёртку с дубликатором кривых пикселей если онная видеокарта даже ОДИН экран 256x192 в динамике обслужить не может? зачем мне вокруг НАСТОЯЩЕГО пикселя ещё липовые пиксели? с таким же успехом можно просто поставить 3 конденсатора на RGB которые размажут сигнал на 3-4 пикселя.


Не знаю как остальные, но я в данной "разработке" ни одного плюса говорящего о её необходимости не нашёл.

zx-kit
30.08.2016, 06:02
Координаты спрайтов только положительные, это очень неправильно, 15 бит координат должен отвечать за - и +, то есть от -32767 до 32767, что это за ускорялка где обрезку спрайтов должен делать цпу.

Согласен, надо сделать обрезку спрайтов, если они выходят за границы области 256х224 точки.

- - - Добавлено - - -


у тебя же размер хранимого экрана 256 точек и размер отображаемого экрана 256 точек, извините, а каким хером я буду дорисовывать края? даже на денди есть возможность дорисовывать ЗА ПРЕДЕЛАМИ экрана
В Метеоре каждый слой состоит из двух блоков размерами 256х256 точек. То есть можно писать в область 256х512 точек. А потом выбирать видимую часть 256х224 точки, задавая смещение в этой области. Денди может записывать данные в область экрана только во время кадрового импулься и процессор на частоте 1.79 МГц.
А Спектрум имеет вдвое быстрый процессор и может записывать данные в течение всего кадра. Поэтому дорисовать столбец фона программно-аппаратным способом успеет. Тем более с помощью блиттера.

- - - Добавлено - - -


- "в области регистров видеокарты выделен диапазон размером 256 байтов для команд ldi и ldir" - (пауза в размышлениях)............это типа 2 окна по 256 байт, в одном окне просвечивается кусок спрайта в памяти а в другом окне просвечивается кусок на экране без учёта смещений ?..............и нам надо с помощью процессора перекинуть с одного места в другое?
Есть два способа копирования. Чтобы не считать адрес в области экрана данные спрайтов записываются одному из адресов в одном диапазоне 256. Но в командах ldi и ldir адрес записи увеличивается, поэтому будет 256. Видеокарта сама определит куда записывать очередные 8 точек спрайта.

- - - Добавлено - - -


А ничего что ты частоту в 125 МГц выводишь через ёмкостные R2R а не через дифференциальный корректирующийся ЦАП ?
- Другой вопрос а зачем такая развёртка? если только ради прямоугольного скругления квадратных пикселей то нах оно надо, ничего что это анаморфия с неквадратным пикселем? 4:3 и 16:9/16:10 не?
- Разрешение должно чётко соответствовать размеру пикселя
Я тоже считаю, что точка должна попадать точно в пиксел экрана. Для этого надо выдавать изображение с разрешением монитора. Так как 1920x1080 стандартное разрешение, то надо делать его.

Тест сетки для Speccy 2010, где VIDEODAC на R-2R, доказывает возможность изображения в режиме FULL HD:

http://savepic.ru/11204940m.png (http://savepic.ru/11204940.png)

http://savepic.ru/11203916m.png (http://savepic.ru/11203916.png)

Так как точки получатся мелкие, надо их увеличить в 4 раза. Так как точки получатся слишком крупные и квадратные можно включить режим сглаживания.

http://savepic.ru/11190604m.png (http://savepic.ru/11190604.png)

- - - Добавлено - - -

Для тех, у кого нет разрешения 1920x1080 желательно предусмотреть скандаблер VGA 50 Hz, VGA 60Hz.
Или сделать видеовыход только на SCART. А уже эту развертку будут преобразовывать китайские переходники в VGA, PAL, HDMI и т.д.

Давайте пока считать, что у видеокарты Meteor видеовыход SCART как у любого Ленинграда, только цветов побольше.

Reobne
30.08.2016, 08:33
Nesser, Lethargeek, ...
Вы по моему не хотите адаптировать ZX-игры под Метеор, а хотите писать чтото совсем новое, только для этого нового.
То есть вашы игры будут только для Метеора, а версии для ZX48-ZX128 не будет.
PC - windows для вас не интересна как платформа. TS-conf вас тоже чем-то не устраивает... А может всё-же TSlabsa вам понапрягать своими хотелками, мне кажется его система вам ближе. Как раз игры под TS-conf, вроде и на Z80, но уже совсем далеки от ZX48-ZX128. И главное оно там уже работает.
Уже! Уже Околобаха может взять в руки правильную скрипку и сыграть нам!- Шучу, но так оно выглядит с некоторой стороны, когда кто-то прям ждёт-недождётся блиттер наконец в 2016 году, а он то уже давно и есть.

А ZST тут делает, как я понимаю и жду, то, что TS-conf не может. Тут будет слабость, побеждающая мощь. Нетрудное устранение из игр некоторых дефектов графики. Типа хаосксоринга, атрибутного клешинга, мерцания. Все игры разные, где то получится, где-то нет, где то частично. Надо пробовать.

Также должна появиться и возможность делать новые игры сразу для ZX48+ZX128+Meteor. Это очень хорошо. ZX128+Meteor, это тоже хорошо. Ну и только для Meteor, это конечно похуже, но и не плохо. Просто это уже то-же самое, что и TS-conf. Тут возможна конкуренция в популярности. Поскольку Meteor обладает уникальными свойствами в адаптации старых игр, то она не проиграет, а либо выиграет, либо компромис. А вот TS-conf может и проиграть. Её козыри, это уже готовое ПО под неё: маловато по объёму выпущенного и по качеству. ИМХО я смотрел всего несколько демок и пару игр, конечно, но эстетический диссонанс был постоянен.
Ладно это всё мои домыслы. Хочется, чтобы поменьше донимали ZST. Пусть творит, выдумывает, пробует спокойно. А вы ему как киту лебедь и рак, кипишуете.

Sayman
30.08.2016, 08:42
Reobne, тут нет самого главного понимания - без переделки кода игры, клэшинг никуда никогда не денется. он как был так и будет. делать перехват сигнала РГБ, как это было ранее описано, это значит перехватывать все помехи и артефакты. В железе МЕТЕОРА нет с 2013го года. Чтобы понять прелести переделки старой игры, возьмите уже существующую железку, будь то Спринтер или ТСконфа. Да что далеко ходить, режим 16ц подключить можно. Попробуйте хоть какую самую простую игру переделать, тот же R-Type или что попроще.
Касательно новых игр под метеора - 128кб маловато будет под цветные спрайты, вы об этом подумали? даже если 16цветов на экране будет, это уже каждый спрайт в 4 раза больше занимать места будет в памяти. я не говорю про 8бит на точку. у вас спрайты (не считая фона), будут сжирать всё озу.

CodeMaster
30.08.2016, 11:37
Reobne, тут нет самого главного понимания - без переделки кода игры, клэшинг никуда никогда не денется. он как был так и будет.

Да ну. Фильм "Весёлые ребята" раскрасили, да не на лету, но неужели современное железо не сможет раскрасить и устранить клешинг на лету на экране 256×192 точки? ;-)

NEO SPECTRUMAN
30.08.2016, 17:53
без переделки кода игры, клэшинг никуда никогда не денется. он как был так и будет
Spec256 и ZX-Poly в студию

Raydac
30.08.2016, 18:04
Spec256 и ZX-Poly в студию
без переделки много игр раскрашивается - медицинский факт

Sayman
30.08.2016, 18:35
Spec256 и ZX-Poly в студию
да-да, конечно, мы сейчас говорим про мифы и легенды? ну удачи вам в запуске 8ми Спектрумов в одной карточке аля Метеор)))

без переделки много игр раскрашивается - медицинский факт
медицинский факт - в железе этих девайсов нет. фантазии авторов эмуляторов за факт рассматривать крайне некорректно. в эмуляции можно прикрутить всё что душе вздумается. хоть гефорс1080. в железе дайте потрогать. а потрогать нечего и не будет ещё жутко долгое время. при этом. как жуе было замечено ранее, различные конфиги и машинки есть уже сейчас. вам никто не запрещает ими воспользоваться.
и да, без переделки таки никак не удастся...

NEO SPECTRUMAN
30.08.2016, 18:44
процессор на частоте 1.79 МГц.
А Спектрум имеет вдвое быстрый процессо
и че?

это 2 разных процессора

у геймбоя проц 4.1 МГц (у цветного так вообще 8.3 МГц)
но чота графа на нем не сильно отличается от дендивской
(хотя доступ к видео памяти у него тоже есть не всегда)

на помню что у комода вообще 0.9 МГц

не в частоте счастие


А Спектрум имеет вдвое быстрый процессор и может записывать данные в течение всего кадра.
а у денди есть DMA
переброска в видео память без участия процессора

- - - Добавлено - - -


8ми Спектрумов
не знаю как там на счет 8-ми спектрумов.
тк я детекчу что между ними возможно раз синхронизация

а вот новый процессор который будет читать кроме байта данных еще и 8 байт цвета уж точно понадобится

Reobne
30.08.2016, 18:52
Sayman, Раскраска и устранение дефектов, это разные действия. Да, можно, для полного счастья, Диззи сделать красные конечности, но и просто, постоянно белый, без хамелеонство это уже хорошо.
Spec256 и ZX-PolyИнтересно если кто-то возьмётся в железе делать, тоже набегут отговариватели. Почему то всегда находятся желающие сказать: "ты это не делай, ты вон то делай."

Как-то смотрел переделанную раскрашиванием R-Type. Не очень впечатлила. Игра и так красива, и дефектов в ней особых не замечал.

Sayman
30.08.2016, 19:00
тоже набегут отговариватели.
ну вот очень интересный момент. Например, где были товарищи желающие антиклэшинг, когда создавали , ну, ту же ZXEvo? Все аплождировали, мол ВААУУ, крутая штука. А сейчас вы тут все от неё нос воротите, для вас опять пень128 стал нормой, вот только графику чутка ему подправить надо..хмм.. где то это уже было, ах да, zx-evo же есть, там уже графика подправлена))) только вот она не устраняет клэшинг. вам не кажутся такие закономерности странными?
вам уже много чего сделали, вам всё мало. всё пытаетесь изобрести велосипед. ну вон, есть же эмуляторы zxpoly, spec256. ну, наверное можно просто ими попользоваться в тех случаях, когда вломы карячить что-то новое под эву, спринтер, тс... не?
ну хотя, на пц тоже, вон, новый гфорс дали народу. а им уже гфорс 2080 подавай)))

NEO SPECTRUMAN
30.08.2016, 19:23
Как-то смотрел переделанную раскрашиванием R-Type.
да пушо чем больше цветов
тем проще нарисовать унылую картинку
мне чета не одна "переделанная" игра не нравится

я как смотрю на это уродства на всяких сегах, снесах в старых ПЦ-шных играх
везде эти унылые градиенты не к месту
все лишь бы показать что "смотрите у этого девайса еще и такой цвет есть" :v2_dizzy_facepalm:



больше 3-4 цветов на знакоместо\тайл не нужно в принципе
а если их больше то руки уже должны быть из того места


а вот элементарные переделки палитры для ula plus смотрятся очень даже интересно
даже со все тем же клешингом
58025

что как бы говорит нам зачем нужно было впилить в спектрум этот ср***й flash
когда можно было бы впилить раздельный bright для inc и paper
и тем самым значительно улучшить картинку...

- - - Добавлено - - -


Интересно если кто-то возьмётся в железе делать, тоже набегут отговариватели
лично я уже 3 года периодически заглядываю в эту тему (типа интересно что же в конце получится)
и никакого делания толком не вижу
а так мне все равно
пилите Шура пилите

меня вообще устраивает клешинг
а не отказался бы я от 256х192 256с на 48К рамы с линейным экраном и палитрой
при проце под 16-30 МГЦ

Reobne
30.08.2016, 19:27
Ну так что делать,
Sayman, если велосипед всё ещё не изобретён!
Самокат давно есть. Это ZX48-ZX128. Катаемся на них давно, знаем их хорошо. ZX48 одной ногой стоим, второй отталкиваемся. ZX128 сидим в седле и обеими ногами отталкиваемся.
Придумывали ZX-evo и всякие конфы. Это как-бы поставили моторчики. Турбина Герона. Пороховой ускоритель. Не совсем то получилось, запарок много. Надо изобрести-таки педали. И цепь. Вот этим и занимаемся. Изобретаем первый велосипед! :)

Sayman
30.08.2016, 19:38
а не отказался бы я от 256х192 256с на 48К рамы с линейным экраном и палитрой
ну. например, есть 320х256 256с (82кб видеорамы) с палитрой. ну выводи ты там на 256х192, что мешает?

Reobne, всё что ты перечислил не совсем так, эво/спринтер/тс это велики с педалями, но туда ещё моторчик вкарячили для большей скорости.
в общем, это всё офф жёсткий. запилите Метеора хотя бы 1 рабочий экземпляр для опытов, да попробуйте устранить клэшинг хоть в одной какой-то игре. сколько можно тут болтологию разводить?

NEO SPECTRUMAN
30.08.2016, 19:47
ну. например, есть
в 256х192
downhl кушает 4 такта
uphl 4 такта
lefthl 4 такта
righthl 4 такта

а в твоем 395 на 161...

в придачу 320 неудобное для работы число
было б 128\256\512\1024

а еще шикарные экраны у специалиста\ориона\вектора
жаль на спектруме подобный не прижился
одна конфа для пятнагона под которую ничего нет

Sayman
30.08.2016, 20:33
в 256х192
downhl кушает 4 такта
это ты про мифический (желаемый) экран так мечтаешь? чтобы downHL было за 4 такта)))
не знаю как у ТСконфы, а на спринтере для перехода на новую строку никакие downHL не надо делать. для этого есть порт Y. кидай туда координату, а нужный адрес этой строки будет подставлен на 0xc000, к примеру. остаётся только по спрайту/тайлу/битмапу переместиться. к примеру:


in a,(0x89)
inc a
out (0x89),a
inc h ;+256
далее продолжить вывод. есть ещё другой метод вывода, верт.линиями...

Nesser
30.08.2016, 22:18
У денди кстати процессор risc и dma есть, с z80 сравнивать бесполезно, они разные.

Тс-конф нормальная штука, но меня смутило отсутствие ide, точнее воткнутое в него dac монитора, как бы всё ничего, но покупать уже перехотелось, задумка изначально может и хорошая, но исполнение в железе по моему сыровато.

Кто нибудь вообще переделывал игры под другую графику? что значит - просто сделать больше цветов? это вообще как? надо перелопатить весь код, найти где вывод на экран, поменять все переходы, добавить отдельно процедур, и ещё и ещё и ещё, в итоге получается что ты сделал игру ЗАНОВО, в том числе и графику, только потратил ещё время на копошения в чужом белье. Что значит - просто раскрасить? на мониторе фломастером нарисовать?

- - - Добавлено - - -


В отличие от видеоадаптера VGA&PAL видеоадаптер VGA Sputnik предназначен для подключения Спектрума и советских компьютеров к VGA монитору в режиме FULL HD 1920x1080. Возможность подключения к компьютеру через цифровые или аналоговые входы RBGS. Предполагалось добавить некоторые видеорежимы видеокарты Метеор. Но мы уже так разогнали Метеор и увеличили память, что VGA Sputnik уже не успеет за ним. Разве только для устранения клешинга с одним дополнительным слоем. Память там только SDRAM.

А в Метеоре 2M SRAM и 32M SDRAM, что позволит выводить 8 слоев и в будущем копировать тайлы, спрайты и картинки с помощью блиттера из SDRAM в SRAM.

Пожалуйста, ну не надо 1920x1080 :) у половины мониторы 1680x1050 а у оставшийся половины половины 1280x1024, и только у 15% 1920x1080, им что, китайский скандаблер придётся покупать? :)
А можно для экрана 256x192 сделать стандартную развёртку 320x240 ? ну что бы так сказать на ЭЛТ мониторе "Электроника" нормально смотрелось? а то в него FullHD некуда воткнуть.

И что значит "В БУДУЩЕМ" ? а сейчас на нём что надо будет делать? рисовать программно а когда появится "БУДУЩЕЕ" то опять всё заново переделывать? или что?

ZX_NOVOSIB
31.08.2016, 13:53
Внезапно я понял одну вещь. Я не хочу видеть на экране спектрума, нечто похожее на экран денди/сега/PC и т.п.
Я не хочу видеть кучу цветов (тем более таких уныло-блеклых как были на денди или на C64). Я хочу 15 спектрумовских цветов, узнаваемых, кричащих, ярких, жизнерадостных, временами абсурдных. Я хочу спектрумовское засилие чёрного... ) Да, чёрное солнечное небо это абсурдно, но это спектрум ))) Я хочу спектрумовские грубые цветовые переходы. Даже если просто добавить коричневый (земля, грунт) - это будет уже не спектрум, "спектрумовский" грунт - это чёрно-красный или чёрно-жёлтый. :-)

Разрешение тоже должно быть спектрумовским, узнаваемым! 256*192 (Хотя порой кажется, что 512*384 не помешало бы, на таком разрешении даже клэшинг не бросался бы в глаза, чёрный ореол вокруг объектов был бы мягким и не бросался бы в глаза. Монохромные игры тоже были бы бесподобны. Но ведь когда кажется - надо креститься )

А вот убрать клэшинг пожалуй было бы здорово. Причём хватило бы 3-4 цвета на знакоместо, ведь все сталкивающиеся объекты имеют 2 цвета на знакоместо, т.е. все они изначально монохромные, и лишь потом получают атрибуты. Если у объектов есть общий цвет (черный), то для устранеия клэшинга хватило бы 3 цвета на знакоместа, если все цвета разные - 4 цвета.
Всё таки вот так гораздо лучше:

http://savepic.ru/11206537.png

Чем, блин, вот так:

http://savepic.ru/11182985.png

Бедному диззику из-за клэшинга пришлось стать одновременно белым, сиреневым, зеленым и жёлтым ))) Всего 3 цвета на знакоместо позволили бы ему оставаться самим собой.

Raydac
31.08.2016, 17:53
Я хочу 15 спектрумовских цветов, узнаваемых, кричащих, ярких, жизнерадостных, временами абсурдных. Я хочу спектрумовское засилие чёрного... ) Да, чёрное солнечное небо это абсурдно, но это спектрум ))) Я хочу спектрумовские грубые цветовые переходы. Даже если просто добавить коричневый (земля, грунт) - это будет уже не спектрум, "спектрумовский" грунт - это чёрно-красный или чёрно-жёлтый. :-)
ну увидь
https://raw.githubusercontent.com/raydac/zxpoly/master/docs/screenshots/atw_zxpoly_zxpz80.png

zx-kit
31.08.2016, 18:54
Внезапно я понял одну вещь. Я не хочу видеть на экране спектрума, нечто похожее на экран денди/сега/PC и т.п.
Я не хочу видеть кучу цветов (тем более таких уныло-блеклых как были на денди или на C64). Я хочу 15 спектрумовских цветов, узнаваемых, кричащих, ярких, жизнерадостных, временами абсурдных. Я хочу спектрумовское засилие чёрного... ) Да, чёрное солнечное небо это абсурдно, но это спектрум ))) Я хочу спектрумовские грубые цветовые переходы. Даже если просто добавить коричневый (земля, грунт) - это будет уже не спектрум, "спектрумовский" грунт - это чёрно-красный или чёрно-жёлтый. :-)

Разрешение тоже должно быть спектрумовским, узнаваемым! 256*192 (Хотя порой кажется, что 512*384 не помешало бы, на таком разрешении даже клэшинг не бросался бы в глаза, чёрный ореол вокруг объектов был бы мягким и не бросался бы в глаза. Монохромные игры тоже были бы бесподобны. Но ведь когда кажется - надо креститься )

А вот убрать клэшинг пожалуй было бы здорово. Причём хватило бы 3-4 цвета на знакоместо, ведь все сталкивающиеся объекты имеют 2 цвета на знакоместо, т.е. все они изначально монохромные, и лишь потом получают атрибуты. Если у объектов есть общий цвет (черный), то для устранеия клэшинга хватило бы 3 цвета на знакоместа, если все цвета разные - 4 цвета.
Всё таки вот так гораздо лучше: ...
Чем, блин, вот так:
Бедному диззику из-за клэшинга пришлось стать одновременно белым, сиреневым, зеленым и жёлтым ))) Всего 3 цвета на знакоместо позволили бы ему оставаться самим собой.
Я все пытаюсь упростить видеокарту, а мне говорят надо больше разрешение, больше скорость, больше цветов, блиттер, 3D и т.д.
Может сделать более простую видеокарту и на ней отладить устранение клешинга ?

Характеристики "Метеор-1" примерно такие:

Разрешение 256х192.
Цвета - стандартные 15 ZX Spectrum.
Вывод на RGB SCART.
Один стандартный экран 48К.
Один дополнительный слой для спрайтов из двух блоков 256х192 точек.
Без аппаратного блиттера и скроллинга экранов.
Точка внутри видеокарты представлена 8 битами.
Требуемая память 7Кб на стандартный экран + 256*192*2 = 96 Кб на дополнительный слой.
Использовать 1 микросхему SRAM объемом 128К.

ПЛИС - вот тут сразу не выбрать.

Потом делать "Метеор-2" на FPGA + 2M SRAM + 32M SDRAM + 15 бит на цвет точки.

Smalovsky
31.08.2016, 19:25
Может сделать более простую видеокарту и на ней отладить устранение клешинга ?

Не нужно это делать. Сделаешь проще - начнут писать что мало, или клешинг убирать не надо. Да и с клана тэсэлыча начнутся провокации - будут рекламировать тсконфу на фоне минимального Метеора.

Nesser
31.08.2016, 21:41
Давайте уже делайте видеокарту с 4 цветами чисто для Диззи.
Для каждой игры сделаем свою видеокарту.
7 цветов почему то превратились в 4, 256x192 превратились в 1920x1080, что вообще происходит?
Кто будет переделывать старые игры? кто будет тратить лет 5 своей жизни? ради какой цели? бесплатно?
В чём вообще прикол? А если я хочу сделать warcraft или starcraft ? делай в 4-ех цветах с кучей слоёв?

Да никто ничего не будет делать, предназначение этой "видеокарты" более чем непонятно.

NEO SPECTRUMAN
31.08.2016, 21:57
Бедному диззику из-за клэшинга пришлось стать одновременно белым, сиреневым, зеленым и жёлтым
значит нужно немножко подправить чтоб фон становился цвета дизика

Smalovsky
31.08.2016, 23:16
Чего так спектрумисты тащатся от диззи? Мне больше Опасный мышонок и Буратино понравились.
ЗСТ, нужен регистр управления наложением в одном слое, который будет определять правило наложения для прозрачного цвета - или затирать старый цвет прозрачным цветом или оставлять старый цвет. Это не позволит в одном слое затирать спрайтам друг друга при выводе, а как бы прорисовывать один поверх другого.

zx-kit
01.09.2016, 05:06
ЗСТ, нужен регистр управления наложением в одном слое, который будет определять правило наложения для прозрачного цвета - или затирать старый цвет прозрачным цветом или оставлять старый цвет. Это не позволит в одном слое затирать спрайтам друг друга при выводе, а как бы прорисовывать один поверх другого.
Есть 4 текущих цвета из возможных 32768 (с кодами 0000-7FFF) и двух кодов прозрачности (8000 — не менять цвет точки в слое или 8001 — сделать точку слоя прозрачной). Цвет 8001 - это и есть ластик. При рисовании им соответствующая точка в слое стирается. Nesser посоветовал изменить код прозрачности для лучшей упаковки спрайтов. Тогда код прозрачности в спрайте и слое можно сделать FFFF. Код ластика тогда пусть будет 8000.

Для упрощения рисования и стирания спрайтов можно сделать несколько наборов по 4 цвета. Например, для рисования травы подобрать 4 соответствующий цвета, для рисования камней - другие 4 цвета и т.д. Один из наборов можно сделать для стирания. Все 4 цвета установить кодом ластика. Тогда при рисовании спрайта с этим набором цвета он будет очищать слой до прозрачного состояния.

Тогда в начале игры загружаем используемые цвета в несколько наборов, а перед рисованием спрайта выбираем номер набора. А если надо нарисовать несколько спрайтов разными цветами выбирать разные наборы цветов. Это пригодилось бы для игры типа "FUTURE TANK", где у танков разные цвета корпусов.

Надо подумать, как лучше назвать эти наборы цветов по 4 цвета и сколько их надо сделать.

ZX_NOVOSIB
01.09.2016, 10:02
Чего так спектрумисты тащатся от диззи?
Тебе не понять, ты ж не спектрумист ))


ну увидь
имелось в виду на реальном железе, а не в эмуле :rolleyes:


Давайте уже делайте видеокарту с 4 цветами чисто для Диззи.
Для каждой игры сделаем свою видеокарту.
Зачем передёргиваешь? 4 цвета на знакоместа это не "чисто для Диззи", это для всех (over 10k) спектрумовских игр. Во всех играх спрайты монохромные, все сталкивающиеся объекты в пределах одного знакоместа имеют всего 2 цвета. (причем чаще всего 1 цвет у двух объектов общий). Если возможно будет отобразить в пределах одного знакоместа 4 цвета (2 цвета одного объекта и 2 цвета второго), то значит клэшинга не будет.


Кто будет переделывать старые игры? кто будет тратить лет 5 своей жизни? ради какой цели? бесплатно?Это уже отдельный вопрос )))) Если новый видеорежим будет максимально похож на спектрум, то желающих переделывать будет больше. Если бы новую видеокарту можно было воткнуть в любой спектрум (в фирменный, в пентагон, в скорп и т.д.), то желающих переделывать игры было бы ещё больше. Есть много zx-клонов-монстров со своими видеорежимами, но под них очень мало пишут, потому что картинка этих видеорежимов уныло похожа на денди или на сегу. А должна быть спектрумовская картинка, вернее "как на спектруме, только лучше (без бросающегося в глаза клэшинга )". Довольного много спектрумовских игр уже раскрашено (внезапно!). Имею ввиду игры, которые были изданы как монохромные, например Sol Negro (http://vtrdos.ru/gamez/s/SOLNEGRC.ZIP). Люди не жалели труда, потому что полученный результат можно было глянуть на любом спектруме, и сама картинка не становилась похожей на "не спектрум" (денди, сега).

Nesser
01.09.2016, 12:31
4 цвета в персональном компьютере? я вас умоляю, 32 раза за каждую горизонтальную линию дёргать палитру с мешком палитровых банок что бы получить 1 полноценную линию на экране, это программно-аппаратное сжатие/расжатие в реальном времени при помощи чахлого процессора, зачем это?

В стандартных играх кроме как 1-5 спрайтов персонажей больше переделывать нечего, и для этого надо перелопатить ВСЮ игру, а если в игре используется больше 4 цветов (а их как минимум 7) то начинается программное дерганье палитрой, всё это сродно камазу с мопедовским движком, если хочешь перевезти 5 тонн земли на таком чуде, то это проще сделать лопатой, то есть проще вообще не начинать ничего делать.

Я вообще не представляю каким образом надо переделывать игру плотно натрамбованную в 48к в графику которая больше объёмом и не стыкуется с оригинальной, для этого придётся переделывать ВСЮ игру заново.
Хотелось бы хоть 1 пример такой переделки конкретно для это видеокарты.

Я к примеру не буду переделывать монохромную игру В монохромную игру с палитрой, если я и буду переделывать то только в аппаратный 1 байтовый цвет, не хочу я этих регистровых 2-х битных дендивских цветов, хотя может тут и есть такие супермены которые возьмутся переделывать игры из 1 битной графики в 2-х битную, но я точно пасс.

Пусть кто нибудь скажет - будет он заниматься такой переделкой или нет, если никто не будет то и будущего у такой видеокарты нет. А покупать ради одной тестовой игры сомнительно что кто то будет. Да и по сути что там изменится? Ходил диззи подсвеченный а будет не подсвеченный, тратить месяц ради этого по моему слишком не рентабельно, тем более это бесплатно.

Хотя это всего лишь МОЁ мнение.

s_kosorev
01.09.2016, 13:04
который будет определять правило наложения для прозрачного цвета - или затирать старый цвет прозрачным цветом или оставлять старый цвет
цитата достойная башорга

Nesser
01.09.2016, 13:29
Чего так спектрумисты тащатся от диззи? Мне больше Опасный мышонок и Буратино понравились.
ЗСТ, нужен регистр управления наложением в одном слое, который будет определять правило наложения для прозрачного цвета - или затирать старый цвет прозрачным цветом или оставлять старый цвет. Это не позволит в одном слое затирать спрайтам друг друга при выводе, а как бы прорисовывать один поверх другого.

Прозрачный цвет - это нету цвета, нельзя затереть тем чего нет, в данном случае при наличии в пикселе категории "прозрачный", с этим пикселем никаких операций не производится.

Reobne
01.09.2016, 14:59
Я вообще не представляю каким образом надо переделывать...
Не "надо", а "можно". Берёшь игру конкретную и смотришь, как её можно переделать.

...плотно натрамбованную в 48к в графику которая больше объёмом ...
Не все они так уж плотно натрамбованы, часто вполне достаточные есть дыры. Графику переделывать не обязательно, только дефективность устранить можно.
Поискать можно, где-бы код уплотнить. Какую-то графику может в статическом слое видеокарты хранить, только включать-выключать.
Но если очень хочется подкрасить графику, а всё так уж плотно набито, есть же вариант в 128К переделать, (я точно так делать не буду, у меня нервы не позволят, но если кто-то сделает, ничего против не имею.).

Nesser
01.09.2016, 15:17
Что бы хранить графику в видеокарте придётся игру заново переделать, так как игра на спектруме это и есть по сути вывод графики.
И вообще, о чём мы спорим? ещё ничего нет :)
Пусть кто нибудь хотя бы Myth или Soldier of Fortune переделает под сей девайс, тогда уже и посмотрим.

п.с. а лучше не переделать а сделать нормально с задним фоном.

Reobne
01.09.2016, 15:35
цитата достойная башорга

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

zx-kit
01.09.2016, 17:03
Давайте представим, что рисует спрайты не видеокарта, а маленький робот. Мы даем ему в четыре манипулятора четыре инструмента. Для выбора инструмента мы даем ему двухбитный код. Он получает код и выбирает, каким манипулятором махать.

Инструменты могут быть:
- краска (код от 0000 до 7FFF)
- ластик (код 8000)
- нет инструмента (код FFFF)

Когда надо менять цвет спрайта мы даем роботу другой набор инструментов:
Можно дать одну краску.
Можно дать две краски.
Можно дать три краски.
Можно дать четыре краски.
Можно дать четыре ластика. Тогда какой бы код мы не дали - он будет все стирать.

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

Reobne
01.09.2016, 17:39
zst, Я "пустым" называл твой "нет инструмента". А "прозрачным" твой "ластик". Я сейчас не спорю, а просто хочу сказать что то-же самое пытался объяснить, своими словами. :)

Hacker VBI
01.09.2016, 18:14
Цитата. (http://forum.tslabs.info/viewtopic.php?f=35&t=157)


Q: Как устроен TSU?
A: Для работы TSU отведено 1792 такта 28МГц (строка видео). TSU живет исключительно в пределах одной строки изображения и работает в строке, предшествующей той, которая видна в данный момент на экране. Двиг разбит на 2 функциональные части: обработчик объектов (парсер) и рендерер. Парсер последовательно проходит по слоям графики и объектам внутри слоев. Как только парсер готов сформировать задание для рендера (от 1 до 8 тайлов в ряд, с заданной палитрой, координатой, направлением рисования а также, адресом ОЗУ, откуда читать битмап), а рендер - его принять - начинается трах ОЗУ/рисование в буфер оверлея, а обработчик объектов двигается дальше. Рендерер рисует пиксели в буфер, который состоит из 360 байт, и буфер этот накладывается поверх основной графики по маске !=0 в течении отображения строки видео. Формат буфера - биты 4-7 - палитра, биты 0-3 - цвет в палитре, если биты 0-3 == 0, то пиксель в буфере прозрачный. Буферов 2, чтоб чередовать.Все это происходит в фоне относительно Z80, не тормозя его работу. На рисование одного пикселя уходит 1 такт 28МГц, следовательно производительность приближается к 1792 пикселей за строку, за вычетом ожиданий ОЗУ и накладных расходов на парсер, когда рендерер свободен, а задание для него не готово.

Nesser
01.09.2016, 19:36
Давайте представим, что рисует спрайты не видеокарта, а маленький робот. Мы даем ему в четыре манипулятора четыре инструмента. Для выбора инструмента мы даем ему двухбитный код. Он получает код и выбирает, каким манипулятором махать.

Инструменты могут быть:
- краска (код от 0000 до 7FFF)
- ластик (код 8000)
- нет инструмента (код FFFF)

Когда надо менять цвет спрайта мы даем роботу другой набор инструментов:
Можно дать одну краску.
Можно дать две краски.
Можно дать три краски.
Можно дать четыре краски.
Можно дать четыре ластика. Тогда какой бы код мы не дали - он будет все стирать.

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

Вооуууу, подожди, не торопись.
Я хочу сделать горизонтальную линию из 256 не повторяющихся цветов, мои действия?
Или шар 16x16 2-3 оттенков цвета и с радиальной яркостью, то есть 8 яркостей 2-3 цветов, сколько раз мне надо менять поллитру? сколько байтовых операций будет применено для такого спрайта 16x16 ?

zx-kit
01.09.2016, 22:20
Вооуууу, подожди, не торопись.
Я хочу сделать горизонтальную линию из 256 не повторяющихся цветов, мои действия?
Или шар 16x16 2-3 оттенков цвета и с радиальной яркостью, то есть 8 яркостей 2-3 цветов, сколько раз мне надо менять поллитру? сколько байтовых операций будет применено для такого спрайта 16x16 ?
Иди на TSU (http://forum.tslabs.info/viewtopic.php?f=35&t=157).

NEO SPECTRUMAN
01.09.2016, 23:31
Давайте представим, что рисует спрайты не видеокарта,

Я хочу сделать горизонтальную линию из 256 не повторяющихся цветов

чего все пытаются пилить спрайты, линии, 1920х1080

почему никто не пилит хардварную отрисовку треугольников по 3м координатам для простого пентагоновского 16с? :v2_confu:

ВСЕ НАДО ДЕЛАТЬ СВОЮ ВИДЕО КАРТУ!!!! :v2_dizzy_vodka2:
с блекджеком и шлюхами

ушел делать новую тему по обсуждению концепции:v2_dizzy_step:



тут вроде где то была тема про видео карту которая рисует прямоугольники и полосочки
и даже было видео с результатом работы
но чото я её потерял:v2_dizzy_messed:

Nesser
02.09.2016, 13:37
Ладно уже, давайте доделывайте эту видеокарту, делайте нормальное описание (из нынешнего не очень всё понять можно), делайте пару тестовых игр, озвучивайте цену и будет посмотреть.

zx-kit
03.09.2016, 07:44
Для Метеора зарезервировать адреса:

3A00 — 3AFF (0011 1010 XXXX XXXX) — блок регистров видеокарты
3B00 — 3BFF (0011 1011 XXXX XXXX) — окно для загрузки данных в видеокарту командой LDIR

- - - Добавлено - - -

Для упрощения программирования после сброса видеокарта должна очистить все 8 слоев.

- - - Добавлено - - -

В первом посте будет обновляться текущая концепция, принцип работы, переменные.

Hacker VBI
03.09.2016, 10:50
Тема переименована в "Лохоторон ZXkit" и перенесена в раздел Работа "Барахолки". (http://market.zx-pk.ru/forum/viewtopic.php?f=2&t=29&start=260)
zst, господи, чем вы здесь занимаетесь? у вас заказов море невыполненных, а вы "концепцию обновляете"

Ovvnex
03.09.2016, 10:59
Hacker VBI, Хатико ждал и заказчики подождут.:v2_dizzy_biggrin2:
Тоже очень сильно сомневаюсь в реализации этой вундервафли в железе, судя по "ответственному" подходу zst.

Totem
03.09.2016, 11:24
Тема переименована в "Лохоторон ZXkit" и перенесена в раздел Работа "Барахолки". (http://market.zx-pk.ru/forum/viewtopic.php?f=2&t=29&start=260)
zst, господи, чем вы здесь занимаетесь? у вас заказов море невыполненных, а вы "концепцию обновляете"

http://i.imgur.com/cdlls.gif

Сие правильно сказано, ZST,выполняйте поставленные задачи, сказки о слоях мы и так знаем.

Smalovsky
03.09.2016, 13:02
Прошу админов вмешасться. Давят на человека.
Какая разница сколько ЗСТ будет делать Метеор? Его право ставить сроки. И Метеор изначально предполагал коллективное участие всех желающих, а это уже длительный процесс.
Хотя, истинная причина наезда на ЗСТ - зависть некоторых приверженцев некоторой платформы. Ведь внимание уже не их платформе уделяют на форуме.

AlexG
03.09.2016, 14:08
оффтоп.
Дело не в "метеоре..." а в том что судя по всему он с трудом выполняет взятые на себя обязательства по рассылки "конструкторов". те много слов а дела мало. ИМХО.

SaNchez
03.09.2016, 16:31
Я считаю, хватит кормить тролля... Вас развели, а вы повелись...

Reobne
03.09.2016, 17:34
Вводить санкции на разработку видеокарты за отставание по конструкторам - неэтично.
Мысли человеку приходят по его "Метеору" - пускай записывает, если хочет.
А конструкторы - мы же не знаем сколько у него свободного времени, как семья, как работа, как его здоровье.


Хотя, истинная причина наезда на ЗСТ - зависть некоторых приверженцев некоторой платформы. Ведь внимание уже не их платформе уделяют на форуме.
Так писать тоже неэтично. Не знаем мы ничего про зависть. Может просто боятся за права потребителей, заказавших карты. Не надо надумывать "истинных причин".

- - - Добавлено - - -

Короче, в теме про конструкторы домогаться про задержки - это можно.
А тут пакостить - нехорошо.

Smalovsky
03.09.2016, 22:34
У меня соображения насчёт формата байтов для четырёхцветного цвета.
Итак, у нас есть такой формат, в первом байте первые биты восьми цветов, а во втором байте вторые биты восьми цветов. То есть( нумерация битов для цвета с с нуля):

_____________________1-ый байт__________________________________________ _________2-ой байт
|1-ый цвет бит 0|2-ой цвет бит 0| .. |8-ой цвет бит 0|_______________|1-ый цвет бит 1|2-ой цвет бит 1| .. |8-ой цвет бит 1|

Что соответствует формату денди.
Предлагаю ввести ещё линейный формат, когда биты цветов идут по два для цвета:

_____________________1-ый байт__________________________________________ ______________2-ой байт
|1-ый цвет бит 1, бит 0|2-ой цвет бит 1, бит 0| .. |4-ой цвет бит 1, бит 0|_____|5-ый цвет бит 1, бит 0|6-ой цвет бит 1, бит 0| .. |8-ой цвет бит 1, бит 0|

Обоснование ввода второго формата.
Второй формат удобен для манипуляций с графическими данными в памяти. Так к примеру, видно, что легко осуществляются битовые сдвиги. Пиксель сдвигается за две команды сдвига, в то время, как для формата денди такой попиксельный сдвиг сложен для количества байт в строке блока более двух. Более удобная структура второго формата делает возможной динамическую генерацию и изменение графических блоков для игры в памяти. Формат денди не предназначен для динамического изменения графических блоков.
За выбор организации кодирования байтов можно использовать регистр data_format.

Говорят, что мол, Метеор будет выводить мало спрайтов. Давайте сравним с денди. Денди может вывести до 64 спрайта максимальным размером размером 8х16 пикселей. Метеор, по приблизительным подсчётам, 44 спрайта размером 16х16 при частоте программного обновления 25 раз в секунду(с учётом времени обработки логики и звука). Переведём в пиксели:
денди - 64х8х16=8192 пикселя
Метеор 44х16х16=11264 пикселя
Метеор выводит пикселей на 37.5% больше по сравнению с денди.
Вы возразите - но Метеору нужно вывести фон! Да, это так. Только Метеор выводит фон не каждый кадр, а только один раз в нижний слой. Благодаря этому не нужно переписывать фон каждый кадр. Такое решение уравнивает Метеор и денди по части вывода фона.

s_kosorev
04.09.2016, 01:19
етеор выводит пикселей на 37.5% больше по сравнению с денди.
Ну да, у денди частота памяти что то около 2.5мгц, тут SRAM или SDRAM предлагают (96Мгц вроде звучала цифра), но при этом уделывает аж в 37,5% !!!!

- - - Добавлено - - -

тобиш перенести методы денди на современные технологии, получается денди смогла бы вывести, внезапно! 64*40 = 2560 спрайтов

Nesser
04.09.2016, 12:58
У денди память 8 бит с частотой 2,25 МГц, у метеора 16 бит 96МГц, то есть разница в 85 раз.
У денди частота вывода спрайтов не 25 Гц а 50 Гц, соответственно не на 37,5% больше а на 37,5% МЕНЬШЕ.
В итоге получается что денди на 9000% мощнее чем Метеор :)

Невероятно но ФАКТ :D

"Только Метеор выводит фон не каждый кадр" - Ошибаешься, он ОБЯЗАН выводить фон КАЖДЫЙ кадр, иначе на мониторе ничего не будет :)

п.с. при 96 МГц памяти и ВСЕГО ОДНОМ слое памяти при разрешении 256x192 и 1 байте на пиксель нелинейный DMA способен вывести СОРОК (40) полноценных слоёв на каждом по 768 спрайтов размером 8x8 и 256 линейных цветов на пиксель.

Smalovsky
04.09.2016, 13:25
Nesser, программа записывает фон в нижний слой один раз, а Метеор выводит фон каждый кадр. Понимать правильно надо и не придираться.
44 спрайта Метеор выводит в расчёте использовования 25% процессорного времени на вывод графики. При 50% на вывод графики, Метеор обгонит денди на 75%, то есть будет выводить 88 спрайтов 16х16. Плюс большее количество цветов у Мептеора и отсуствие аппаратных ограничений на количество спрайтов на одной строке.
Теперь насчёт скорости. Назови качественную игру на спектруме, которая обновляла бы экран 25 раз в секунду. Тавкую еще попробуй найти...
В целом, Метеор позволит улучшить графику как по сравнению с видеорежимом спектрума, так и по сравнению с денди.

Nesser
05.09.2016, 08:04
Nesser, программа записывает фон в нижний слой один раз, а Метеор выводит фон каждый кадр. Понимать правильно надо и не придираться.
44 спрайта Метеор выводит в расчёте использовования 25% процессорного времени на вывод графики. При 50% на вывод графики, Метеор обгонит денди на 75%, то есть будет выводить 88 спрайтов 16х16. Плюс большее количество цветов у Мептеора и отсуствие аппаратных ограничений на количество спрайтов на одной строке.
Теперь насчёт скорости. Назови качественную игру на спектруме, которая обновляла бы экран 25 раз в секунду. Тавкую еще попробуй найти...
В целом, Метеор позволит улучшить графику как по сравнению с видеорежимом спектрума, так и по сравнению с денди.

Да я не придираюсь, я пытаюсь понять смысл использования ПЛИС при программной переброске за счёт ЦПУ.

Если денди дать частоту такую же как у Метеора, то Метеор проигрывает более чем на 9000%, это говорит о слабости концепции а точнее об её отсутствии, большее количество цветов при одновременном выводе только 4 цветов это недостаток а не преимущество, ты даже не можешь вывести спрайт в 7 основных цветах, или тебе придётся перед каждым выводимым пикселем делать дозагрузку палитры.
Я все программы и игры делал так что бы они обновлялись 50 раз в секунду, какой смысл иметь частоту вывода на монитор 50 Гц а частоту изменения графики 25 Гц, в чём прикол? в дёрганой графике? частота изменения графики должна соответствовать частоте вывода на монитор, именно по этой причине и есть жк мониторы с 75-120 Гц - из-за плавности изменения изображения.
На спектруме частота вывода не 50 Гц из-за полного отсутствия видеопроцессора, бедный z80 просто не в состоянии самостоятельно обрабатывать изображения, он как бе для этого и не разрабатывался.
В целом, Метеор это Белаз с движком от дырчика, он есть такой большой и дорогой а толку от него нет.

Повторюсь ещё раз - нелинейный DMA без всяких слоёв при частота Метеора в состоянии вывести 30 тысяч спрайтов размером 8x8 с 256 цветами ОДНОВРЕМЕННО из палитры 32768/16777216 и 50 раз в секунду, и делай из них хоть 100 слоёв хоть 200.

Аппаратная часть должна разрабатываться под программную а не наоборот, сейчас не проблема сделать эмулятор Метеора на PC, всё обкатать, посмотреть что получается и как сложно переделывать игру, что-то подправить, изменить, и только потом уже решать надо оно или не надо, не в 80-х же живём.

Totem
05.09.2016, 11:12
Прошу админов вмешасться. Давят на человека.
Какая разница сколько ЗСТ будет делать Метеор? Его право ставить сроки. И Метеор изначально предполагал коллективное участие всех желающих, а это уже длительный процесс.
Хотя, истинная причина наезда на ЗСТ - зависть некоторых приверженцев некоторой платформы. Ведь внимание уже не их платформе уделяют на форуме.

Ну приехали, люди уже "годами" ждут заказы. причем тут платформы?

zx-kit
05.09.2016, 17:20
Старые заказы постепенно отправляются. Новые заказы, если скомплектованный конструктор есть в наличии, отправляется на следующий день после поступления оплаты.

Totem
05.09.2016, 18:19
Старые заказы постепенно отправляются. Новые заказы, если скомплектованный конструктор есть в наличии, отправляется на следующий день после поступления оплаты.
Это хорошо, раз так, закрывай долги, EP3C25Q240C8N, или 16, подойдет отлично EP3C16 у меня валятся.

zx-kit
10.09.2016, 08:12
Будет использоваться FPGA EP2C5Q208. Возможно, "Метеор-1" выйдет без SDRAM с 1M быстрой статики.

В игре "Три недели в раю" изображение сначала готовится в буфере высотой 128 точек и шириной 256 точек с линейной адресацией байтов. Там накладываются фон, Вилли, индеец, поверх них столбики и предметы. Затем этот буфер копируется командами ldi по 32 команды на строку на экран с нелинейной адресацией байтов Для доработки надо сделать так: спрайты без маски (фон) будем рисовать как обычно в слое стандартной графики, а спрайты с маской (Вилли, индеец, столбики и предметы) рисовать в новом слое графики.

Так как предметы имеют свои цвета, нужно изменить концепцию наборов инструментов. Переменная tools будет содержать один байт. Если старший бит = 0, то это стандартный атрибут ZX Spectrum с выключенным битом FLASH. А если старший бит 1 - это номер набора инструментов по 4 цвета карандаша или ластика.

Таким образом, для устранения клешинга не надо будет менять 4 двухбайтных цвета. Будем использовать те же цвета (байт атрибута), что в игре. А видеокарта сама будет преобразовать в 15 битные цвета точек в своей памяти.

- - - Добавлено - - -

Хотя можно сделать отдельные переменные attr для атрибута и tools для набора инструментов. Можно загрузить несколько наборов инструментов при включении из confROM в память FPGA.

Nesser
10.09.2016, 10:44
Будет использоваться FPGA EP2C5Q208. Возможно, "Метеор-1" выйдет без SDRAM с 1M быстрой статики.

В игре "Три недели в раю" изображение сначала готовится в буфере высотой 128 точек и шириной 256 точек с линейной адресацией байтов. Там накладываются фон, Вилли, индеец, поверх них столбики и предметы. Затем этот буфер копируется командами ldi по 32 команды на строку на экран с нелинейной адресацией байтов Для доработки надо сделать так: спрайты без маски (фон) будем рисовать как обычно в слое стандартной графики, а спрайты с маской (Вилли, индеец, столбики и предметы) рисовать в новом слое графики.

Так как предметы имеют свои цвета, нужно изменить концепцию наборов инструментов. Переменная tools будет содержать один байт. Если старший бит = 0, то это стандартный атрибут ZX Spectrum с выключенным битом FLASH. А если старший бит 1 - это номер набора инструментов по 4 цвета карандаша или ластика.

Таким образом, для устранения клешинга не надо будет менять 4 двухбайтных цвета. Будем использовать те же цвета (байт атрибута), что в игре. А видеокарта сама будет преобразовать в 15 битные цвета точек в своей памяти.

- - - Добавлено - - -

Хотя можно сделать отдельные переменные attr для атрибута и tools для набора инструментов. Можно загрузить несколько наборов инструментов при включении из confROM в память FPGA.

Так и непонятно каким образом выводить дополнительную графику на ПРОГРАММНОМ уровне, судя по тому что вся работа с графикой производится в некоем буфере то для этого придётся из игры вырезать всё что касается графики и написать заново, в том числе и сами спрайты, а так же переписать заново алгоритм расчёта спрайтов.

32 ldi на строку при 128 строках это как минимум 65536 тактов только для вывода буфера, с учётом что во фрейме всего 70000 тактов, а буфер то кто формировать будет? на это ещё 3-4 фрейма уйдёт? логика, музыка, звуки ?
До сих пор ничего не понятно каким образом всё это будет делаться.

Итог: я бы постеснялся делать игру с 3-10 фпс.

s_kosorev
10.09.2016, 12:53
Nesser, создавай тему с еще одной видеокартой

Nesser
11.09.2016, 10:12
Стадия разработки должна пройти через стадию обсуждения, а работа ведётся с платформой которая держится на энтузиазме, на данный момент есть масса непонятностей по поводу технической реализации, выходной результат работы этого устройства не вписывается в рамки минимальностей, при этом аппаратные затраты поражают своим глобализмом а узконаправленность устройства убивает его на корню.
Что толку плодить темы с видеокартами если НЕТ никаких запросов, непонятно сколько человек взялись бы мусолить старые игры не важно на какой видеокарте.

PC изначально был на таком же 8 битном проце и как и спек, теперь этот проц большой и толстый а ему помогают СБИС в которые запихнули всю рассыпуху, так что, 8 ядерный PC уже не PC ? PC, да ещё какой, вот только видеоданные он не пересылает, а Z80 при 3,5 МГц заставляют пересылать видеоданные при помощи LDI/LDIR (0,218 МГц), а зачем же тогда ПЛИС которая в 1000 раз быстрее? тупо пиксели на монитор выводить и ждать пока Z80 перекинет видеоданные? ляпота да и только.

s_kosorev
11.09.2016, 18:22
Я уже озвучивал нное число раз, в плис всунуть какой нить ядро попроще но с поддержкой, avr msp430 как кандидаты, к нему прикрутить DMA хитросделанные, какие то буферы, внутриплисовые, механизмы аля блоков текстурирования, которые эти самые блоки аналогично блитеру в кадровый буфер смогут рендерить, все относительно просто как таковое вообще без архитектуры, мож любой движок в карту вставлять хоть 3д

Nesser
11.09.2016, 21:46
Да не, это слишком, достаточно хотя бы экран с 8/16 бит на точку и аппаратную переброску блоков.

s_kosorev
11.09.2016, 23:02
Ну а чем забить хотя бы 5тыс LE

Nesser
12.09.2016, 17:08
Ууууууу валом чего.
Я бы к примеру не против купить плисину на переходной платке DIP-40 которую втыкаешь вместо Z80.
Нормально сделанный мультиплексор команд, такты соответствующие реальному действию, тот же LDIR не 21 такт на байт, а 2 такта - считал-записал, дополнительные команды MUL и DIV, команды блочной работы.
Тот же AY-3-8910....его уже не производят, а в плисину прекрасно влезет весь TSFM вместе со всем AY.
Забить есть чем :)

Только не надо говорить что возьми готовые процы и всё такое....нет, хочется именно подобная система, только на чуть чуть более современном уровне, тем более ингредиенты (Z80, AY, ВГ...) уже давно не производят.

ALS
12.09.2016, 18:53
... но в том-то все и дело, что народ маньячит именно по старым, "не производимым более", железякам.
На али или ебей их еще валом, цены на многое - вполне подъемные.
Самолично угробил кучу времени, чтобы запустить настоящий железный AY 89 года выпуска и послушать на нем все то, что без всяких затруднения можно послушать и на любом ПК-шном проигрывателе :)

Hacker VBI
12.09.2016, 19:02
больше тем о видеокартах богу видеокарт! ;)

s_kosorev
12.09.2016, 20:10
Я бы к примеру не против купить плисину на переходной платке DIP-40 которую втыкаешь вместо Z80.
дурость, однозначно, оно не влезет между ног а плата сбоку от переходника, всем не угодить

от же LDIR не 21 такт на байт, а 2 такта - считал-записал, дополнительные команды MUL и DIV, команды блочной работы
и нафик? оно по шине ограничено все, 3,5/3 потолок, 2 такта никак, минимум 6 + выборка 7 итого 13, профит никакой, div/mul это может и внешняя железка, запись в порты в любом случае быстрее чем программно, блочные команды это DMA

- - - Добавлено - - -


больше тем о видеокартах богу видеокарт!
вот и я думаю, каждый имеет право на тему с видокартой

Smalovsky
12.09.2016, 20:13
Вби, а у тэсэлыча блиттер-то не настоящий!
Смотрел программирование блиттера для Direct? Блиттер не оперирует адресами, а геометрическими областями поверхностей.

s_kosorev
12.09.2016, 20:58
а геометрическими областями поверхностей
плохо смотрел directx аpi на то оно и api что бы скрывать нюансы железа

NEO SPECTRUMAN
12.09.2016, 23:20
вот и я думаю, каждый имеет право на тему с видокартой
+100500


которую втыкаешь вместо Z80

дурость, однозначно, оно не влезет между ног а плата сбоку от переходника, всем не угодить
недопц-шные Ау-ки можно подключить через "пол метровый" шлейф

а такое нельзя проделать с процом?
или частоты уже не те?

я в курсе что это идиотизм тапками не кидать!!!

Nesser
13.09.2016, 16:57
Не ну можно конечно сделать zx-spectrum+ на 150 корпусах и видеокарту на 200 корпусах, в принципе классно получится.
Плисину на dip-40 СТАВЯТ, и стоит она там по диагонали, а не так давно кристалл плисины ставили прям в корпуса dip-40 и dip-48 (на заказ).

LDIR прекрасно делается за 2 такта на байт, плюс первых 2 такта на выборку самой команды.
Блочный команды это не DMA, LDIR это DMA а блочные команды это всякие or, and, xor, rotate для блока данных, компрессия и всё такое.

Короче, надо делать Метеор и посмотреть как на него игры будут переделывать :)

s_kosorev
13.09.2016, 22:12
LDIR прекрасно делается за 2 такта на байт
ну да, если видео отключать при этом, очень в тему про видеокарту

Nesser
14.09.2016, 16:28
ну да, если видео отключать при этом, очень в тему про видеокарту

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

s_kosorev
14.09.2016, 21:56
Конечно в тему про видеокарту, нам же предлагают видеоданные перекидывать при помощи LDIR, это же не я сказал, 1 байт в 21 такт, супер.
Давай еще раз. Спектрум расчитан на частоту доступа к памяти максимум 3,5/3такта, железные ограничения, циклы памяти, паралельная работа видеогенератора. Итд, то есть ldir минимум это 3+3 выборка 3+3 пересылка одного байта, то биш 12 тактов.

Далее, тут пропихивали идею про блиттер, блиттер это куто но это тормоз, 20 летней давности технология.
Процеессор пока рисует сцену, должен ждать блиттер, опрашивая статус или висеть в wait, в крайнем случае прерывание, но это все бесполезно тратит время проца.

Есть альтернатива, аля дисплей лист, но если его делать аппаратно, это опять же какие то нелепые ограничения с кучей расходов ресурсов плис.
Отсюда вывод в видяхе должен быть свой процессор, который может по данным от z80 (организованных как удобно ему) строить сцену, хочется гоночный движок, не вопрос, хочется изометрическую игрушку или сроллер, все можно сделать практически не напрягая z80, но просто блиттер + проц в видяхе, это не даст максимум выжать, нужны внутренние блоки памяти и аппаратные механизмы для растеризации этих блоков в кадровый буфер. Все это упрощает программу для Z80 и можно максимум из железа выбить.

- - - Добавлено - - -

даже вопрос о умножениях/делениях можно снять с Z80

- - - Добавлено - - -

Это можно назвать метеором, а не текущие унылые фантазии

Lethargeek
14.09.2016, 22:15
Далее, тут пропихивали идею про блиттер, блиттер это куто но это тормоз, 20 летней давности технология.
"тормоз" по сравнению с чем? с шейдерными монстрами из миллиардов транзисторов?
блиттер просто сделать и просто программировать, это главное


Процеессор пока рисует сцену, должен ждать блиттер, опрашивая статус или висеть в wait, в крайнем случае прерывание, но это все бесполезно тратит время проца.

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

s_kosorev
14.09.2016, 22:45
тупо очередь (даже не законченных команд, а отдельных записей в регистры)
каких команд? их реализация в железе потянет на сожность процессора простого, не проще сразу процессор вставить? И нафик нужен блиттер который просто куски копирует, а я может свет хочу, туман там итд.
Даже в 2d графике можно много ресурсоемких вещей найти

"тормоз" по сравнению с чем? с шейдерными монстрами из миллиардов транзисторов?
тормоз по сравнению с тем что можно сделать, зачем ограничивать себя?

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

- - - Добавлено - - -

Банальный пример,
нужно нарисовать заник с водичкой там туманом, ну 2-3 слоя.
Спрайты и передний план тоже полупрозрачый.

пусть 16 бит память, работаем исключительно пакетами и потерь 0), возьмем кусок 32х32 пикселя.
1. Выводим задник, 1024 цикла
2. Выводим полупрозрачную водичку, 1024 чтение + 1024 запись результата
3. Выводим туман, 1024 + 1024
4. Выводим спрайт, пусть занимает половину 512
5. Выводим полупрозраный передный план 1024+1024

итого 7.5к тактов, + на чтение патернов спрайтов итд, пусть разные 4.5к тактов итого 12 к тактов

теперь если мы обрабатываем эту всю историю в внутренем буфере в 1к байт
4.5к чтение патернов + 1024 запись итого 5.5к профит в раза.

Далее, если патерн повторяющийся к примеру 16х16, профит с буфером еще больше, а если тума и водичка еще и генерятся процом в видяхе ... (хотя тут может быть выгоднее прочитать)

Lethargeek
15.09.2016, 02:41
каких команд?
переброски блока, каких еще-то?


их реализация в железе потянет на сожность процессора простого, не проще сразу процессор вставить?
проще начинать с малого (и такое-то никак не могут асилить)


И нафик нужен блиттер который просто куски копирует, а я может свет хочу, туман там итд.
так затем и нужен, чтобы можно было потом добавить новых возможностей
для них та же база будет нужна - счётчики, блоки чтения и записи, интерфейс


тормоз по сравнению с тем что можно сделать, зачем ограничивать себя?
поконкретнее - по сравнению с тем, что можно сделать с миллиардом транзисторов и вагонищем свободного времени?


а можно и не висеть а заниматься чем то полезным а более быстрый проц у которого скажем регистровый файл подключен на прямую к блиттеру делает это быстрее
какой нафиг "более быстрый проц подключенный к блиттеру напрямую"? девайс нужен подключаемый в системный разъём!

насчёт скорости - всё упрётся в ПСП в конечном итоге, а чтобы проц компа не ждал, так и очереди хватит самой тупой
притом очередь почти уже дисплейлист, если в озу девайса запоминать, не хватает только управления указателем

Nesser
15.09.2016, 19:53
С туманами это проще взять GeForce 210, а нам пока хватит обычной переброски блоков, вставлять в ПЛИС процессор а зачем тогда нужен Z80 ? можно тогда всё на том проце сделать.
Небольшая очередь приёма данных решает проблемы задержки, для ПЛИС в этом нет никаких проблем, там более никто не запрещает включить IM 1 и на какое нибудь прерывание повесить освобождение видео для приёма данных.

"Давай еще раз. Спектрум расчитан на частоту доступа к памяти максимум 3,5/3такта, железные ограничения, циклы памяти, паралельная работа видеогенератора. Итд, то есть ldir минимум это 3+3 выборка 3+3 пересылка одного байта, то биш 12 тактов."

Как это? пересылка одного байта в мультиплексоре команд занимает 2 технических такта системы при 8 битной шине данных, видеопамять подключена к видео плис, как там у неё работает регенерация видеопамяти проблемы именно этой плис.

s_kosorev
15.09.2016, 21:05
как там у неё работает регенерация видеопамяти проблемы именно этой плис.
речь шла о z80 на Fpga в панельке, так что проблема регенерации и доступа шины в полный рост, а если нужен быстрый Z80 и побоку на гнилое барахло с антресоли, так вообще не понятен вопрос
тут на форуме куча плат есть и конфигуации к ним, берите nextZ80 на opencores подходящую плату и вперед

blackmirror
15.09.2016, 22:44
Вот оказывается чего уже существует и даже продаётся:
http://excamera.com/sphinx/gameduino/


video output is 400x300 pixels in 512 colors

all color processed internally at 15-bit precision
compatible with any standard VGA monitor (800x600 @ 72Hz)
background graphics
512x512 pixel character background
256 characters, each with independent 4 color palette
pixel-smooth X-Y wraparound scroll
foreground graphics
each sprite is 16x16 pixels with per-pixel transparency
each sprite can use 256, 16 or 4 colors
four-way rotate and flip
96 sprites per scan-line, 1536 texels per line
pixel-perfect sprite collision detection

audio output is a stereo 12-bit frequency synthesizer

64 independent voices 10-8000 Hz
per-voice sine wave or white noise
sample playback channel

Небольшой процессор для всяких эффектов туда тоже встроен. В теории можно припаять проводки к jtag и перепрограммировать FPGA во что-то другое, может даже поддерживающее 3D. Единственный минус в том, что рулить этим безобразием можно только через SPI, потому что кроме него на разъёмы мало чего выведено, но возможно что добавление небольшой CPLD эту проблему позволит решить.

Nesser
16.09.2016, 00:29
Так я и говорю что всё это сейчас не проблема, оригинального zx-spectrum давно уже ни у кого нет, но некоторые почему то за него цепляются, сейчас любую шнягу можно сделать на плис, обкатать и потом просто заказать штамповку, приложив немного усилий к самой концепции zx-spectrum не так сложно вывести её хотя бы на минимальный комфортный уровень, не отходя при этом от сути открытого программирования с минимальными затратами.

Вот с этой шняги
https://www.youtube.com/watch?v=awgw1lj7KKI

Кстати этой шняге уже лет 6

zx-kit
16.09.2016, 05:56
Так я и говорю что всё это сейчас не проблема, оригинального zx-spectrum давно уже ни у кого нет, но некоторые почему то за него цепляются, сейчас любую шнягу можно сделать на плис, обкатать и потом просто заказать штамповку, приложив немного усилий к самой концепции zx-spectrum не так сложно вывести её хотя бы на минимальный комфортный уровень, не отходя при этом от сути открытого программирования с минимальными затратами.

Вот с этой шняги
https://www.youtube.com/watch?v=awgw1lj7KKI

Кстати этой шняге уже лет 6
ZX Spectrum 48K - это священный компьютер, основа всего, что есть сейчас на этом форуме. Надо возвращаться к истокам. И делать железо для его апгрейда.

Sayman
16.09.2016, 06:32
zst, 286 и 386 это тоже священные компы. пусть Интела вернутся к истокам и сделают для них апгрейды, то вот фигня, я GeForce 1060 не могу к ним подключить...

s_kosorev
17.09.2016, 23:52
Вот с этой шняги
https://www.youtube.com/watch?v=awgw1lj7KKI
это убого, вот на что ровняться надо https://www.youtube.com/watch?v=h42neZVvoMY

OrionExt
18.09.2016, 02:04
ППц у вас тут баталия. Где быстрая карта?) в Какой Пятилетки?) Я устал ждать=)

s_kosorev
18.09.2016, 08:59
Отсутствие терпения это исключительно твоя проблема.

ZX_NOVOSIB
18.09.2016, 10:12
Где быстрая карта?) в Какой Пятилетки?) Я устал ждать=)
Чтобы карта получилась быстрой, делать её нужно медленно! ) Чем медленнее делается карта, тем более быстрой она в итоге получится.

ZX SPECTRUM тоже не быстро делался. Прежде чем он увидел свет в 82 году, его двадцать лет разрабатывали в тайных лабораториях Скотланд-Ярда!

Nesser
18.09.2016, 11:03
Так а что там с Метеором? может быть всё и НЕплохо с ним? может достаточно исключить программную работу и перевести всё на аппаратную?

zx-kit
18.09.2016, 17:07
Так а что там с Метеором? может быть всё и НЕплохо с ним? может достаточно исключить программную работу и перевести всё на аппаратную?

В старых играх расположение байтов в спрайте может быть каким угодно. Там трудно сделать аппаратное копирование. Придется программно.
Кроме этого для доработки старых игр надо спрашивать разрешение издательства. Я спросил у одного - разрешение не дали.

Аппаратно можно только для новых игр делать. Для этого надо выбрать расположение байтов в спрайте. Чтобы сделать аппаратное копирование надо дублировать в видеокарте основную память 48К. Тогда придется уменьшить количество слоев с 7 до 8.

Давайте для новых игр делать. Тогда тема про устранение клешинга в старых играх теряет смысл.

- - - Добавлено - - -

Еще нужна программа для рисования спрайтов в формате 2 бита на точку.

s_kosorev
18.09.2016, 17:13
Тогда тема про устранение клешинга в старых играх теряет смысл.
Аминь!

zx-kit
18.09.2016, 17:40
Можно конечно по два байта на точку, но размер игры увеличится в 8 раз.
Придется спрайты загружать в память видеокарты. 128 К * 8 = 1 М.
Тогда у нас половина статики уйдет на спрайты. Останется 4 слоя.
С SDRAM пока возиться не охота.
Если 4 слоя будет мало - тогда спрайты будем хранить в SDRAM.

- - - Добавлено - - -

Ранее предлагали хранить несколько спрайтов на одной картинке и в памяти хранить так, чтобы можно было легко переходить к точке справа и к точке снизу. Оба байта цвета точки будут располагаться в одном слове SRAM. Надо выбрать ширину картинки со спрайтами, чтобы видеокарта знала смещение к точке снизу. Размер 2 в степени n, то есть 256, 512 и т.д.

ZX_NOVOSIB
18.09.2016, 17:45
Кроме этого для доработки старых игр надо спрашивать разрешение издательства. Я спросил у одного - разрешение не дали. Не надо спрашивать разрешения. Это бесперспективно, это как спрашивать у девушки разрешение на поцелуй )) Это во-первых. А во-вторых "Всякому, спрашивающему разрешения, нужно непременно отказывать. Нельзя доверять сомневающемуся. Сомневающийся слаб." (с)

zx-kit
18.09.2016, 18:20
Наверно лучше 256 как ширина экрана.

- - - Добавлено - - -


Не надо спрашивать разрешения.
Нельзя дорабатывать чужое произведение искусства без разрешения автора. Нельзя выкладывать видео без разрешения автора. Нельзя ...

- - - Добавлено - - -

В оригинальном ZX Spectrum и ZX Spectrum+ ПЗУ можно отключать. И обеспечить загрузку и чтение из видеокарты. Но к компьютеру может быть подключена плата типа divIDE, divMMC, Interface 1 bis и т.п. Они могут мешать, так как подключают вместо основного ПЗУ свое ПЗУ и ОЗУ. Как быть ?
Так бы можно было через окно вместо ПЗУ расширить память компьютеров с 48К.

- - - Добавлено - - -

Может разработать свою плату для загрузки вместо вышеуказанных? При этом 8 К выделить для расширения памяти, а 8 К на адресацию регистров видеокарты.

- - - Добавлено - - -

Или если старые игры мы не переделываем, то для адресации регистров Метеора занять адреса старого экрана с 4000.

- - - Добавлено - - -

Если нужно будет перемещать начало блока регистров можно будет использовать адрес порта с A0=0. Например, 0111 1110. Видеокарта проанализирует 8 младших битов адреса. И если это ее адрес, она сформирует сигнал IORQGE для блокировки порта 1111 1110 в ULA.

- - - Добавлено - - -

Для загрузки спрайтов в видеокарту использовать устройство USB-RECORDER или FAST PC LOADER. Загрузку начинать как стандартный TAP, а затем переходить на FAST скорость. Адрес порта выбрать аналогичный, например, 1011 1110. Тогда можно будет использовать загрузку блоками по 256 байтов с помощью команды INIR. 1М тогда будет грузиться быстро.

s_kosorev
19.09.2016, 13:35
Жесть, магнитофон и производные забыть как страшный сон

Lopital
19.09.2016, 14:20
[/QUOTE]
Для загрузки спрайтов в видеокарту использовать устройство USB-RECORDER или FAST PC LOADER. Загрузку начинать как стандартный TAP, а затем переходить на FAST скорость. Адрес порта выбрать аналогичный, например, 1011 1110. Тогда можно будет использовать загрузку блоками по 256 байтов с помощью команды INIR. 1М тогда будет грузиться быстро.[/QUOTE]

Лично мне было бы удобно работать с образом графики подключаемым к устройству A/B/C/D через TR-DOS и запихивать в карту данные по необходимости через порт или область DMА, которую видит видео-карта.
С другой стороны из области фантазий касательно загрузок… Предположим есть образ игры/программы (TRD/FDI и др), а также образ файла(ы) расширенной графики (условно ZGX). Оба файла хранятся в одной и той же директории на устройстве (HDD). Игра/программа загружаются как обычно средствами TR_DOS после подключения образа, а вот ZGX файл(ы) графики загружается параллельно самой картой. Разумеется, для такой автоматизации нужен стандарт/формат ZGX файла, который карта сможет понимать. Карта должна видеть подключаемый образ на HDD и его рут и соответственно подгружает при нахождении там ZGX файл(ы).

Nesser
20.09.2016, 00:01
Вон неужели разумность пошла, что надо комплексно всё делать :)
Просто сделать видеокарту ничего не даст, надо всю систему под неё подкатывать, при этом оставив саму оригинальность, то есть работа с экраном и с TR-DOS и с Basic, ну естесно малость доделанные :)
В TR-DOS же работают каналы # ? можно же по каналу загрузить? хотя есть и есть то там ограничение 16 бит на адрес, надо мудрить что-то.

п.с. https://www.youtube.com/watch?v=GvBlba9i8EI

Sayman
20.09.2016, 07:30
Оба файла хранятся в одной и той же директории на устройстве (HDD). Игра/программа загружаются как обычно средствами TR_DOS после подключения образа, а вот ZGX файл(ы) графики загружается параллельно самой картой.
отсыпте мне тоже вашей травки, чтоли?! иметь винт и грузить образ трд в трдос. это надо иметь ооочень извращённую фантазию)))
не проще ли сразу работать через апи того, что с винтом работает (тот же вилд командер или что там ещё есть)... блин, ну изврат.

Nesser
20.09.2016, 10:20
отсыпте мне тоже вашей травки, чтоли?! иметь винт и грузить образ трд в трдос. это надо иметь ооочень извращённую фантазию)))
не проще ли сразу работать через апи того, что с винтом работает (тот же вилд командер или что там ещё есть)... блин, ну изврат.

Образ же всё равно в секторах на HDD лежит, read/write работает и на 1 файле :)

Sayman
20.09.2016, 10:30
Nesser, вот объясни мне, есть рабочее апи под винт. можно файло (не трд) грузить прям мегабайтами прям с винта. раскладывать файлики по папочками и из них аккуратно всё подгружать. для чего извращения с образами трд и трдосом, если есть винт? а ещё большим извратом, заставлять видеокарту читать файл с винта. т.е. карта должна иметь какое то представление об ФС, кластерах, секторах (в том числе, фрагментированность файла). потому, делитесь травкой, я тоже хочу прИхода такого, мегаизвратного)))

Lopital
20.09.2016, 13:23
Дело не в траве... хотя понимаю вашу реакцию... "Не грози Южному централу, попивая сок у себя в квартале..." :) много иллюзий насчет API/// Если закрыв Wild Commander, вы бы в операционной системе оказались, которая какой-то командой файлы графики подгружала, тогда "матрац скурил".. НО работа с файлами на большинстве платформ реализуется через образы. Смысл в том, что без дополнительных примочек для Пентево/EVo народ скорее всего будет работать именно через TR_DOS (мое мнение) и даже на других ZX-совместимых. Ну или просто кто-то взял и решил вдруг прошить EVO какой-то другой платформой (то же Scorpion например)... Именно в этом случае Backdoor нужен в виде обычных образов с загрузкой данных через порты карты... А так ессно можно и на более высоком уровне загонять в карту (дело в конкретной реализации и в том, с чем вы работаете в данный момент /сжатый файл для запуска и исполнения кода, который ничего не знает про вилд коммандер и завершение работы будет через резет или это временный образ для работы и потом будет запуск ТРДОС с последующей работой в образе и/или отскок в Wild Commander///. без "Лукавого" - тот же Wild Commander работает с образами в каких-то случаях (он же не является операционной системой), не используя прямой запуск программ сжатых ... Можно и Sprinter еще вспомнить... да хоть PC... там одних образов Alcohol, Power ISO обвешаться ... Образ диска - это контейнер, а операционная система все равно работает с устройством{пусть и виртуальным}.. )... Да и потом... к Wild Commander надо будет плагин свой "стряпать", чтобы он знал что с файлами графики делать и как в память карты грузить, а в противном случае в каждой проге надо будет лепить модуль, который конфиг компа обрабатывает и держит в себе процедуры работы с HDD, принимая решение по графике. Короче, ТР-ДОС + порты как базовый вариант наверное бы устроил многих, а потом при наличии энтузиазма и времени можно что угодно "кнопить" в асме...

Nesser
20.09.2016, 16:23
Образ ТРД если только для защищённого диска годится, для обычного диска достаточно иметь просто папку с названием диска, тр-дос имеет доступ только к этой папке, размер папки до 80 или до 256 дорожек. Все старые проги прекрасно будут работать по такой системе и запись будет нормально отрабатываться.

Я не говорил что видюха должна читать файлы :) я говорил что должна быть интегрированная в ТР-ДОС опция по передачи данных в ВИДЕОПАМЯТЬ, а что там будет происходить после, уже проблема видеопроца.

Sayman
20.09.2016, 16:49
тр-дос имеет доступ только к этой папке, размер папки до 80 или до 256 дорожек
понятно. ты трдос никогда в руках не держал. трдос не знает про винты и другие девайсы. он знает только про дисководы и дискеты и только в своём формате. никаких 80 или 256 дорожек в папке на винте нет и быть не может. почитай про винты и файловые системы (тот же фат16 или фат32). вопросы отпадут сами собой.
и ещё не понял прикола про переделку трдоса под видеокарту...

Totem
20.09.2016, 20:12
Дело не в траве... хотя понимаю вашу реакцию... "Не грози Южному централу, попивая сок у себя в квартале..." :) много иллюзий насчет API/// Если закрыв Wild Commander, вы бы в операционной системе оказались, которая какой-то командой файлы графики подгружала, тогда "матрац скурил".. НО работа с файлами на большинстве платформ реализуется через образы. Смысл в том, что без дополнительных примочек для Пентево/EVo народ скорее всего будет работать именно через TR_DOS (мое мнение) и даже на других ZX-совместимых. Ну или просто кто-то взял и решил вдруг прошить EVO какой-то другой платформой (то же Scorpion например)... Именно в этом случае Backdoor нужен в виде обычных образов с загрузкой данных через порты карты... А так ессно можно и на более высоком уровне загонять в карту (дело в конкретной реализации и в том, с чем вы работаете в данный момент /сжатый файл для запуска и исполнения кода, который ничего не знает про вилд коммандер и завершение работы будет через резет или это временный образ для работы и потом будет запуск ТРДОС с последующей работой в образе и/или отскок в Wild Commander///. без "Лукавого" - тот же Wild Commander работает с образами в каких-то случаях (он же не является операционной системой), не используя прямой запуск программ сжатых ... Можно и Sprinter еще вспомнить... да хоть PC... там одних образов Alcohol, Power ISO обвешаться ... Образ диска - это контейнер, а операционная система все равно работает с устройством{пусть и виртуальным}.. )... Да и потом... к Wild Commander надо будет плагин свой "стряпать", чтобы он знал что с файлами графики делать и как в память карты грузить, а в противном случае в каждой проге надо будет лепить модуль, который конфиг компа обрабатывает и держит в себе процедуры работы с HDD, принимая решение по графике. Короче, ТР-ДОС + порты как базовый вариант наверное бы устроил многих, а потом при наличии энтузиазма и времени можно что угодно "кнопить" в асме...

Тут действтельно не в траве.../сарказмо/

s_kosorev
20.09.2016, 20:17
Что зацепились за какой то никому не ведомый трд, нужно нормальные образы юзать vhd к примеру

- - - Добавлено - - -

либы с api можно с C# портировать

Nesser
20.09.2016, 20:50
понятно. ты трдос никогда в руках не держал. трдос не знает про винты и другие девайсы. он знает только про дисководы и дискеты и только в своём формате. никаких 80 или 256 дорожек в папке на винте нет и быть не может. почитай про винты и файловые системы (тот же фат16 или фат32). вопросы отпадут сами собой.
и ещё не понял прикола про переделку трдоса под видеокарту...

Как не держал, а как же демки с параллельной загрузкой, папки на диске тырдос и таблица секторов :)

Я говорю что тырдос надо ДОДЕЛАТЬ для загрузки в видеопамять, что бы можно было ту же картинку с бОльшими цветами или с бОльшим разрешением сразу просматривать на экране.

При чём тут что знает винт а что не знает, он и про FAT ничего не знает, файл всё равно загружается через пзу тырдоса.

- - - Добавлено - - -


Тут действтельно не в траве.../сарказмо/

Всё правильно он говорит, работа с HDD, Card Reader и всякой шнягой должна быть прописана в пзу, в тырдос уже походу не влезет, надо что-то думать, кидаешь запрос на загрузку и само должно грузить, при чём максимум не 64кБ а как минимум до 16мБ (по 24 бита адрес и длина).

Totem
20.09.2016, 22:51
Что зацепились за какой то никому не ведомый трд, нужно нормальные образы юзать vhd к примеру

- - - Добавлено - - -

либы с api можно с C# портировать
А что не opengl и d3d ?
подойдет и dircetdraw

- - - Добавлено - - -


Как не держал, а как же демки с параллельной загрузкой, папки на диске тырдос и таблица секторов :)

Я говорю что тырдос надо ДОДЕЛАТЬ для загрузки в видеопамять, что бы можно было ту же картинку с бОльшими цветами или с бОльшим разрешением сразу просматривать на экране.

При чём тут что знает винт а что не знает, он и про FAT ничего не знает, файл всё равно загружается через пзу тырдоса.

- - - Добавлено - - -



Всё правильно он говорит, работа с HDD, Card Reader и всякой шнягой должна быть прописана в пзу, в тырдос уже походу не влезет, надо что-то думать, кидаешь запрос на загрузку и само должно грузить, при чём максимум не 64кБ а как минимум до 16мБ (по 24 бита адрес и длина).
Поясните дураку, зачем мне смотреть на статическую картинку, пусть и красивую, которую проц в турбе 7Mгц , в еве 14 с вайтом, будет грузить долго долго? окно все одно 16К, куда не ткни в ZX.
Когда я ковырял еz80, а там действительно 16M и 24 бита, хоть и конвеер, но шина 8 бит и 50МГц, быстро понял, что это все "мертвому прививки", ближе к реалиям, есть TS-conf , есть Sprinter, есть }{Иmеру от "Чиорного Котэ", есть зачаток хорошей идеи от Mick'a, есть, ZX-Poly, обобщая- есть 16k в ROM0/RAM0, пояснить?

Nesser
20.09.2016, 23:11
Почему долго? если даже программно грузить то всё равно за 2-3 секунды загрузит, а если при помощи dma которое в системном ПЛИС будет лежать то за 0,01 секунды.
А при чём здесь память CPU, я так понял у видеокарты своя память.
Или в LOAD "" SCREEN$ уже отпала необходимость?

Totem
21.09.2016, 00:34
Почему долго? если даже программно грузить то всё равно за 2-3 секунды загрузит, а если при помощи dma которое в системном ПЛИС будет лежать то за 0,01 секунды.
А при чём здесь память CPU, я так понял у видеокарты своя память.
Или в LOAD "" SCREEN$ уже отпала необходимость?
серьезно? будем читать из порта в порт с дма? сколько конкретно в килобайтах? а не программно это как?
вот не укладывается, зачем столько наворотов ZX? Spinter своя конфа, TS своя, но у TS есть "аудитория" и это +, вам нужна карта, которая будет я так понимаю везде, где есть зачаток ZX/NEMO BUS ?
оставьте людям всю архитектуру ZX, TR-DOS, в большинстве клонов, ROM0 отключаема, эта область, редко где используется, усложнять зачем? 16-256С + блиттер, посмотрите на SamCope

Sayman
21.09.2016, 07:49
либы с api можно с C# портировать

тырдос надо ДОДЕЛАТЬ для загрузки в видеопамять, что бы можно было ту же картинку с бОльшими цветами или с бОльшим разрешением сразу просматривать на экране.

он и про FAT ничего не знает, файл всё равно загружается через пзу тырдоса

само должно грузить, при чём максимум не 64кБ а как минимум до 16мБ (по 24 бита адрес и длина).
WHAT???
58282
серьёзна? трдос грузит с винта? фат32 в трдосе? ахаха)))))))
или там на винте должен быть raw или что?

s_kosorev
21.09.2016, 08:20
Вы как маленькие, какой opengl для рабы с образами. А c# в качестве источника апи это я понял что у спектрума избыток производительности и его нужно эффективно израсходовать

- - - Добавлено - - -

Вообще нужно wifi юзать для загруки, а на стороне сервера всеравно, хоть в ведрах храните инфу.

Totem
21.09.2016, 08:29
Вы как маленькие, какой opengl для рабы с образами. А c# в качестве источника апи это я понял что у спектрума избыток производительности и его нужно эффективно израсходовать

- - - Добавлено - - -

Вообще нужно wifi юзать для загруки, а на стороне сервера всеравно, хоть в ведрах храните инфу.

это сарказм про OpenGL, про "шарапова" думаю тоже

Nesser
21.09.2016, 09:18
серьезно? будем читать из порта в порт с дма? сколько конкретно в килобайтах? а не программно это как?
вот не укладывается, зачем столько наворотов ZX? Spinter своя конфа, TS своя, но у TS есть "аудитория" и это +, вам нужна карта, которая будет я так понимаю везде, где есть зачаток ZX/NEMO BUS ?
оставьте людям всю архитектуру ZX, TR-DOS, в большинстве клонов, ROM0 отключаема, эта область, редко где используется, усложнять зачем? 16-256С + блиттер, посмотрите на SamCope

"будем читать из порта в порт с дма? сколько конкретно в килобайтах? а не программно это как?" - не понял прикола

Я и говорю что достаточно 16-256С, ты чем читаешь? :)

Totem
21.09.2016, 17:05
Ладно проехали, само "ядро" на какой частоте работать будет?

zx-kit
21.09.2016, 18:53
Ладно проехали, само "ядро" на какой частоте работать будет?

SRAM и SDRAM будут работать на частоте 14 * 7 = 98 MHz. Ядро тоже.

На счет размера игры - 640 К должно быть достаточно.

creator
21.09.2016, 19:31
Дежавю. :rolleyes:

Totem
21.09.2016, 20:13
SRAM и SDRAM будут работать на частоте 14 * 7 = 98 MHz. Ядро тоже.

На счет размера игры - 640 К должно быть достаточно.
как планируется взаимодействие с картой? порт , выделенная область памяти? видео выход VGA?
SRAM на 98? оригинально и какая память выбрана?
циклоп 2 как основа?

- - - Добавлено - - -


Дежавю. :rolleyes:

ато!

zx-kit
21.09.2016, 22:55
как планируется взаимодействие с картой? порт , выделенная область памяти? видео выход VGA?
SRAM на 98? оригинально и какая память выбрана?
циклоп 2 как основа?

Взаимодействие планируется через набор из 256 регистров управления и 256 адресов для загрузки по 256 байтов командой LDIR или INIR.
Расположение в области ПЗУ с адресов:
3A00 — 3AFF (0011 1010 XXXX XXXX) — блок регистров видеокарты.
3B00 — 3BFF (0011 1011 XXXX XXXX) — окно для загрузки данных в видеокарту командой LDIR.

Для перемещения этого окна размером 512 байтов в другую область использовать порт 7EH. В него надо записать старший адрес начала области.

Видеовыход: VGA 50 Hz (скандаблер) или RGB SCART.
FPGA EP2C5Q208.
SRAM 256K х 16 bit 10ns 4 шт., шина данных 16 битов. Суммарный объем 2 MB.
SDRAM 16M x 16 bit 1 шт., шина данных 16 битов. Суммарный объем 32 MB.

- - - Добавлено - - -

Подробнее можно почитать в 1 посте.

Totem
22.09.2016, 01:08
Взаимодействие планируется через набор из 256 регистров управления и 256 адресов для загрузки по 256 байтов командой LDIR или INIR.
Расположение в области ПЗУ с адресов:
3A00 — 3AFF (0011 1010 XXXX XXXX) — блок регистров видеокарты.
3B00 — 3BFF (0011 1011 XXXX XXXX) — окно для загрузки данных в видеокарту командой LDIR.

Для перемещения этого окна размером 512 байтов в другую область использовать порт 7EH. В него надо записать старший адрес начала области.

Видеовыход: VGA 50 Hz (скандаблер) или RGB SCART.
FPGA EP2C5Q208.
SRAM 256K х 16 bit 10ns 4 шт., шина данных 16 битов. Суммарный объем 2 MB.
SDRAM 16M x 16 bit 1 шт., шина данных 16 битов. Суммарный объем 32 MB.

- - - Добавлено - - -

Подробнее можно почитать в 1 посте.
Вы понимаете, что пытаетесь сделать карту для массового сегмента владельцев ZX? заявленное железо, это минимум уровень 1200 амиги, и по ттх и по цене, абсолютно не оправдано для
Z80 и ZX?

Nesser
24.09.2016, 10:31
Музыку от частоты кадров надо отвязывать, 50 Гц справедливо только для мультиколора, в данном случае при цветах на каждую точку синхронизированный мультиколор уже не нужен, помимо 50 Гц должны быть и стандартные кадровки VGA 50-75 Гц.
И вообще, по моему какое то слайд-шоу получится, хотя я до сих пор и не понял как мне старую игру переделывать якобы БЕЗ ПЕРЕДЕЛКИ.

Hacker VBI
24.09.2016, 12:39
Nesser, отвяжешь музыку от ~50 гц - будет играть быстрее/медленнее относительно того что задумывал автор :)
и это не связано с мультиколорами ВООБЩЕ

так что привязывайте обратно

Nesser
25.09.2016, 19:21
Nesser, отвяжешь музыку от ~50 гц - будет играть быстрее/медленнее относительно того что задумывал автор :)
и это не связано с мультиколорами ВООБЩЕ

так что привязывайте обратно

В смысле не музыку от 50 Гц отвязать а кадровку видео :)
А под музыка вообще бы не 50 Гц а 200 Гц, в проткрекере в 4 раза чаще можно выборки делать, звук явно красивее будет :)

Hacker VBI
26.09.2016, 10:46
ну мы и 800 делали :)
Но там уже подход другой к написанию нужен, изучать надо.
Но уже в 100, 200 гц - интереснее звук

Nesser
26.09.2016, 18:45
Вот и приходим к выводу что надо всё в комплексе дорабатывать.

zx-kit
26.09.2016, 19:26
ну мы и 800 делали :)
Но там уже подход другой к написанию нужен, изучать надо.
Но уже в 100, 200 гц - интереснее звук

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

- - - Добавлено - - -


Музыку от частоты кадров надо отвязывать, 50 Гц справедливо только для мультиколора, в данном случае при цветах на каждую точку синхронизированный мультиколор уже не нужен, помимо 50 Гц должны быть и стандартные кадровки VGA 50-75 Гц.
К сожалению у оригинального ZX Spectruma (48K) нет выхода 14 MHz на краевой разъем. А у ZX Spectrum 128K вообще 14 MHz нет. Поэтому не получится сделать выход 50 Hz. Только 60 HZ 640х480 или FULL HD. Хотя может можно 50 Hz, но будет не точное совпадение с частотой кадров ZX Spectrum.


И вообще, по моему какое то слайд-шоу получится, хотя я до сих пор и не понял как мне старую игру переделывать якобы БЕЗ ПЕРЕДЕЛКИ.
Скорость игры не меняется. Если она была слайд-шоу, то она такой и останется. Причем здесь Метеор ?

Спрайт ГГ надо выдить в новый слой графики. Нужно 2 новых слоя минимум, так как в играх часто на переднем плане изображают траву, столбики и другие предметы, которые закрывают ГГ.

DIZZY переделывать не будем. Есть много других интересных игр.

Nesser
26.09.2016, 23:12
По IM1 через шину данных, или через стандартный int но кто именно сработал через C-регистр уже смотреть.

Smalovsky
27.09.2016, 00:01
DIZZY переделывать не будем. Есть много других интересных игр.
Я согласен.

JV-Soft
27.09.2016, 04:53
К сожалению у оригинального ZX Spectruma (48K) нет выхода 14 MHz на краевой разъем. А у ZX Spectrum 128K вообще 14 MHz нет. Поэтому не получится сделать выход 50 Hz. Только 60 HZ 640х480 или FULL HD. Хотя может можно 50 Hz, но будет не точное совпадение с частотой кадров ZX Spectrum.


Новые игры, музыка демо это отлично, вот у меня 512 пентагон, 128 пентагон, харьков 128, в процессе поднятия еще несколько машин.
И мониторами (современными) я не пользуюсь вообще, нет той динамики динамики ни в демо, ни в играх которые работают в одно прерывание. Только элт передает
то прекрасное изображение и мелкую точку к которым многие привыкли с давних времен. Эта карта подключаема например к scart ? Совместима с старым софтом ?

zx-kit
27.09.2016, 05:48
Новые игры, музыка демо это отлично, вот у меня 512 пентагон, 128 пентагон, харьков 128, в процессе поднятия еще несколько машин.
И мониторами (современными) я не пользуюсь вообще, нет той динамики динамики ни в демо, ни в играх которые работают в одно прерывание. Только элт передает
то прекрасное изображение и мелкую точку к которым многие привыкли с давних времен. Эта карта подключаема например к scart ? Совместима с старым софтом ?

А как сделать универсально - разъем же один ?
Если вывести разъем VGA, а для SCART переходник из проводов из VGA в SCART как в Speccy2010 ? Тип выхода выбирать джамперами.
Надо сделать, чтобы Метеор был совместим с оригинальными играми. Для этого развертка внутри Метеора должна быть синхронизирована с разверткой ZX Spectrum-а с помощью сигнала INT. Тогда останутся на месте эффекты медленной памяти и порта FF.

Пентагоны не полностью совместимы с играми. Можно попытаться туда добавить порт FF. Для имитации медленной памяти потребуется отрезать тактовый сигнал Z80 от схемы и подавать новый с Метеора. Но в Пентагоне ОЗУ работает синхронно с тактовым сигналом Z80. Все сдвинется. Придется отключать полностью ОЗУ в Пентагоне и имитировать ОЗУ 128К в Метеоре.

Нужна ли такая совместимость с играми? Пусть Пентагон остается как есть.

Для игр на модульном компьютере можно добавить медленную память, правильную развертку 50 Hz и порт FF, а для дем - развертку 48 Hz, как в Пентагоне.
Для игр на Пентагоне можно добавить только порт FF и кадровую 50 Hz.
Для игр на Фениксе можно добавить правильную развертку 50 Hz, а для дем - развертку 48 Hz, как в Пентагоне.
Для игр на ZX Spectrum 128 можно добавить правильную развертку 50 Hz и порт FF, а для дем - развертку 48 Hz, как в Пентагоне.
Для ZX Spectrum (48K) ничего нельзя добавить. Демы с Пентагона не пойдут из-за медленной памяти. И памяти всего 48К и нет дисковода.

HardWareMan
27.09.2016, 09:10
А как сделать универсально - разъем же один ?
Если вывести разъем VGA, а для SCART переходник из проводов из VGA в SCART как в Speccy2010 ? Тип выхода выбирать джамперами.
У VGA есть пин. Вроде №9. (http://pinouts.ru/Video/VGA15.shtml) У всех SVGA+ моников (от CRT до LCD), которые я видел, он заземлен, что дает детект устройства. ЕМНИП, этот пин остался от троицы, что во времена EGA делала ID дисплея, а в VGA+ используется только 2 для шины I2C. Заюзать его для определения моник/кабель SCART и всего делов.

Nesser
27.09.2016, 12:50
Диззи надо не только переделать но и продолжить серию.

JV-Soft
27.09.2016, 17:40
А как сделать универсально - разъем же один ?
Если вывести разъем VGA, а для SCART переходник из проводов из VGA в SCART как в Speccy2010 ? Тип выхода выбирать джамперами.
Надо сделать, чтобы Метеор был совместим с оригинальными играми. Для этого развертка внутри Метеора должна быть синхронизирована с разверткой ZX Spectrum-а с помощью сигнала INT. Тогда останутся на месте эффекты медленной памяти и порта FF.

Пентагоны не полностью совместимы с играми. Можно попытаться туда добавить порт FF. Для имитации медленной памяти потребуется отрезать тактовый сигнал Z80 от схемы и подавать новый с Метеора. Но в Пентагоне ОЗУ работает синхронно с тактовым сигналом Z80. Все сдвинется. Придется отключать полностью ОЗУ в Пентагоне и имитировать ОЗУ 128К в Метеоре.

Нужна ли такая совместимость с играми? Пусть Пентагон остается как есть.

Для игр на модульном компьютере можно добавить медленную память, правильную развертку 50 Hz и порт FF, а для дем - развертку 48 Hz, как в Пентагоне.
Для игр на Пентагоне можно добавить только порт FF и кадровую 50 Hz.
Для игр на Фениксе можно добавить правильную развертку 50 Hz, а для дем - развертку 48 Hz, как в Пентагоне.
Для игр на ZX Spectrum 128 можно добавить правильную развертку 50 Hz и порт FF, а для дем - развертку 48 Hz, как в Пентагоне.
Для ZX Spectrum (48K) ничего нельзя добавить. Демы с Пентагона не пойдут из-за медленной памяти. И памяти всего 48К и нет дисковода.

Под пентагон уже практически все старые игры пофиксили. Если какая то пара тройка игр у меня не пойдет у меня есть Харьков 128 он практически аналог фирменного спека по организации медленной памяти и прерываниям.
Какой то железный огород неимоверный получается, не думали реальный опрос сделать сколько людей хотят эту карту ? Эва поддерживает и цвет на точку и т.д. но софт, что то никто не пишет,не говоря уже о переделке игр (может я не в курсе, сколько игр переделали под красивый экран пантевы ?), если не секрет, к вам уже обращались за программными параметрами карты те, кто готов массово переделывать игры под нее ?

Это не критика, это на мой субъективный взгляд реалии, которые не в коей мере не говорят о том, что делать ее не надо. Спек это творчество.

zx-kit
28.09.2016, 05:47
Какой то железный огород неимоверный получается, не думали реальный опрос сделать сколько людей хотят эту карту ? Эва поддерживает и цвет на точку и т.д. но софт, что то никто не пишет,не говоря уже о переделке игр (может я не в курсе, сколько игр переделали под красивый экран пантевы ?), если не секрет, к вам уже обращались за программными параметрами карты те, кто готов массово переделывать игры под нее ?

Это не критика, это на мой субъективный взгляд реалии, которые не в коей мере не говорят о том, что делать ее не надо. Спек это творчество.
Видеокарта возможно будет работать на нескольких типах компьютеров, даже на Пентагоне и Ленинграде.
Параметры карты указаны в 1 посте. Обращений с предложением массово переделывать игры не поступало.

- - - Добавлено - - -


Диззи надо не только переделать но и продолжить серию.
Предложите Oliver Twins (https://en.wikipedia.org/wiki/Oliver_Twins) переделать или написать продолжение Dizzy.

JV-Soft
28.09.2016, 11:03
Видеокарта возможно будет работать на нескольких типах компьютеров, даже на Пентагоне и Ленинграде.
Параметры карты указаны в 1 посте.
Долго читал, более менее понял, но пока нет конкретной информации, номера регистров, что за что отвечает,как заполняется адресное пространство через окно в 256 байт, без этого не понять сколько времени уйдет на расчеты адресов и программирование регистров, но уже понятно что уйдет много, спрайты спрайтами, прикинул real-time рисуем допустим вращающийся кубик линиями, для того что бы процедуру рисования линии сделать через регистры и окно в 256 байт уйдет всё прерывание на пересчеты, а не на рисование. Учитывая раньше нам на 8 точек надо было 1 байт в экран кидать (а не через регистры и окно пересылать), а теперь надо 2 байта, уже исходя из этого можем успеть сделать только половину от прошлого, а добавить к этому программирование регистров и расчет адресов для окна, что же у нас останется...
А у вас нет примера на асме ?

zx-kit
29.09.2016, 05:50
Долго читал, более менее понял, но пока нет конкретной информации, номера регистров, что за что отвечает,как заполняется адресное пространство через окно в 256 байт, без этого не понять сколько времени уйдет на расчеты адресов и программирование регистров, но уже понятно что уйдет много, спрайты спрайтами, прикинул real-time рисуем допустим вращающийся кубик линиями, для того что бы процедуру рисования линии сделать через регистры и окно в 256 байт уйдет всё прерывание на пересчеты, а не на рисование. Учитывая раньше нам на 8 точек надо было 1 байт в экран кидать (а не через регистры и окно пересылать), а теперь надо 2 байта, уже исходя из этого можем успеть сделать только половину от прошлого, а добавить к этому программирование регистров и расчет адресов для окна, что же у нас останется...
А у вас нет примера на асме ?

Вращающийся кубик как в ELITE надо рисовать так:

1. Вычислить координату очередной точки.
2. Записать координату в видеокарту.
3. Записать два байта для рисования одной точки для 3х цветов + прозрачный.
и т.д.

Вращающийся кубик в трех цветах надо рисовать так:

1. Вычислить адрес спрайта в основном ОЗУ ZX Spectrum.
2. Настроить адреса для пересылки.
3. Записать спрайт в Метеор командой LDIR.
и т.д.

Hacker VBI
29.09.2016, 11:30
для трёх цветов ясно.
а если четыре?