Вход

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



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

JV-Soft
29.09.2016, 15:45
1. Вычислить координату очередной точки.
2. Записать координату в видеокарту.
3. Записать два байта для рисования одной точки для 3х цветов + прозрачный.
и т.д.

Мне представляется иначе, я или я не понял принцип, если бы с конкретными цифрами, было бы понятнее, адреса экранов номера назначение регистров, если ошибаюсь поправьте -
1. Вычислить адрес точки, в памяти и слое видеокарты
2. Вычислить адрес отправляемых двух байт относительно окна 256 байт в памяти карты (или это через регистры задается)
3. Отправить эти два байта, и при этом как понимаю надо дергать какие то регистры карты.
и так по кругу

Я просто хочу прикинуть на асме, что можно успеть нарисовать за прерывание, но без более конкретной информации увы невозможно.

zx-kit
29.09.2016, 16:27
1. Вычислить координату очередной точки для ELITE-графики:
Сложные математические вычисления (много тактов)

2. Записать координаты точки в видеокарту:
ld (xl), hl - записать координату X (16 тактов)
ld (yl), de - записать координату Y (20 тактов

3. Записать два байта для рисования одной точки:
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl - рисование точки (16 тактов)

JV-Soft
29.09.2016, 17:14
zst, Вообще запутали:v2_dizzy_facepalm:

2. Записать координаты точки в видеокарту:
ld (xl), hl - записать координату X (16 тактов)
ld (yl), de - записать координату Y (20 тактов
На прямую мы ведь не может адресовать весь экран ,xl и yl это адреса в области 256 байт или в карте ? Вы же говорите данные передаются через окно 256 байт, как вычисляется адрес для xl и yl через окно 3B00 — 3BFF в 256 байт ? Как идет работа с окном ? :dizzy_mad_old:

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

PS если оставить разрешение до 256 точек можно обойтись половинками регистров, что очень ускорит и расчеты и передачу данных.

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


Для перемещения этого окна размером 512 байтов в другую область использовать порт 7EH
Или область 3B00 — 3BFF фиксирована, а подставляется через регистр #7E нужная область, так ?

zx-kit
29.09.2016, 17:30
zst, Вообще запутали:v2_dizzy_facepalm:

На прямую мы ведь не может адресовать весь экран ,xl и yl это адреса в области 256 байт или в карте ? Вы же говорите данные передаются через окно 256 байт, как вычисляется адрес для xl и yl через окно 3B00 — 3BFF в 256 байт ? Как идет работа с окном ? :dizzy_mad_old:

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

PS если оставить разрешение до 256 точек можно обойтись половинками регистров, что очень ускорит и расчеты и передачу данных.

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


Или область 3B00 — 3BFF фиксирована, а подставляется через регистр #7E нужная область, так ?
В этот регистр вместо 3A будем записывать другие числа, чтобы переместить в другую область.
meteor_data - адрес начала области данных для записи спрайтов.
Забудьте про адреса на экране - будем использовать координаты.
Метеор по координатам сам будет вычислять адреса в своей памяти и сам рисовать.

xl = 3A00
meteor_data = 3B00

JV-Soft
29.09.2016, 17:47
Забудьте про адреса на экране - будем использовать координаты.
По координатам точек ? а зачем тогда за координатой каждой точки засылать каждый раз два байта цвета ?
В общем думал, что понял принцип, но понял, что не понял.
Поэтому и прошу конкретный полный пример.

Вот возьмем

LD hl,#4000
LD a,#80
ld (hl),a

Это у нас в спековском экране поставит точку с координатами 0,0 (верхний левый угол)

Можете не упрощнно, а на асме дать пример для вашей карты который сделает тоже самое. Выведет одну точку в 0,0

zx-kit
29.09.2016, 17:51
По координатам точек ? а зачем тогда за координатой каждой точки засылать каждый раз два байта цвета ?
В общем думал, что понял принцип, но понял, что не понял.
Поэтому и прошу конкретный полный пример.

Вот возьмем

LD hl,#4000
LD a,#80
ld (hl),a

Это у нас в спековском экране поставит точку с координатами 0,0 (верхний левый угол)

Можете не упрощнно, а на асме дать пример для вашей карты который сделает тоже самое. Выведет одну точку в 0,0

Два байта - это байт данных и байт маски, с помощью которых у нас будет рисоваться одна точка, а остальные 7 точек справа будут прозрачные и не закрасят слой.
Команды Метеора оптимизированы под спрайты, а не точки.
Рисовать будем не в стандартном экране, а выше, в новом слое графики.
В стандартном будем рисовать как раньше.

1 точка:
ld hl,0
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl

2 точка:
ld hl,1
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl

JV-Soft
29.09.2016, 18:17
zst, Уже понятнее , а каковы в таком случае значения xl, yl, meteor_data
И для чего тогда окно 256 байт и 256 адресаций регистров ?

zx-kit
29.09.2016, 18:27
zst, Уже понятнее , а каковы в таком случае значения xl, yl, meteor_data
И для чего тогда окно 256 байт и 256 адресаций регистров ?

Это адреса 256 регистров:
xl equ #3A00
xh equ xl + 1
yl equ xh +1
yh equ yl + 1
...
Это адреса окна 256 данных:
meteor_data equ #3B00 или equ xl + 256
...
Можно писать по любому из 256 адресов. Можно писать по одному адресу. Можно настроить ldir на первый адрес и писать блоками по 256 байтов.

Hacker VBI
29.09.2016, 18:28
zst, а если
ld hl,0
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl

ld hl,xl
ld b,0
ld a,b
1: ld (hl),a
inc a
djnz 1

линия из 256 точек получится?

zx-kit
29.09.2016, 18:33
zst, а если

ld hl,xl
ld b,0
ld a,b
1: ld (hl),a
inc a
djnz 1

линия из 256 точек получится?

Нет, после inc a надо добавить:
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl

JV-Soft
29.09.2016, 18:35
ld hl,0
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl
Итого 10+16+10+20+10+16 = 82 такта точка без расчетов ! Ого го я бы сказал, добавить математику и музыку и что же это, пара линий по 100 точек и все демо...

Lethargeek
29.09.2016, 20:30
как человек, когда-то патчивший графику "элиты", не могу промолчать :)

1. Вычислить координату очередной точки для ELITE-графики:
Сложные математические вычисления (много тактов)

2. Записать координаты точки в видеокарту:
ld (xl), hl - записать координату X (16 тактов)
ld (yl), de - записать координату Y (20 тактов

3. Записать два байта для рисования одной точки:
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl - рисование точки (16 тактов)
во-1, кадр в "элите" рисуется не на экране, а в буфере (и потом чересстрочно перебрасывается в экран)
во-2, никто в здравом уме не будет рисовать отрезки по координатам следующего пикселя
вычисляют сразу соседний адрес (байтовая маска на Спеке - как бы часть адреса)
именно ради ускорения и упрощения вычислений

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


Два байта - это байт данных и байт маски, с помощью которых у нас будет рисоваться одна точка, а остальные 7 точек справа будут прозрачные и не закрасят слой.
Команды Метеора оптимизированы под спрайты, а не точки.
Рисовать будем не в стандартном экране, а выше, в новом слое графики.
В стандартном будем рисовать как раньше.

1 точка:
ld hl,0
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl

2 точка:
ld hl,1
ld (xl), hl - записать координату X (16 тактов)
ld de,0
ld (yl), de - записать координату Y (20 тактов)
ld hl, 1000000000000000b - данные для рисования одной точки (10 тактов)
ld (meteor_data), hl
:v2_scare: жуть кошмарная для "быстрой видеокарты" (c)

а вот как эти же два пикселя можно вывести на стандартном медленном Спектруме:
ld hl,$4000
set 7,(hl)
set 6,(hl)
40 тактов!!

самая (?) же быстрая процедура (http://zxdn.narod.ru/coding/zg1etud2.txt) установки точки по произвольным новым координатам - только 58 тактов


Команды Метеора оптимизированы под спрайты, а не точки.
уж извини, но вывод спрайтов тоже запланирован неудачно :v2_dizzy_no:
неудобен ни для написания новых, ни для улучшения старых игр
и цвета урезаны неоправданно

Nesser
30.09.2016, 01:10
Так вот и я говорю, ставить гигантскую плис с быстрой памятью что бы получить ещё медленее чем было.
Почему нельзя тупо сделать переброску спрайтов с помощью дма, пусть даже и в 4-8 слоёв экрана, а с цветовой компонентой я до сих пор ничего не понял, что то типа древнего CGA 35-летней давности ?
Почему пиксель так сложно рисовать? почему нельзя выставить цвет и потом только координаты кидать?

LD A,color
LD (meteor_pix_color),A

LD H,y
LD L,x

LD (meteor_pix_coord),HL
inc l
LD (meteor_pix_coord),HL
inc l
.....

по сути пиксель ставится за 16 тактов - LD (nn),HL
а цвет уже заранее выставлен и его всегда можно поменять

с спрайтами та же байда, можно уложиться в 30-40 тактов на спрайт размером с экран
--------------------------

Кстати мысля, пиксель по LD (nn),HL можно предусмотреть в любой видеокарте, по сути достаточно только адрес порта в памяти указать а процедура вывода изображения растровой графики будет работать на любой видеокарте.

Lethargeek
30.09.2016, 01:59
почему нельзя выставить цвет и потом только координаты кидать?
и так ли уж координаты нужны, по мне лучше уж привычные адреса плюс возможность на ходу раскладки менять


по сути пиксель ставится за 16 тактов - LD (nn),HL
а цвет уже заранее выставлен и его всегда можно поменять
тогда уж за 7 тактов ld (hl),reg - и легко пропатчить старые процедуры, и новые работать быстрее будут
больше двух цветов (один прозрачный) для векторов и спрайтов в спектрумовском духе просто не нужно
для многоцветных спрайтов - блиттер или недокод на девайсе, перебивающий z80-команды в нужных местах
а также для модернизации старых игр вообще без правки старого кода (только приписать спецзагрузчик)
а три цвета - это же ни рыба ни мясо: и со старым кодом не сочетается, и картинку не особенно улучшает

JV-Soft
30.09.2016, 03:13
Имея карту с таким гигантским объемом памяти частотами и ресурсами ! Вообще лучший вариант загрузил сразу всю графику в карту, картинки, спрайты, шрифты, и прочее, а дальше команду в окне регистров карты

Nesser, Lethargeek зачем так все сложно зачем мучить одно место (моск:D) ,не надо слои, и остальной огород, например режим карта с 256X192 и 8 битным цветом на точку, это экран 48 кб для такой карты мелочь, пример для переделки игр, что скажете ?

Вся графика уже загружена в карту и мирно там лежит все время по полочкам (банкам) -
банки имеют размер 64кб этого всегда хватит даже для картинки размером в полный экран 48кб , а в поле 64кб очень удобно работать одной регистровой парой !
;---------------------------------------------------------------------;
сохранили стек
LD SP,sprite ;установили стек в массив команд карты
POP HL
LD (#3A00),HL ;регистр карты который задает в экране карты адрес начала вывода спрайта (либо если сделать два режима по адресам или точкам будет задавать по точкам 256 на 192 как раз будет старший байт координата по точкам X , младший байт Y)
POP HL
LD (#3A02),HL ;регистр карты который задает номер банка памяти (1 например) в карте в которой загружена наши графика
POP HL
LD (#3A04),HL ;регистр карты который задает где лежит спрайт в памяти карты (можно задавать банки 1,2,3 и т.д.) в карте, банк будет размером 64кб удобно!
POP HL
LD (#3A06),HL ;регистр карты который задает размер спрайта X,Y
POP HL
LD (#3A08),HL ;регистр карты который задает команду карте перекинуть спрайт из памяти карты в экран карты
восстановили стек

sprite DEFB
#0000 адрес в экране карты куда будет перекинут спрайт
#0001 номер (1) банка размером 64кб где лежит наш спрайт с которым сейчас работаем
#8000 адрес спрайта в банке 1 памяти карты
#0808 размер спрайта X,Y
#0001 1- команда перекинуть спрайт
;------------------------------------------------------------------;

Учитывая частоты карты, спрайт мгновенно на экране.
А еще более изумительный вариант, будем считать что выше написанное это кидать не в экран, а в буфер экрана карты, а потом по команде в какой то регистр подготовленный буфер перекидывается в экран,

КРАСОТА, СКОРОСТЬ, ПРОСТОТА !!! Именно для переделки старых игр, так как мы освободим память ZX и код игры в плане управления координат графики в старой игре не надо трогать, в нужном месте только поставить то, что я привел ! Сказка для переделки старых игр c новой графикой ! Надо только загрузчиком загрузить с диска новую графику в карту, в игре минимум изменений и они очень очень простые !

Что то подобное и для точек, линий. Та же элита , на этапе когда мы получили в игре код координат линии на экране X,Y , мы в коде где должна рисоваться эта линия ставим свой код типа вышеприведенного но для работы с линиями а не спрайтами, и задаем новый цвет и т.д. и вот новая раскрашенная элита !

ZST что скажите, зачем спеку с 3.5мГц экран фул шд ? Это тогда надо называть карта для статической графики. А если концепт изменению не подлежит, скажите, вам голову не будут морочить.

PS правил по мере мыслей.

zx-kit
30.09.2016, 05:20
Так вот и я говорю, ставить гигантскую плис с быстрой памятью что бы получить ещё медленее чем было.

Большая FPGA нужна чтобы влезли все регистры и схемы управления. Объем FPGA не такой уж большой. В ней всего 4602 LE, то есть 4602 однибитных триггра. Этого хватит только на 575 восьмибитных регистров. А их для управления режимами Метеора может понадобиться много. Кроме этого для работы видеокарты надо много LE.

Приведу пример Alone Coder:


по координатам,заданным
в регистрах L=y, E=x, в произвольном месте
экрана(и даже за экран)за 58(!)тактов ста-
вится точка.Регистр C равен старшему байту
адреса таблиц('TABLE), регистр D=C+2.
LD H,C
LD A,(DE);x/8 \
INC D |-даёт младший байт
OR (HL);L(y) /
INC H
LD H,(HL);H(y)
LD L,A
LD A,(DE);byte(x)
(X)OR (HL);метод постановки точки
LD (HL),A
Если вместо последних 2 команд вставить
AND (HL),то это будет функция POINT. Чтобы
процедура работала многократно, в конце её
поставьте DEC D.

В приведенном примере надо учесть длительность команды DEC D. Тогда длительность будет 58 + 4 = 62.
Так как в этом примере координаты уже загружены в регистры, то и в моем их считать не надо. Тогда 82 - 10 - 10 = 62.
Скорость такая же, но точки рисуются произвольными цветами без клешинга атрибутов.
Скорость будет зависеть от оптимизации команд. В моем примере использовались команды для рисования спрайтов.
Если мы добавим команду для рисования точками, то будет намного быстрее.



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

LD A,color
LD (meteor_pix_color),A

LD H,y
LD L,x

LD (meteor_pix_coord),HL
.....

по сути пиксель ставится за 16 тактов - LD (nn),HL
а цвет уже заранее выставлен и его всегда можно поменять

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

Только это уже скорее аппаратная точка получается. Добавил регистры:
point_x — координата X при рисовании точки. Координата однобайтная.
point_y — координата Y при рисовании точки. Координата однобайтная. После записи координаты Y точка рисуется/стирается текущим инструментом.

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


пример для переделки игр, что скажете ?

Вся графика уже загружена в карту и мирно там лежит все время по полочкам (банкам) -
банки имеют размер 64кб этого всегда хватит даже для картинки размером в полный экран 48кб , а в поле 64кб очень удобно работать одной регистровой парой !
...

Да, это будет удобно и быстро. Если банки будут по 64 К, то двумя байтами можно указать адрес начала спрайта в банке.


Учитывая частоты карты, спрайт мгновенно на экране.
А еще более изумительный вариант, будем считать что выше написанное это кидать не в экран, а в буфер экрана карты, а потом по команде в какой то регистр подготовленный буфер перекидывается в экран,

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


КРАСОТА, СКОРОСТЬ, ПРОСТОТА !!! Именно для переделки старых игр, так как мы освободим память ZX и код игры в плане управления координат графики в старой игре не надо трогать, в нужном месте только поставить то, что я привел ! Сказка для переделки старых игр c новой графикой ! Надо только загрузчиком загрузить с диска новую графику в карту, в игре минимум изменений и они очень очень простые !

Тут одна трудность - графику надо найти и скопировать. Если отдельно загружать, то увеличится размер игры. Но может это как вариант использовать.


Что то подобное и для точек, линий. Та же элита , на этапе когда мы получили в игре код координат линии на экране X,Y , мы в коде где должна рисоваться эта линия ставим свой код типа вышеприведенного но для работы с линиями а не спрайтами, и задаем новый цвет и т.д. и вот новая раскрашенная элита !

ZST что скажите, зачем спеку с 3.5мГц экран фул шд ? Это тогда надо называть карта для статической графики. А если концепт изменению не подлежит, скажите, вам голову не будут морочить.

FULL HD для точного изображение пикселов на экране. Это не так важно. Можно остановиться на VGA 640x480 60 Hz.
Разумные предложения обсуждаются и применяются. Обычно только критика и слишком сложные предложения. Надо все делать просто и удобно для программирования.

JV-Soft
30.09.2016, 05:45
Тут одна трудность - графику надо найти и скопировать. Если отдельно загружать, то увеличится размер игры. Но может это как вариант использовать.
Это на мой взгляд упрощение переделки старой игры, а не усложнение, вот смотрите есть спрайтовая игра, из нее естественно выдираются родные спрайты и раскрашиваются, далее мы эти спрайты компонуем одним файлом, и делаем простой загрузчик который грузит это все в карту перед запуском игры, нам не надо тратить огромное количество времени на впихивание этой графики в игру, да и не получится это у нас, не хватит ZX памяти на новую графику. А остаток переделки игры вставить короткие участки кода, что я приводил выше, когда игра посчитала координаты для родного спрайта мы их берем за основу и закидываем в карту , и как по мне это просто удовольствие в переделке игры а не мучение:v2_dizzy_coder:
Пример с использованием стека и одного регистра HL еще избавляет нас каждый раз запоминать все регистры, просто перед процедурой запомнили HL, запомнили адресс родного стека игры, после отправки данных в карту восстановили.

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

PS и еще в такой реализации мы разгрузим на 90% процессор !!! Ему же не надо самому заниматься перекидыванием спрайтов из памяти в экран, а карта из своей памяти в свой экран может делать это элементарно, согласны ?

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

PPS такой концепт на мой взгляд может привлечь потенциальных разработчиков/передельщиков игр своей простотой переделки и программирования

zx-kit
30.09.2016, 05:54
Может быть так будет лучше. В играх спрайты хранятся по разному. После преобразования спрайты можно привести к единому формату. Тогда понадобится одна процедура копирования спрайта в FPGA. Не обязательно даже перекрашивать спрайты. Просто перекодировать из формата 2 бита на точку в 16 битов на точку с сохранением цветов. Раз цвета у нас уже в спрайтах, то в программе их указывать не надо будет.

JV-Soft
30.09.2016, 08:58
Может быть так будет лучше. В играх спрайты хранятся по разному. После преобразования спрайты можно привести к единому формату. Тогда понадобится одна процедура копирования спрайта в FPGA. Не обязательно даже перекрашивать спрайты. Просто перекодировать из формата 2 бита на точку в 16 битов на точку с сохранением цветов. Раз цвета у нас уже в спрайтах, то в программе их указывать не надо будет.
Совершенно верно, но я бы еще предусмотрел 8 бит на точку и экран 256x192 , это надо для простоты написания новых программ, игр, демо ! для режима карты в которую мы не будем предварительно ничего загружать, а будем например real time рисовать сами, так как оперировать в этом случае с цветами 8 бит проще аккумулятором (A) , при 16 бит на точку все очень усложнится для real time
Кстати правильно ли я рассуждаю что мы фактически освободим процессор если карта будет иметь предварительно загруженную график в свою память ?

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

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

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

А если нам вообще оставить один стандарт экрана (8 бит 256x192) то аппаратно мне видится все так - память экрана одна микросхема SRAM 64кб , память графики одна, две SRAM 512кб и FPGA, естественно цена сразу минимальна, более широкий рынок покупателей и сборщиков если будет комплект для сборки.

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

Потратив на комплектующие 5$ лучше больше взять за свою работу, нежели потратить 50$ на железо и 5$ добавлять за свою работу (сборку);)

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

Ну и как всегда добавлю на всякий случай, для меня это хобби, мне с этого ничего не надо кроме удовольствия)))

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

Совсем ориентировочный концепт, мечта программиста ZX на мой взгляд.
58369

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

Это будет по истине быстрая карта, которая разгрузит практически весь процессор , что можно даже процессором будет MOD играть !
Также имея аппаратную линию и точку не только по адресации через память как и раньше в ZX экране, но еще и через X,Y эффекты с точками можно рисовать очень быстро, ведь Z80 не надо пересчитывать координату X,Y в адреса экрана.

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

На счет клешинга я бы сделал так - старая игра рисует фон нашими новыми красивыми 256 цветными спрайтами, далее к примеру на поле с травой она должна вывести спрайт героя , мы карте говорим через определенный регистр какой спрайт нарисовать сверху фон или героя , и каким методом - XOR,OR,AND , и все, без всяких слоев в памяти и прочих заморочек.

Вот пример со спрайтом сена на левой ноге по вышеописанному принципу -
58370 58371 58372

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

Естественно XOR,OR или AND делает сама карта при переброска спрайта, линии, или точки из SRAM графики в SRAM экрана, быстро и просто, а Z-80 отдыхает ну или свои дела делает )

Lethargeek
30.09.2016, 09:26
Nesser, Lethargeek зачем так все сложно зачем мучить одно место (моск) ,не надо слои, и остальной огород, например режим карта с 256X192 и 8 битным цветом на точку, это экран 48 кб для такой карты мелочь, пример для переделки игр, что скажете ?
так я сам всегда был против слоёв (но за 16-битные пиксели по ряду причин) и за чистый блиттер для рисования


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


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


Совсем ориентировочный концепт, мечта программиста ZX на мой взгляд.
не на мой) блиттер хочется уметь настраивать тоньше
и зачем память видеодевайса делить на части?

JV-Soft
30.09.2016, 09:45
и зачем память видеодевайса делить на части?
На банки по 64 кб для того что бы можно было работать одной регистровой парой для адресации я же выше писал.
А при наличии отдельной SRAM данных и SRAM экрана очень простая аппаратная реализация, и финансово такая карта будет стоить баксов 10, и память в старых играх в этом случае освободится, мы же графику теперь держим в SRAM данных карты, нам не нужны старые спрайты и процедуры их вывода на экран, код работы с спрайтом старой игре нужен до момента X,Y спрайта на экране.
Очень простая и программная и аппаратная реализация, при которой процессор совершенно свободен !

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

Альтера + 2 штуки SRAM = 15$ Но я бы даже альтеру не применял в этой карте, можно спокойно на STM (2$) +SRAM (3$) сделать

Lethargeek
30.09.2016, 09:58
На банки по 64 кб для того что бы можно было работать одной регистровой парой для адресации я же выше писал.
для этого не нужно делить на банки, задаёшь отдельно длинный начальный адрес, и работай после со смещениями короткими
и блиттер должен быть универсальным, работать с источником и приёмником, расположенными по любым адресам
и внутри экрана, и внутри графического набора, и между ними перебрасывать в обе стороны
а не затачиваться под один отдельный частный сценарий

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

про переделки вечером подробнее напишу

JV-Soft
30.09.2016, 10:10
для этого не нужно делить на банки, задаёшь отдельно длинный начальный адрес, и работай после со смещениями короткими
Пример на асме можно ?
Только не пойму зачем , имеем SRAM графики 8 банков по 64КБ, очнь удобно первый банк шрифты, второй спрайты, третий картинки, одной регистровой парой по нему бегаем без всяких смещений, я иду от сложного к простому.

blackmirror
30.09.2016, 11:10
Альтера + 2 штуки SRAM = 15$ Но я бы даже альтеру не применял в этой карте, можно спокойно на STM (2$) +SRAM (3$) сделать
Мне почему-то кажется, что для начала можно допилить какой либо эмулятор, чтобы все обращения к шине(R/W, адрес, данные) он собирал в UDP-пакеты и передавал в Ethernet на какой либо multicast-адрес. А далее можно делать программу, которая будет эти пакеты принимать, смотреть чего происходило на шине, и строить по ним картинку, которую должен выдать метеор. В этом случае можно будет сразу попробовать различные алгоритмы рисования спрайтов/точек/линий, оценить насколько это удобно для Z80, добавить/переделать какие-либо возможности, а после смотреть лезет оно в ПЛИС или нет.

chief
30.09.2016, 11:45
На мой нубский взгляд для старта можно сделать так, карта перехватывает все адресное пространство видео, формируется несколько экранов, через регистры настраивается взаимодейстивие экранов (порядок наложения и правила сложения) а дальше игра рисует в обычном видео режиме но добавляется небольшой код выбора экрана через регистр. А дальше уже расширять количество цветов, апаратные блитеры и остальные примочки для написания новых программ.

JV-Soft
30.09.2016, 12:55
карта перехватывает все адресное пространство видео, формируется несколько экранов, через регистры настраивается взаимодейстивие экранов (порядок наложения и правила сложения) а дальше игра рисует в обычном видео режиме
С аппаратной точки зрения бред.

Nesser
30.09.2016, 15:31
Ёмаё, я и говорил что слои и всё прочее это неактуально, всё должно работать АППАРАТНО.
Зачем 2 раздельные видеопамяти? сканер видео-строчек по сути готовый регенератор памяти, достаточно 1 микросхемы на 16 бит данных, 8Мб по 16 бит или что-то в этом роде (по сути 8Мб по 16 бит это уже 16 мбайт - 24 бита адреса), с ПЛИС на всякий случай можно вытащить 1,2 или 4 ноги для нескольких микросхем (дешифратор старших адресов). ПЛИС же в состоянии работать с памятью на стандартной частоте 133 МГц ?
В этой памяти прекрасно уместятся и все видеоданные и шрифты и 2 экрана. По сути к любому компу эту приблуду можно подключить при помощи 8 проводов данных и 2-3 адресов.
Сделать графический редактор специально для этой шняги, спрайтовый файл, в начале файла описатели спрайтов, 4 байта положение в файле + 1 байт ширина спрайта + 1 байт высота спрайта + 2 байта что нибудь связанное с банкой поллитры (для одинакового спрайта но разных цветов).
Кидаешь карте номер спрайта и куда вывести, по сути можно даже задавать и адрес якобы экрана, DMA кинет так как будто по этому адресу экран, всё нашвыряли, наложили, подтёрли, а потом готовое после кадрового синхроимпульса скопировали на экран, DMA всё равно перебрасывает быстрее чем сканер выводит точки, синхронизация сама собой отпадает, по сути все видеокарты так и работают.
И вообще че мы велосипед придумываем, принципы работы давно уже отработаны, достаточно реализовать в ПЛИС в минимальной необходимости, только нелинейный DMA перекидывающий данные с учётом размерности экрана.
А экран по факту сделать 8 или 16 бит на точку, преобразование из 1, 2, 4 бита на точку может сделать и сам DMA при переброске.

HardWareMan
30.09.2016, 17:24
Когда уже ваш МЕТЕОР-2013 станет МЕТЕОР-2016?

Hacker VBI
30.09.2016, 17:28
HardWareMan, в процессе становления как раз

JV-Soft
30.09.2016, 19:09
Зачем 2 раздельные видеопамяти? сканер видео-строчек по сути готовый регенератор памяти, достаточно 1 микросхемы на 16 бит данных, 8Мб по 16 бит или что-то в этом роде (по сути 8Мб по 16 бит это уже 16 мбайт - 24 бита адреса), с ПЛИС на всякий случай можно вытащить 1,2 или 4 ноги для нескольких микросхем (дешифратор старших адресов). ПЛИС же в состоянии работать с памятью на стандартной частоте 133 МГц ?
Затем, что тогда не нужны частоты по 100мгц , плис можно не использовать, а обойтись контроллером, регенерацию памяти не надо реализовывать, и еще много мелочей.
Аппаратно намного проще и быстрее построить такую карту, 3 микросхемы, и дешевле.
К чему спеку 8 или 16 мегабайт памяти, почему ни кто не пишет как ее использовать, реально без фантазий ?, вам 20 дискет надо будет прочитать с картинками что бы ее заполнить! Я считаю от реалий, диск 640кб, 512кб видеопамяти данных с головой:)

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

Пример отличного, простого и недорогого использования SRAM и контроллера это ZX-AVR, исходя из этого проекта могу сказать, что можно построить эту карту на двух SRAM и AVR;) и не нужны ни плисины ни мегабайты, с ними нечего будет делать.

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

16 байт цвета на точку тоже, к чему ? Карта должна работать на базовой конфигурации ZX 128кб , значит на телевизоре, зачем на телике 64 тысячи цветов:v2_dizzy_facepalm:

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

Я бы не уходил от таких картинок, это же наше, это 8 бит !!! - http://www.pixel-issue.net/2010/12/old-school-8-bit-color-cycling-with-html5/

zx_
30.09.2016, 19:41
да , идея с двумяSRAM и AVR мне лично импонирует
в дип корпусах
долой гигагерцы и хиколор

и еще инструмент , типа раскрасчик
или методику для тупых
чтобы я смог любимую игрушку за месяц раскрасить

ну и фишки для тру программеров , на ваше усмотрение-)

JV-Soft
30.09.2016, 19:57
zx_, раскрашивать элементарно даже в paint.net , хотя есть и поудобнее инструменты.
А переделка весьма проста, если новая графика будет загружаться в память карты, не надо километры кода в старых играх переписывать.

Lethargeek
30.09.2016, 22:45
Пример на асме можно ?
пример чего? как на Спеке в память (на которую отобразили порты) записать 3-4 байта, что ли?
да как хошь задавай начальный адрес в памяти карты, например $123456 (хоть по одному байту в любом порядке)
отдельно для источника и приёмника, потом бегай парой-смещением (например $789A - тогда полный адрес $123456+$789A=$12ACF0)
а скорее даже удобней будет бегать по старшим битам адреса спрайтов (их размеры явно будут больше чем сотня пикселей)


Только не пойму зачем , имеем SRAM графики 8 банков по 64КБ, очнь удобно первый банк шрифты, второй спрайты, третий картинки, одной регистровой парой по нему бегаем без всяких смещений, я иду от сложного к простому.
неудобно! банки это восьмибитный каменный век, подгоняй под их размеры потом, не пересекай границы, да ну их нафиг


Затем, что тогда не нужны частоты по 100мгц , плис можно не использовать, а обойтись контроллером, регенерацию памяти не надо реализовывать, и еще много мелочей.
Аппаратно намного проще и быстрее построить такую карту, 3 микросхемы, и дешевле.
К чему спеку 8 или 16 мегабайт памяти, почему ни кто не пишет как ее использовать, реально без фантазий ?, вам 20 дискет надо будет прочитать с картинками что бы ее заполнить! Я считаю от реалий, диск 640кб, 512кб видеопамяти данных с головой
Пример отличного, простого и недорогого использования SRAM и контроллера это ZX-AVR, исходя из этого проекта могу сказать, что можно построить эту карту на двух SRAM и AVR и не нужны ни плисины ни мегабайты, с ними нечего будет делать.
снова наступаем на те же грабли :v2_dizzy_facepalm:
сделать из говна и палок приблуду как удобно железячнику, а не кодеру
а потом на форумах горевать, почему ж никто софта на неё не пишет


16 байт цвета на точку тоже, к чему ? Карта должна работать на базовой конфигурации ZX 128кб , значит на телевизоре, зачем на телике 64 тысячи цветов
потому что выгодно по многим причинам (в том числе для адаптации старых игр)
и на телеке прекрасно видно столько цветов (и не 64, а 32 с признаком палитровости)


долой гигагерцы и хиколор
долой жалкую пародию на приставки тридцатилетней давности!!!
(а кому хайколор не нравится - не используйте)

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


Ёмаё, я и говорил что слои и всё прочее это неактуально, всё должно работать АППАРАТНО.
Зачем 2 раздельные видеопамяти? сканер видео-строчек по сути готовый регенератор памяти, достаточно 1 микросхемы на 16 бит данных, 8Мб по 16 бит или что-то в этом роде (по сути 8Мб по 16 бит это уже 16 мбайт - 24 бита адреса), с ПЛИС на всякий случай можно вытащить 1,2 или 4 ноги для нескольких микросхем (дешифратор старших адресов). ПЛИС же в состоянии работать с памятью на стандартной частоте 133 МГц ?
В этой памяти прекрасно уместятся и все видеоданные и шрифты и 2 экрана. По сути к любому компу эту приблуду можно подключить при помощи 8 проводов данных и 2-3 адресов.
Сделать графический редактор специально для этой шняги, спрайтовый файл, в начале файла описатели спрайтов, 4 байта положение в файле + 1 байт ширина спрайта + 1 байт высота спрайта + 2 байта что нибудь связанное с банкой поллитры (для одинакового спрайта но разных цветов).
Кидаешь карте номер спрайта и куда вывести, по сути можно даже задавать и адрес якобы экрана, DMA кинет так как будто по этому адресу экран, всё нашвыряли, наложили, подтёрли, а потом готовое после кадрового синхроимпульса скопировали на экран, DMA всё равно перебрасывает быстрее чем сканер выводит точки, синхронизация сама собой отпадает, по сути все видеокарты так и работают.
И вообще че мы велосипед придумываем, принципы работы давно уже отработаны, достаточно реализовать в ПЛИС в минимальной необходимости, только нелинейный DMA перекидывающий данные с учётом размерности экрана.
А экран по факту сделать 8 или 16 бит на точку, преобразование из 1, 2, 4 бита на точку может сделать и сам DMA при переброске.
+500 (аж на секунду показалось, что пост был мой) :v2_dizzy_biggrin2: :v2_cheer:

JV-Soft
30.09.2016, 23:17
неудобно! банки это восьмибитный каменный век, подгоняй под их размеры потом, не пересекай границы, да ну их нафиг
Мы не к амиге карту делаем ))) У нас 35 летнее железо из каменного века.Что тут подгонять экран 48кб.
Если это карта для ZX 128, разговор один, а если с мечтами что потом цеплять к пентагону 32мб оперативы что бы эта новая карта красиво показывала 1920x1080 то это совсем другое кино, которое уверяю никогда не случится, есть tsconf и не морочить голову с плисами и 16 мб памятью которые на zx-128 нечем заполнять.

Карта для zx 128 должна быть такой же простой как и он сам, исходная точка отправления 640кб диск, 128 RAM.
А то что вам хочется это прицепить к велосипеду дом на колесах, удобно, но не поедет...

снова наступаем на те же грабли
сделать из говна и палок приблуду как удобно железячнику, а не кодеру
а потом на форумах горевать, почему ж никто софта на неё не пишет
Конечно если нет плисины, линеек с памятью и платы как тапок то это *****)))
Программирование карты в 6 строчек кода на асме и все прерывание процессор ваш это горе для программиста ? Ну ну...

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


потому что выгодно по многим причинам (в том числе для адаптации старых игр)
и на телеке прекрасно видно столько цветов (и не 64, а 32 с признаком палитровости)
Примеры хорошо бы, я когда о чем то пишу примеры сразу конкретные даю, с 16 битами при восьми-битном аккамуле сказа работать , мечта программиста ))))

Totem
01.10.2016, 02:17
можно посмотреть на реализацию? железо безвозмездно вышлю

zx-kit
01.10.2016, 07:26
Надо сначала сделать дешевую версию "Метеор-1" для ZX-BUS. Обкатать идеи. Цена конструктора 2000-3000 руб. будет доступна большинству ?

Уменьшить количество памяти до 2 микросхем SRAM по 512К. Одну под спрайты. Вторую под 2 слоя новой графики.
Видеовыход просто RGB, но разъем VGA.

Слои остаются. Кому не надо - не используют. В каждом слое два буфера/экрана размерами 256 x 256 точек по 16 бит на точку.
В одном рисуем, другой отображаем.
Для синхронизации подаем 14 MHz с клона. С видеокарты "Метеор-1" на клон подаем INT.
С оригинального ZX придется подавать 14 MHz припайкой провода. Но для оригиналов надо будет уточнить потом. Пока будем подключать к клонам.

Предусмотреть несколько джамперов для выбора режима работы. Может будет меняться частота кадров 48/50 Hz. Потом уточним.
R-2R с платы "Метеор-1" переносим на набольшую плату с разъемом VGA для крепления на заднюю стенку компьютера в удобном месте.
Соединение плат шлейфом IDC-20.
Если потребуется вывод на монитор, то подключать внешний китайский видеоконвертер или через шлейф IDC-20 видеоконвертер "VGA Sputnik", который будет делать 60 Hz FULL HD с увеличением точек в 4 раза или VGA 640x480 60 Hz.

Размер игры ограничиваем размером диска 640К. На спрайты 512К. Остальное - код, заставка и т.п.

JV-Soft
01.10.2016, 07:55
zst, А в концепт впишется 8 бит точка ? И правильно ли я понимаю, что разделяете предложенное изменение концепта -
Было - берем графику из памяти zx и кидаем LDI через окно чем занимаемся все прерывание и ничего не успеваем.
Стало - грузим графику через окно в SRAM данных карты, даем команды через регистры, что куда рисовать и все прерывание делаем что душа желает, и имеем всю память zx под наши нужды.
На счет аппаратной точки и линии, будите реализовывать ? Если дадите более подробный концепт постараюсь помочь сделать.

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


Цена конструктора 2000-3000 руб. будет доступна большинству ?
Если родится приблизительно в описанном виде, это прекрасно !

Totem
01.10.2016, 08:55
Надо сначала сделать дешевую версию "Метеор-1" для ZX-BUS. Обкатать идеи. Цена конструктора 2000-3000 руб. будет доступна большинству ?

Уменьшить количество памяти до 2 микросхем SRAM по 512К. Одну под спрайты. Вторую под 2 слоя новой графики.
Видеовыход просто RGB, но разъем VGA.

Слои остаются. Кому не надо - не используют. В каждом слое два буфера/экрана размерами 256 x 256 точек по 16 бит на точку.
В одном рисуем, другой отображаем.
Для синхронизации подаем 14 MHz с клона. С видеокарты "Метеор-1" на клон подаем INT.
С оригинального ZX придется подавать 14 MHz припайкой провода. Но для оригиналов надо будет уточнить потом. Пока будем подключать к клонам.

Предусмотреть несколько джамперов для выбора режима работы. Может будет меняться частота кадров 48/50 Hz. Потом уточним.
R-2R с платы "Метеор-1" переносим на набольшую плату с разъемом VGA для крепления на заднюю стенку компьютера в удобном месте.
Соединение плат шлейфом IDC-20.
Если потребуется вывод на монитор, то подключать внешний китайский видеоконвертер или через шлейф IDC-20 видеоконвертер "VGA Sputnik", который будет делать 60 Hz FULL HD с увеличением точек в 4 раза или VGA 640x480 60 Hz.

Размер игры ограничиваем размером диска 640К. На спрайты 512К. Остальное - код, заставка и т.п.


zst, Вам прямое предложение еще раз, Вам выслать "железо" ?, реализуйте покажите кусок кода?

Nesser
01.10.2016, 11:08
+500 (аж на секунду показалось, что пост был мой)

Спасибо, спасибо :)
------------------------
AVR это обычный микроконтроллер, мощность его значительно меньше чем у голых CPU, эмуляция чахлого Z80 в чахлом AVR это что-то с чем то, это то что надо :D раньше так на МК-57 делали.

ПЛИС с лёгкостью работает с микросхемами памяти на частоте 133 МГц, то есть на ихней родной частоте, в основном эти микросхемы имеют объёмы 2-16 Мб, а покруче на 128 Мб, такой объём памяти обусловлен не желанием запихать аж 8-16 Мб в Спектрум а потому что эти микросхемы производятся нынче на заводах, можно конечно поставить и мешок РУ5, вот только их 15 лет как не производят, остались только на складах, и то 90% из них бракованные.

А вообще по моему, ZX-EVO сделан почти так как надо, только ПЛИСину надо отдать под систему а ПЛИСину под видео сделать на отдельной плате с нормальным DAC. Тогда и с видео проблем не будет, можно модернизировать как угодно.
Только надо саму материнку сделать нормально, может даже поставить PL-2303.

И делать "Метеор" под слот сколько влезет :)

JV-Soft
01.10.2016, 11:22
AVR это обычный микроконтроллер, мощность его значительно меньше чем у голых CPU, эмуляция чахлого Z80 в чахлом AVR это что-то с чем то, это то что надо раньше так на МК-57 делали.
Ну да ну да, зачем мы вообще этих древним хламом занимаемся... - автору респект - http://zx-pk.ru/threads/23671-avr-zx-spectrum-v2_0.html

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


ПЛИС с лёгкостью работает с микросхемами памяти на частоте 133 МГц, то есть на ихней родной частоте, в основном эти микросхемы имеют объёмы 2-16 Мб, а покруче на 128 Мб
У ZX есть ресурсы для заполнения этой памяти ? Есть полноценная операционка ? Я расписал достаточно подробно концепт карты с объяснением - почему, распишите свой так же подробно, думаю много желающих будет обсудить. Стандарт хранения данных ZX 640 кб, усё, пожизнено, потому, что гладиолус:v2_wink2:

Nesser
01.10.2016, 12:00
Ресурсы для заполнения этой памяти ЕСТЬ :) только они не реализованы и раскиданы по разным платам, какая там карта mp3 воспроизводит?

Полноценная (и не очень) операционка может быть только если система это позволяет, на данный момент весь ассортимент Спектрум-совместимых и приблуд к ним выглядит хуже чем ассортимент периферии к PC.
ХАОС ! никакого стандарта, о какой операционке тогда может идти речь? :) каждый делает под себя.
Сделать надо ОДИН стандарт, а всё старое запускать на этом стандарте с помощью дешифрации портов, PC так в своё время и сделала, результат был успешным.
Вплоть до того что сканер экрана оставить в системной ПЛИС а видеокарту априори только в слот, то есть сама материнка в состоянии выводить и стандартный экран и с разным разрешением и цветами, тупо занести разрешения, развёртки и компоненту VGA, видеоэкран получается тогда в общей линейной памяти в которой проц плавает банками 4 по 16 кб, в этой же памяти и скопированные из флеш ПЗУ барсика, доса, а всякой шняги, ПЗУ слишком медленные против ОЗУ, в данном случае задержек по скорости нет, сам Z80 напрямую завести в ПЛИС, все запросы к памяти и портам обрезать до 1 такта что бы проц собой не держал общую шину, пусть он там 21 такт разбирается внутри себя с командой но при запросе к памяти будет потрачен всего 1 такт из шины (это в принципе некоторые уже сделали - кеш). Монитор или ТВ в таком случае всегда подключается к материнке.
А на слотовой карте уже стоит ПЛИС который имеет доступ к памяти материнки в которой и данные и экран помещает и выводит сама материнка, КАРТЕ выпадает задача только обрабатывать все данные и кидать их обратно в мать откуда та уже и выводит на экран. Видео ЦАП получается всегда на материнке, его можно сделать немного подороже. Видеокарта в слот по сути из себя представляет просто плату с ПЛИС, материнка и без неё всё стандартное будет показывать, фотки и старые игры все будут работать.

Нууу как то такая мысля.

п.с. Z80 работает на 24 МГц, а кто нибудь пробовал его ускорять свыше во время внутреннего выполнения ? так же как ВГ ? я сделаю большие круглые глаза если он во время внутреннего выполнения схавает частоту ещё больше.

Totem
01.10.2016, 12:25
Ресурсы для заполнения этой памяти ЕСТЬ :) только они не реализованы и раскиданы по разным платам, какая там карта mp3 воспроизводит?

Полноценная (и не очень) операционка может быть только если система это позволяет, на данный момент весь ассортимент Спектрум-совместимых и приблуд к ним выглядит хуже чем ассортимент периферии к PC.
ХАОС ! никакого стандарта, о какой операционке тогда может идти речь? :) каждый делает под себя.
Сделать надо ОДИН стандарт, а всё старое запускать на этом стандарте с помощью дешифрации портов, PC так в своё время и сделала, результат был успешным.
Вплоть до того что сканер экрана оставить в системной ПЛИС а видеокарту априори только в слот, то есть сама материнка в состоянии выводить и стандартный экран и с разным разрешением и цветами, тупо занести разрешения, развёртки и компоненту VGA, видеоэкран получается тогда в общей линейной памяти в которой проц плавает банками 4 по 16 кб, в этой же памяти и скопированные из флеш ПЗУ барсика, доса, а всякой шняги, ПЗУ слишком медленные против ОЗУ, в данном случае задержек по скорости нет, сам Z80 напрямую завести в ПЛИС, все запросы к памяти и портам обрезать до 1 такта что бы проц собой не держал общую шину, пусть он там 21 такт разбирается внутри себя с командой но при запросе к памяти будет потрачен всего 1 такт из шины (это в принципе некоторые уже сделали - кеш). Монитор или ТВ в таком случае всегда подключается к материнке.
А на слотовой карте уже стоит ПЛИС который имеет доступ к памяти материнки в которой и данные и экран помещает и выводит сама материнка, КАРТЕ выпадает задача только обрабатывать все данные и кидать их обратно в мать откуда та уже и выводит на экран. Видео ЦАП получается всегда на материнке, его можно сделать немного подороже. Видеокарта в слот по сути из себя представляет просто плату с ПЛИС, материнка и без неё всё стандартное будет показывать, фотки и старые игры все будут работать.

Нууу как то такая мысля.

п.с. Z80 работает на 24 МГц, а кто нибудь пробовал его ускорять свыше во время внутреннего выполнения ? так же как ВГ ? я сделаю большие круглые глаза если он во время внутреннего выполнения схавает частоту ещё больше.
Вы вообще, умеете разделять свой опус? рекомендую хоть примерно ознакомиться с трудами "Чиорного Котэ" ? или музчин с TS. или просто "Карту" Mick'а посмотреть?

s_kosorev
01.10.2016, 12:32
У ZX есть ресурсы для заполнения этой памяти ?
Долго графики надергать? Тупо фонами нежатыми можно 10мб цвет на точку нагребсти

zx-kit
01.10.2016, 12:36
zst, А в концепт впишется 8 бит точка ?

8 бит на точку подразумевает дополнительно палитру. А это дополнительный режим графики надо делать. Для начала бы 15 стандартных цветов сделать. Для рисования точки другим цветом можно выбрать другой инструмент с другим цветом.


И правильно ли я понимаю, что разделяете предложенное изменение концепта -
Было - берем графику из памяти zx и кидаем LDI через окно чем занимаемся все прерывание и ничего не успеваем.
Стало - грузим графику через окно в SRAM данных карты, даем команды через регистры, что куда рисовать и все прерывание делаем что душа желает, и имеем всю память zx под наши нужды.

Да.


На счет аппаратной точки и линии, будите реализовывать ?

Да, для аппаратной точки добавил регистры в первый пост.


Если дадите более подробный концепт постараюсь помочь сделать.

Для начала попробуй найти спрайты в игре THREE WEEKS IN PARADISE и прикинуть, как их оттуда достать, преобразовать и печатать из видеокарты. Что изменить в программе. Кусок дизассемблированного текста есть в теме "игры без клешинга атрибутов для видеокарты Метеор (http://zx-pk.ru/threads/25643-igry-bez-kleshinga-atributov-dlya-quot-meteor-graphics-quot.html?p=831980&viewfull=1#post831980)". Надеюсь никто не будет против, если мы доработаем эту игру для Метеора ?

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


zst, Вам прямое предложение еще раз, Вам выслать "железо" ?, реализуйте покажите кусок кода?
Метеор-1 планирую на Циклоне 4.

s_kosorev
01.10.2016, 12:37
Память DDR2 самый оптимальный вариант, их FPGA поддерживает гораздо лучше чем не DDR.
То что их реально трудно найти меньше 64мб, не вопрос, много памяти не бывает

zx-kit
01.10.2016, 12:41
Память DDR2 самый оптимальный вариант, их FPGA поддерживает гораздо лучше чем не DDR.
То что их реально трудно найти меньше 64мб, не вопрос, много памяти не бывает
Все, осталась только SRAM 1M.

s_kosorev
01.10.2016, 12:47
Цирк, SRAM это дорогая медленная память, да еще и безумно диких размеров

zx-kit
01.10.2016, 12:49
Цирк, SRAM это дорогая медленная память, да еще и безумно диких размеров
10 ns - достаточно быстро. 100 MHz. Объем в микросхемах обычно по 512К. Для 1М надо 2 микросхемы. Зато произвольный доступ к ячейкам за 1 такт. Можно аппаратный скроллинг делать и копирование с точностью до пиксела.
Посчитали, что 512К хватит на спрайты и 512К на 2 слоя. Один для фона, один для спрайтов.

JV-Soft
01.10.2016, 12:56
Да простит меня автор темы за оффтоп.

Стандарт ZX 15625/50H , только в нем и только на телевизоре или старом мониторе спек показывает динамично эффекты в одно прерывание, ни на TFT,LCD и прочем этого получить нельзя, или полукадры складываются или линии и т.д. , все нет динамики, поэтому я и большинство людей получающих удовольствие от игр и работ на ZX от этого не уйдут, это 99,9%
Далее стандарт ввода флоп или эмуль флопа 640кб , все пишут под него, только под него и ничего кроме него, какое MP3 процессор не играет его, без вариантов, а аппаратное это уже не ZX так как это плеер прикрученный изолентой к ZX,



ХАОС ! никакого стандарта, о какой операционке тогда может идти речь? каждый делает под себя.
Сделать надо ОДИН стандарт, а всё старое запускать на этом стандарте с помощью дешифрации портов, PC так в своё время и сделала, результат был успешным.
Золотой стандарт это Pentagon-128 это навсегда, другого не будет поверьте, он бы уже родился если бы был востребован ZX обществом, кто не готов смирится милости просим на эшафот:D Лучшие доработки которые были делались всегда одной двумя микросхемами логики, это смогло прижиться, или взять немо, великолепная доработка 6 микросхем, простота, гениальность.



Полноценная (и не очень) операционка может быть только если система это позволяет, на данный момент весь ассортимент Спектрум-совместимых и приблуд к ним выглядит хуже чем ассортимент периферии к PC.
ХАОС ! никакого стандарта, о какой операционке тогда может идти речь? каждый делает под себя.
Сделать надо ОДИН стандарт, а всё старое запускать на этом стандарте с помощью дешифрации портов, PC так в своё время и сделала, результат был успешным.
Вплоть до того что сканер экрана оставить в системной ПЛИС а видеокарту априори только в слот, то есть сама материнка в состоянии выводить и стандартный экран и с разным разрешением и цветами, тупо занести разрешения, развёртки и компоненту VGA, видеоэкран получается тогда в общей линейной памяти в которой проц плавает банками 4 по 16 кб, в этой же памяти и скопированные из флеш ПЗУ барсика, доса, а всякой шняги, ПЗУ слишком медленные против ОЗУ, в данном случае задержек по скорости нет, сам Z80 напрямую завести в ПЛИС, все запросы к памяти и портам обрезать до 1 такта что бы проц собой не держал общую шину, пусть он там 21 такт разбирается внутри себя с командой но при запросе к памяти будет потрачен всего 1 такт из шины (это в принципе некоторые уже сделали - кеш). Монитор или ТВ в таком случае всегда подключается к материнке.
А на слотовой карте уже стоит ПЛИС который имеет доступ к памяти материнки в которой и данные и экран помещает и выводит сама материнка, КАРТЕ выпадает задача только обрабатывать все данные и кидать их обратно в мать откуда та уже и выводит на экран. Видео ЦАП получается всегда на материнке, его можно сделать немного подороже. Видеокарта в слот по сути из себя представляет просто плату с ПЛИС, материнка и без неё всё стандартное будет показывать, фотки и старые игры все будут работать.

Нууу как то такая мысля.

п.с. Z80 работает на 24 МГц, а кто нибудь пробовал его ускорять свыше во время внутреннего выполнения ? так же как ВГ ? я сделаю большие круглые глаза если он во время внутреннего выполнения схавает частоту ещё больше.
Вы предлагаете не доработать, а сделать совершенно новый компьютер, который мало что имеет общего с ZX, который я не подключу к телевизору по скарт и не увижу все любимое красиво, и для этого придумана эва, открытая книга со всеми исходниками, переписал плис, и новый комп, но эву я не покупаю потому, что и у нее в последней ревизии отобрали RGB 15625/50H

Теперь к теме, я описал почему карта должна быть в такой аппаратной реализации, это дает нам возможность очень просто переделывать старые игры, а концепты что я описываю идут от наработок с VMG еще в середине 90x, тогда зарождались с появлением симов идеи отдельной памяти для графики, и 20 лет назад эти идеи массово рождались из опыта вот ALEX RAIDER рассуждает об этом 1997 (спасибо Hacker VBI напомнил)http://hype.retroscene.org/blog/misc/336.html а в реализациях которые предлагаете вы на это будут уходить месяцы, да и стоить ваш набор железа будет не 2000p. Сделайте опрос, сколько людей ее купят ?

Я за творчество, идея автора хорошая, я предложил ее улучшить в разы упростив в разы и полностью разгрузив CPU, и хорошо, что автор ведет конструктивное обсуждение, я стараюсь отвечать тем же, и с радостью готов помочь. Если автор так же принимает ваши идеи и реализовавает я только за ! Больше конкретики !

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


Долго графики надергать? Тупо фонами нежатыми можно 10мб цвет на точку нагребсти
Конечно и на дискету в 640кб это все, давайте пример !

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


Для начала попробуй найти спрайты в игре THREE WEEKS IN PARADISE и прикинуть, как их оттуда достать, преобразовать и печатать из видеокарты. Что изменить в программе. Кусок дизассемблированного текста есть в теме "игры без клешинга атрибутов для видеокарты Метеор". Надеюсь никто не будет против, если мы доработаем эту игру для Метеора ?
Хорошо, я попробую, связь через ЛС.

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


Цирк, SRAM это дорогая медленная память, да еще и безумно диких размеров
Ага 3 бакса на али за 2 штуки по 512кб, как бы не разориться....

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

Размер SRAM 2 на 1 сантиметр))) Огрмная )))

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

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

s_kosorev
01.10.2016, 13:01
ожно аппаратный скроллинг делать и копирование с точностью до пиксела.
Это ты можешь рассказывать товарищам которые ARMом предлагают заменить FPGA, попиксельность вообще не зависит от типа памяти

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


Конечно и на дискету в 640кб это все, давайте пример
Какая нафик дискета, ты их живьем когда в продаже видел? SD карты наше все

Totem
01.10.2016, 13:03
10 ns - достаточно быстро. 100 MHz. Объем в микросхемах обычно по 512К. Для 1М надо 2 микросхемы. Зато произвольный доступ к ячейкам за 1 такт. Можно аппаратный скроллинг делать и копирование с точностью до пиксела.
Посчитали, что 512К хватит на спрайты и 512К на 2 слоя. Один для фона, один для спрайтов.

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

s_kosorev
01.10.2016, 13:04
Ага 3 бакса на али за 2 штуки по 512кб, как бы не разориться....
конская цена, за 2$ один чип ddr2 на 64мб

JV-Soft
01.10.2016, 13:11
Какая нафик дискета, ты их живьем когда в продаже видел? SD карты наше все
Что же пишешь да все не в тему, только ими и пользуюсь, полно, - вот 1000шт тебе хватит ? - https://www.olx.ua/obyavlenie/prodam-diskety-IDjOE8U.html#823535c782
Какие SD куда, речь карте для удобной переделки старых игр.

s_kosorev
01.10.2016, 13:14
Что же пишешь да все не в тему, только ими и пользуюсь, полно, - вот 1000шт тебе хватит ?
не, по помойкам не шляюсь


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

JV-Soft
01.10.2016, 13:14
Усе говорю только с ZST по существу, загадили тему творцу :v2_sick:

s_kosorev
01.10.2016, 13:17
загадили тему творцу
он 3 года терпит, не волнуйся за него

blackmirror
01.10.2016, 15:32
Если делать на армах, то существует модуль stm32f429 discovery (http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f429idiscovery.html), у нас он правда стоит несколько подороже 3000, но 8Мб памяти, дисплей 320x240x18 bit и микроконтроллер 180МГц на плате имеются. К сожалению свободных ног там остаётся мало, поэтому подключить к ZX-bus можно только через буферные регистры с мультиплексором(для чтения по частям) или последовательной выдачей(SPI может работать со скоростью до 45Мбит). Второй вариант возможно сделать так, что данные будут попадать в память микроконтроллера чисто аппаратно(таймеры с управлением буферными регистрами и SPI вполне справятся), не отвлекая от рисования картинки. У микроконтроллера имеется DMA2D, который может заполнять буфер каким-то фиксированным цветом, копировать из другого буфера или комбинировать данные из двух буферов с учётом прозрачности. Выходной буфер у него всегда формата (A)RGB по 2,3,4 байта на точку, а у входных дополнительно есть еще форматы когда в буфере только яркость, альфа или яркость+альфа по 1 или 2 байта на точку(4 или 8 бит на яркость/альфа). Перед наложением яркость может преобразовываться в (A)RGB через палитру на 16 или 256 цветов. То есть со спрайтами это агрегат справится ничуть не хуже плис, поскольку всё упирается в пропускную способность памяти. Подключение к дисплею на плате сделано через нормальные RGB сигналы, HSync и VSync тоже в наличии, и когда станет ясно что оно работает, можно отключить дисплей и вывести всё на монитор.
Но, еще раз повторюсь, более перспективный вариант это сделать для начала программный эмулятор, чтобы все желающие смогли поработать с метеором и высказать свои замечания/пожелания.

Smalovsky
01.10.2016, 18:46
кто не готов смирится милости просим на эшафот
Ты сначала диззи убери...
Предлагаю бан на неделю в этой теме за смайлик диззи. Договорились - диззи на видеокарте не будет .

s_kosorev
01.10.2016, 19:25
Шутка повторенная 3 раза в 3 раза смешней?

Nesser
01.10.2016, 20:20
А какой у пентагона стандарт? 7FFD ? а раскадровка вообще не в тему, у видеокарты своя раскадровка.
А 7FFD как бе загажен не только памятью, а какой ещё у него стандарт?

А по сути AY и ВГ не производятся, их надо уже в ПЛИС прятать.
Чем не устраивает SD против НГМД ? Программа всё равно не видит с чего она читается. А юзать обсыпавшиеся НГМД с которых вдруг внезапно обвалятся все исходники что-то не хочется, какой год выпуска самой МОЛОДОЙ дискеты? а сколько срок годности магнитного напыления?

Зачем пихать несколько разных чипов памяти маленького объёма если ОДИН ЧИП бОльшего объёма и быстрее и дешевле, лишних 3 ноги адреса некуда завести?
Зачем вообще 2 микросхемы для видео? всё равно надо сначала считать пиксель и обработать его (поллитру проверить или прозрачность) а потом уже или выводить его или не выводить, за 1 такт переносом из одной микры в другую ничего не получится, придётся общую частоту уменьшать что бы в задержку проверки уложиться.

1000 дискет по 640 кб сколько стоят? через сколько они посыпятся? 1000*0,64 = 640 мБ, такая флешка стоит 50 рублей и при топорной эмуляции через 50-рублёвый микроконтроллер даёт 1 мбайт/сек скорости.

JV-Soft
01.10.2016, 22:54
zst
Концепт далее -
Аппаратный спрайт по адресу в памяти экрана и по X,Y экрана
Аппаратная точка
Аппаратная линия
Разные варианты CLS
Заполнение экрана выбранным цветом
--------------
Если пойти дальше -
И сделать аппаратный Fill в выбранной области, треугольнике,круге и т.д.
Вообще стоит хорошо подумать о возможности добавления новых команд, остаются на это ресурсы ?, это даст хороший задел на будущее (при написании управляющей программы для карты, что бы из за одной команды весь код не перелапачивать)

Lethargeek
02.10.2016, 01:34
Мы не к амиге карту делаем ))) У нас 35 летнее железо из каменного века.Что тут подгонять экран 48кб.
джваюштак :v2_dizzy_facepalm: карту надо делать для СОФТА, а не для железа!


Конечно если нет плисины, линеек с памятью и платы как тапок то это *****)))
если нет понимания, что не надо характеристики девайса подгонять под завалявшиеся детальки


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


с 16 битами при восьми-битном аккамуле сказа работать , мечта программиста ))))
вот при чём тут восьмиБИТНОСТЬ аккумулятора, когда смысл его при работе с графикой - восьмиПИКСЕЛЬНОСТЬ!
в карте свой "аккумулятор" на восемь ПИКСЕЛЕЙ (неважно какой разрядности), адреса и маски берём со Спека

а тебе зачем восьмибитность пикселей-то? пикселю в аккумулятор зачем влезать? у тебя мячта спрайтики попиксельно рисовать? :D

JV-Soft
02.10.2016, 04:44
джваюштак карту надо делать для СОФТА, а не для железа!
Нет, карту мы делаем с учетом имеющихся исходных ресурсов ZX и его архитектуры - дисковод, телевизор.
Все что иначе, это не ZX-Spectrum, а другая машина, вам нужна full hd, 4k ? - разрабатывайте, мне такое не надо, автору по моему тоже. Если автору мои идеи нафиг не нужны, я естественно и продолжать настаивать не буду в отличии... Разобравшись в с помощью автора в принципе работы, я прежде чем начать писать так и спросил, а не закидываю из страницы в страницу автора дерьмом... -

ZST что скажите, зачем спеку с 3.5мГц экран фул шд ? Это тогда надо называть карта для статической графики. А если концепт изменению не подлежит, скажите, вам голову не будут морочить.


вот при чём тут восьмиБИТНОСТЬ аккумулятора, когда смысл его при работе с графикой - восьмиПИКСЕЛЬНОСТЬ!
в карте свой "аккумулятор" на восемь ПИКСЕЛЕЙ (неважно какой разрядности), адреса и маски берём со Спека

а тебе зачем восьмибитность пикселей-то? пикселю в аккумулятор зачем влезать? у тебя мячта спрайтики попиксельно рисовать?

Есть точка по адресу #0000 с цветом #00 надо поменять на #ff
-----------------------
ld de,#0000
ld hl,pix
ld a,(hl)
ld (de),a
ret
pix defb #ff
---------------------
И так
--------------------
ld a,#ff
ld hl,#0000
ld (hl),a
ret
----------------------

ld b,#ff
ld hl #0000
pix ld a,b
ld (hl),a
djnz pix
ret
----------------------------


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

zx-kit
02.10.2016, 07:16
zst
Концепт далее -
Аппаратный спрайт по адресу в памяти экрана и по X,Y экрана
Аппаратная точка

Давай пока остановимся на аппаратной точке, не все сразу.


Аппаратная линия
Разные варианты CLS
Заполнение экрана выбранным цветом
--------------
Если пойти дальше -
И сделать аппаратный Fill в выбранной области, треугольнике,круге и т.д.
Вообще стоит хорошо подумать о возможности добавления новых команд, остаются на это ресурсы ?, это даст хороший задел на будущее (при написании управляющей программы для карты, что бы из за одной команды весь код не перелапачивать)

Давайте немного изменим распределение памяти. На каждую точку по 8 бит. В слое будет 2 буфера/экрана по 256х256х1=64Кбайт. То есть один слой 128К. Всю память разделим условно на 8 слоев по 128К. Для каждого слоя своя палитра. Программист сам выбирает, сколько слоев надо для игры. Неспользуемые слои использовать для хранения спрайтов.

Посчитаем, сколько условных спрайтов размером 8х8 точек влезет в память размером 128К. 128К / 64 = 2К. Для сравнения у Денди 256 спрайтов и 256 тайлов, то есть 512. А у нас в 4 раза больше. Хватит на 4 уровня с разными спрайтами. Но у нас даже круче - мы сможем использовать сразу все. Всего 8 банков по 256 символов.Т.е. 1 банк - буквы, 2 банк - тайлы фона, 3 банк - спрайты ГГ и т.д.

Если спрайты большего размера - то использовать под спрайты больше памяти вместо слоев. Для разных игр комбинация количество слоев - объем под спрайты будет разное.

Для 8-ми битной графики надо несколько палитр. Для каждого слоя будем выбирать свою. Хранить в формате 256 байтов для R, 256 байтов для G, 256 байтов для B в трех блоках внутренней памяти FPGA.

Nesser
02.10.2016, 10:10
Столько цветов надо только для просмотра полноцветных картинок, и то, в таком случае никакая палитра не нужна, а смотреть HiColor в разрешении 256х192 это более чем смешно, в таком разрешении на экран влезет максимум 49152 цветов, всё что свыше будет незаметно для глаза из-за низкого разрешения, поэтому максимум что надо для динамической графики это 32768 цветов 5-5-5 и 1 бит прозрачность+техническая палитра.
Цвета в 24 бита при таком разрешении абсолютно бесполезны, тогда надо поднимать хотя бы до 800x600 и то это будет чисто статическая картинка.

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

Зачем такое ограничение по ёмкости памяти для спрайтов? память же линейна, счётчики сделать 24 бита [16 Мб максимум адресуемой] (32 бита для такой системы уж слишком жирно).
Указатель на параметры спрайта в памяти видео, по сути это и не спрайты а картинки, размер получается любой, вплоть до того что полноразмерная картинка (аля задний фон windows) выводится за пару команд, в памяти CPU при этом нет ничего связанного с графикой, если и всю музыку и звуки хранить в памяти АудиоCPU то 64 Кб для кода более чем за глаза, да и к примеру сделать 4 банка по 16 Кб CPU раздельно устанавливать в линейной памяти, тогда можно фигачить кода в принципе безгранично много (в прочем ничего нового в 128 Кб иначе и не сделаешь :) ).

blackmirror
02.10.2016, 11:30
Давай пока остановимся на аппаратной точке, не все сразу.
Аппаратную линию сделать тоже не очень сложно, для рисования требуется задать 4 переменные: X, Y, dX и dY, далее видеокарта вычисляет len=max(abs(dX),abs(dY)), делит dX и dY на len, и записывает точки добавляя dX и dY к X и Y. Если добавить еще один блок вычисляющий координаты точки для чтения, то у нас будет почти готовый блок текстурирования, способный рисовать даже с поворотом.
[add]
Можно обойтись даже без деления, найти минимальное 2^n>=len и просто сдвинуть dX и dY на n, чтобы перемещаться с шагом не более 1 точки. А для рисования четырёхугольника по точкам A,B,C и D, нужно начинать двигаться из точки P=A с шагом S=(B-A)/2^n, для перехода к следующей линии увеличивать P на (C-A)/2^n, и корректировать шаг S прибавляя ((D-C)/2^n-(B-A)/2^n)/2^m. Для 8 разрядных координат достаточно будет 24х битной арифметики.

Nesser
02.10.2016, 14:32
Только всё это надо подгонять для нормального управления ИЗ Z80, то есть и систему надо подгонять :)

Smalovsky
02.10.2016, 14:38
Nesser, а что две скобки )) вместо диззи лень поставить?

Lethargeek
02.10.2016, 16:22
Нет, карту мы делаем с учетом имеющихся исходных ресурсов ZX и его архитектуры - дисковод, телевизор.
какой смысл? и что за странноватый "учёт" такой? дисковода на "исходном" спектруме не было, а "исходный" телевизор - вообще аналоговый (точность цвета ограничена только шумом)


Все что иначе, это не ZX-Spectrum, а другая машина, вам нужна full hd, 4k ?
мне достаточно и подмножества возможностей "исходного телевизора", то есть 360x288 (x256) "квадратных" пикселей в хайколоре :p


Есть точка по адресу #0000 с цветом #00 надо поменять на #ff
при такой постановке вопроса лучшим "16-битным" ответом будет:
ld hl,цвет
ld (0),hl
:D


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

JV-Soft
02.10.2016, 18:36
не вижу смысла для представленных "вариантов" бесполезно-сферовакуумного кода
Из таких ответов и состоит вся эта тема, - хочу так, или не вижу смысла :) на одного делающего 1000 помошников :D - https://vk.com/video125972_164806403

ld hl,цвет
ld (0),hl
Вопрос к ZST как на данный момент вам видится 16 битная организация цвета в памяти карты ?
Имеется в виду прямая адресация в область экрана, через окно.

Lethargeek
02.10.2016, 19:21
хочу так, или не вижу смысла
лично я хочу решений таких, от которых больше реальной пользы

так, 16 бит на пиксель позволяет, кроме прочего, задавать несколько 256-цветных палитр
и потом временно работать в рамках одной палитры, изменяя только младшие биты индекса
то есть полностью имитировать "восьмибитную организацию цвета", если приспичит
а вот 8 бит не позволит имитировать "16-битную организацию цвета", хоть расшибись
это всё, что нужно знать по поводу выбора разрядности пикселя :v2_smoke:

Nesser
02.10.2016, 21:21
http://davidnaylor.org/temp/all16777216rgb-diagonal.png

256 квадратов по 65536 оттенков
16 миллионов цветов.....зачем столько? :) их всё равно отличить невозможно, максимум что надо это 32768, по 5 бит на цвет, а уже в 8 битах брать из них какие надо, по сути цветов то надо всего 30-40, остальные ихние яркости.

А вообще
https://ru.wikipedia.org/wiki/%D0%A6%D0%B2%D0%B5%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_% D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C

Человек всё равно оттенки синего видит мало, красного больше а зелёного ещё больше, то есть по сути 2 бита-синий, 3 бита-красный, 3 бита-зелёный, итого 8 бит перекрывающие все нужные цвета и оттенки.

JV-Soft
03.10.2016, 00:59
так, 16 бит на пиксель позволяет, кроме прочего, задавать несколько 256-цветных палитр
и потом временно работать в рамках одной палитры, изменяя только младшие биты индекса
то есть полностью имитировать "восьмибитную организацию цвета", если приспичит
а вот 8 бит не позволит имитировать "16-битную организацию цвета", хоть расшибись
это всё, что нужно знать по поводу выбора разрядности пикселя
Для PC да, для ZX мне 256 цветов хватит даже без палитры (а с палитрой и 16 хватит) у nes вообще по моему 14 цветов,споем опять- экран 256x192 8 бит 48кб, а 16 бит с вашим желанием 360x288 это 202 кб экран, очередной (ну неужели ни кто не читает ?) раз - у наших zx дисковод 640кб
почему ни кто не дружит с калькулятором !!! три ваши картинки и все....
Пусть автор если желает конечно делает, и потом вы радостно будите писать софт из выше приведенных РЕАЛИЙ:v2_dizzy_coder:

zx-kit
03.10.2016, 04:29
Из таких ответов и состоит вся эта тема, - хочу так, или не вижу смысла :) на одного делающего 1000 помошников :D - https://vk.com/video125972_164806403

Вопрос к ZST как на данный момент вам видится 16 битная организация цвета в памяти карты ?
Имеется в виду прямая адресация в область экрана, через окно.
Прямой адресации к экрану не будет. Для Z80 лишние вычисления адреса из координат ни к чему. Для рисования точки и спрайта достаточно указать X и Y. Видеокарта дальше работает сама. Координаты X и Y по одному байту.

Видеовыход аппаратно будет 15 бит, т.е. 32768 оттенков.
Палитра 3 х 8 битов. Младшие 3 бита аппаратно отбрасываются.
В слоях, раз мы уменьшили объем памяти, точки хранятся по 8 бит на цвет точки.
Чтобы палитра фона не зависела от палитры ГГ или меню управления в каждом слое своя палитра.

Lethargeek
03.10.2016, 09:35
Человек всё равно оттенки синего видит мало, красного больше а зелёного ещё больше, то есть по сути 2 бита-синий, 3 бита-красный, 3 бита-зелёный, итого 8 бит перекрывающие все нужные цвета и оттенки.
не согласен, мало даже трёх бит, а два на синий - и того хуже; разница в восприятии оттенков начинает сказываться даже после хайколорной битности цвета


Для PC да, для ZX мне 256 цветов хватит даже без палитры (а с палитрой и 16 хватит) у nes вообще по моему 14 цветов
у nes своя палитра на каждый тайл (первый хинт)


споем опять- экран 256x192 8 бит 48кб, а 16 бит с вашим желанием 360x288 это 202 кб экран, очередной (ну неужели ни кто не читает ?) раз - у наших zx дисковод 640кб
иииии что? у атари диск был вовсе 90кб, а цветов, однако, больше чем у Спека в 17 раз (второй хинт)


почему ни кто не дружит с калькулятором !!! три ваши картинки и все....
почему кое-кто не дружит со своей памятью и не задаётся вопросом, а как в спектрумовских 48кб играх без подзагрузок умещалось несколько десятков экранов? :v2_dizzy_facepalm:

JV-Soft
03.10.2016, 09:42
почему кое-кто не дружит со своей памятью и не задаётся вопросом, а как в спектрумовских 48кб играх без подзагрузок умещалось несколько десятков экранов?
Потому, что спрайт 128x128 в спеке весит 2 килобайта, а в вашей идее 32 килобайта:biggrin:

Lethargeek
03.10.2016, 10:30
Потому, что спрайт 128x128 в спеке
какой бред... примеры спрайтов "в спеке" величиной 128x128 в студию! :D


весит 2 килобайта, а в вашей идее 32 килобайта
ну да, 16 бит больше одного бита в 16 раз - иииии что?
в спекоиграх графика обычно занимала до 20кб
умножаем на 16, получаем только половину дискеты
даже в совершенно несжатом виде

blackmirror
03.10.2016, 10:44
zst, как я понимаю, такую команду как "нарисовать спрайт" видеокарта выполняет долго, значит однозначно нужна будет очередь команд, скорее всего из обращений к шине Z80. Если отслеживать обращения к шине, то видеокарта без проблем может строить у себя копию памяти Z80, значит для загрузки данных тормозные ldir не нужны, достаточно просто указать, что данные с таких-то адресов мы хотим загрузить в палитру или текстуру. Если для Z80 переключались страницы, то предварительно можно считать нужный блок данных командами POP, потратив всего по 5 тактов на байт, и у видеокарты снова будет корректная копия нужного нам участка памяти Z80. Если координаты спрайтов лежат в памяти Z80, то перемещение можно сделать просто записью новых координат и вызовом команды "нарисовать несколько спрайтов".
Можно пойти еще дальше, сделав списки команд и их аргументов, в списке для каждого байта указывается адрес откуда его брать, это может быть ссылка на константу(например для кода команды), ссылка на ячейку видеокарты или памяти Z80, или даже ссылка на какой либо байт из последних операций на шине Z80. Последняя возможность позволит вычисляемые аргументы просто заталкивать в стек или ячейки памяти в том порядке, как удобно программе, список всё переставит как нужно, и использовать A, HL и прямую адресацию для этого будет уже совсем не обязательно. Ну а далее видеокарте выдаётся команда выполнить список номер N, видеокарта собирает все байты команды и выполняет. Еще полезная возможность будет выполнять команду из памяти Z80, то есть где-то лежит команда со всеми аргументами, а мы видеокарте просто сообщаем её адрес, после чего можно подправить некоторые аргументы и выполнить снова.

Hacker VBI
03.10.2016, 13:54
много вы наработаете без прямого доступа к памяти.
кроме того - самое узкое место щас у вас, это бутылочное горлышко в 256 байт для "указать X и Y. Видеокарта дальше работает сама. "

Nesser
03.10.2016, 17:27
То есть, вышли на то, что нету идеи по принципу передачи параметров :)
В ZX-Evo достаточно нормальный принцип передачи параметров? (я сам ещё на нём не :v2_dizzy_coder: )
А что вообще передавать то надо? :)

zx-kit
28.10.2016, 07:21
Память только статика 4 микросхемы SRAM: 4 * 512K = 2М можно распределить так:
Слои экрана: 4 слоя по 2 блока по 256 * 256 точек по 2 байта = 1 M
Спрайты: 512 K
Буферы для вывода на VGA: 2 буфера VGA размерами по 320 * 240 точек по 2 байта = 300 K округляем до 512 К

Nesser
25.11.2016, 11:22
Переброска аппаратная ? :)

s_kosorev
25.11.2016, 21:50
Слабый вброс

zx-kit
28.11.2016, 22:37
Работаю потихоньку. Был в "отпуске". Надо было доделать ремонт в квартире. Через месяц ожидается рождение третьего ребенка.
Извините за задержку. Спаянные платы будут отправляться на этой неделе.

Приобрел лицензионную программу sPlan 7.0 - надеюсь процесс разработок немного ускорится.
Метеор, наверно будет все-таки для шины ZST-BUS на Upgrading Board для компьютеров ZX Spectrum и Ленинград.
При желании плату расширения можно будет подключить также и к Фениксу, Каю и Скорпиону.
Подключаться будет шлейфом IDC-40 в панельку вместо Z80 на плате компьютера. А Z80 переставляется в панельку на Upgrading Board.
К сожалению, совместимость с шиной NEMO-BUS может пострадать, так как в слоты расширения можно будет подключать не только 5V устройства, но и 3V3. Часть сигналов в разъеме уйдет на эту дополнительную шину данных. Сигналы шины адреса и шины управления с Z80 будут усилены с помощью буферов 74LVC245.
...


Новости сайта:
161128 По просьбам покупателей изготовлена партия печатных плат LENINGRAD-2010 (http://www.zxkit.ru/katalog-1/zxkit-018).
Записано несколько видеоуроков для освоения программы sPlan 7.0.

https://www.youtube.com/watch?v=iwI6HiKSejg

161116 Начато распространение лицензионных копий программ (http://www.zxkit.ru/7-programmy) Sprint-Layout 6.0 и Splan 7.0.
160929 Добавлена возможность оплаты через PayPal.
Подробности на сайте http://www.zxkit.ru

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


Переброска аппаратная ? :)

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

zx-kit
19.12.2016, 21:10
VIDEODAC переделан. Вместо сборок по 270 Ом 5% будут резисторы по 536 и 270 Ом 1%.
Аналоговые сигналы RGB будут подаваться на разъем IDC-16M. Цоколевака еще не придумана.
Разъем VGA будет устанавливаться на корпус компьютера и соединяться с платой Метеора шлейфом IDC-16.



http://www.youtube.com

zx-kit
05.01.2017, 07:19
Надо доделать бюджетный вариант "METEOR-1":

Шина: ZX-BUS / NEMO-BUS
FPGA: Циклон 4
RAM: 2 x SRAM 256K x 16bit = 1 Mбайт
VIDEO_OUT: VGA FULL HD 1920x1080, масштабирование экрана Спектрума в 4 раза
VIDEO_DAC: R-2R на резисторах 0603 1% по 5 бит на цвет.
EXT_CONNECTOR: IDC-16, 7 линий с FPGA и питание +5V.
Подключение разъема VGA: на заднюю стенку корпуса через шлейф IDC-10.

Расход памяти 1М:
512 Kбайт - два слоя графики по два экрана размером по 256 x 256 точек по 15 бит на точку.
300 Кбайт - два буфера VGA размером 320 х 240 точек по 15 бит на точку.
32 Кбайт - копии двух экранов Спектрума 128К.
180 Kбайт - свободная память

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

Распределение выводов FPGA:

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

Nesser
14.01.2017, 11:03
НЕ маловато памяти ?

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

И как же 16М цветов?

zx-kit
15.01.2017, 19:10
НЕ маловато памяти ?

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

И как же 16М цветов?
Добавим память на FLASH картридже размером 512К-2М. Игры загружаться будут быстро.
Цветов планируется не больше 32К. 15 бит на точку.

s_kosorev
15.01.2017, 19:36
А почему картридж? Его впарить можно? SDCard доступнее

zx-kit
15.01.2017, 20:07
Картирдж будет работать на Ленинграде и ZX-SPECTRUM. Там нет SD.
И с SD картами я еще не разобрался. ПЗУ проще.

s_kosorev
15.01.2017, 22:54
sdcard та же флешка с spi, можно юзать файловую систему а можно и не юзать

Nesser
18.01.2017, 09:39
Я про оперативную память, я был бы не против хранить всё что связанно с графикой в памяти видеокарты, в том числе и задний фон рабочего стола, можно поставить хотя бы 4-8 мб ? :)
И почему цветов так мало? проблема с ногами для R2R? так это всё решаемо малым количеством ног и 3-я внешними дешёвыми микрухами рублей по 10, странно что в Pentevo не было это сделано, примитивно, просто, и по 24 бита на точку, от плисины надо всего 4 ноги, и никаких шим, но я не знаю, надо ли открывать такую примитивную тайну :D

LeoN65816
21.01.2017, 11:28
И почему цветов так мало? проблема с ногами для R2R? так это всё решаемо малым количеством ног и 3-я внешними дешёвыми микрухами рублей по 10, странно что в Pentevo не было это сделано, примитивно, просто, и по 24 бита на точку, от плисины надо всего 4 ноги, и никаких шим, но я не знаю, надо ли открывать такую примитивную тайну :D
Расскажи, пожалуйста, подробнее.

HardWareMan
21.01.2017, 11:35
Если он про сдвиговый регистр, вроде 74х595, то мимо. Например, стандартный экран ZX имеет пиксельклок в 7МГц. Чтобы заливать каждый раз по 8 бит на точку в последовательном коде, нужна частота 8х от пиксельклока или 7*8=56МГц для стандартного экрана 256x192@50FPS. Вряд-ли дешевые микрухи по 10р смогут выдержать 56МГц. И мы молчим за более ёмкие разрешения, где на точку могут быть по 40МГц. Проще уж LVDS делать, ибо именно там это и сделано уже.

Totem
21.01.2017, 16:45
56МГц
не, это запредельно для 74F, на 14 начинаются уже нюансы если ставишь разных производителей и клок такой только c PLL, зачем вообще решать такие задачи на 8 бит ?

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


sdcard та же флешка с spi, можно юзать файловую систему а можно и не юзать
в ево , там будет жить еще и ft8x, он вообще не смеется над стандартным экраном ZX, он его и знать не знает.

Nesser
21.01.2017, 19:54
Можно два 4 битных сдвиговых регистра в 1 корпусе, грузить параллельно и младшую тетраду и старшую, получается 8 ног от плис, по 2 на каждый цвет, такт сдвига и такт загрузки выхода, неужто 30 МГц не пробьёт ?
И вообще, это же не моя идея была 16М цветов делать :) Мне бы и 15-16 бит за глаза хватило, без всякой палитры.

s_kosorev
21.01.2017, 20:26
У евро есть текстовый режим 720*576 это как бы 28мгц. Какой там клок у фпга? 28мгц? Как один клок тактовой 4 бита вытолкнуть?

Totem
21.01.2017, 20:58
У евро есть текстовый режим 720*576 это как бы 28мгц. Какой там клок у фпга? 28мгц? Как один клок тактовой 4 бита вытолкнуть?
Ты, прощу извинить, за фамильярность, в одном треде предложил, "замультить" шину, если пинов нет, дельно.
Но у" эвы драм и вайт" на 14, там внешняя PLL,

Hacker VBI
21.01.2017, 21:02
Totem, вы ещё обсуждаете как будет устроен метеор 2013?

в 2017ом?

Totem
21.01.2017, 21:38
Hacker VBI, нет, мне сугубо интересно, что вы сделаете с ft? порт TS конфы, вещь оригинальная, но "невсеобьятная"
ждем примера.

Nesser
21.01.2017, 22:04
Так разве из памяти считывается сразу 24 бита цвета? всё равно несколько тактов уйдёт на считывание пикселя обработки поллитры, RAS-CAS и всё прочее, во время всего этого нельзя выдвинуть из плис 4 бита в 6-и тетрадах?
Или ставить 2 плис, видео и системную, да и вообще, я не понимаю зачем несколько микросхем памяти, разве нельзя всё в одной делать?

Hacker VBI
21.01.2017, 22:47
Totem, не знаю.
я пока в ft не собираюсь, увы

Totem
21.01.2017, 22:54
Так разве из памяти считывается сразу 24 бита цвета? всё равно несколько тактов уйдёт на считывание пикселя обработки поллитры, RAS-CAS и всё прочее, во время всего этого нельзя выдвинуть из плис 4 бита в 6-и тетрадах?
Или ставить 2 плис, видео и системную, да и вообще, я не понимаю зачем несколько микросхем памяти, разве нельзя всё в одной делать?
можно, только с понимаем, что это будет тот же эмулятор и "ретромэны"скажут Вам -Фи, таких проектов и без этого есть причем основательных.

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

Hacker VBI, Хочешь сказать, что ft8 не вариант?

Hacker VBI
21.01.2017, 22:59
Totem, ни в коем случае.
просто - отдельная видео система практически, имхо
я лично пока не готов её изучать, не более

Totem
21.01.2017, 23:08
Totem, ни в коем случае.
просто - отдельная видео система практически, имхо
я лично пока не готов её изучать, не более
Странно, я всегда думал, что TS конфа, это отделенная система

Hacker VBI
21.01.2017, 23:13
в TS конфу входит гораздо больше (http://hype.retroscene.org/tag/TS-Config/) чем вывод видео

Totem
21.01.2017, 23:23
в TS конфу входит гораздо больше (http://hype.retroscene.org/tag/TS-Config/) чем вывод видео
мы не слепые и не глухие, мне откровенно нравится, что вы все делаете, но это не отменяет суть самой TS, это другая система

Hacker VBI
21.01.2017, 23:32
однозначно. просто база та же

Totem
22.01.2017, 00:14
однозначно. просто база та же
база у всех может быть одна, но рамки ее всегда ограничены, таким понятием, как "геймплэй", мне не понятно, зачем все эти расширения, когда нет #культовой Laser Squad" ?

zx-kit
30.01.2017, 21:17
Прошу поучаствовать в опросе.

Nesser
02.02.2017, 00:36
Я за evo

zx-kit
15.02.2017, 22:11
Упавшему метеориту "Челябинск" уже 4 года.
Мой "Метеор" пока не разогнался и не полетел.

ALS
15.02.2017, 22:25
Чето вы там, в Челябинске, медленно запрягаете.
https://forums.overclockers.ru/viewtopic.php?f=25&t=400626

Nesser
14.05.2017, 22:57
Ну как там?

Nesser
24.09.2017, 13:01
Эээээмммм

shurik-ua
24.09.2017, 14:17
Тсс, не шуми ) - видишь все спят ? )

zx-kit
18.11.2017, 11:41
Ну как там?
Еще не разогнался. Работы много. Всю концепцию надо переделывать. Эта никуда не годится.

Инфорком писал, что в играх вывод идет на экран. Но в хороших играх используется буфер. Один кадр рисуется в буфер, а в другой кадр копируется из буфера на экран. Буфер не более 2/3 экрана. И в разных играх по разным адресам. Надо при рисовании в буфер заполнять буфер в видеокарте, а потом аппаратно копировать в основной буфер. Все сложно предусмотреть. Еще ксорки прямо на экран и все это надо чтобы работало одновременно. Это только для устранения клешинга в старых играх.

И к всем моделям компьютеров не доработаешь. А если еще блиттер делать. Короче сложно. Не ждите... Наверно не взлетит. По крайней мере, как задумывалось раньше.

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

Totem
18.11.2017, 15:19
Еще не разогнался. Работы много. Всю концепцию надо переделывать. Эта никуда не годится.

Инфорком писал, что в играх вывод идет на экран. Но в хороших играх используется буфер. Один кадр рисуется в буфер, а в другой кадр копируется из буфера на экран. Буфер не более 2/3 экрана. И в разных играх по разным адресам. Надо при рисовании в буфер заполнять буфер в видеокарте, а потом аппаратно копировать в основной буфер. Все сложно предусмотреть. Еще ксорки прямо на экран и все это надо чтобы работало одновременно. Это только для устранения клешинга в старых играх.

И к всем моделям компьютеров не доработаешь. А если еще блиттер делать. Короче сложно. Не ждите... Наверно не взлетит. По крайней мере, как задумывалось раньше.

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

кто тебе мешает, переключиться на ULAX? устранение клэша, это не цель, просто можно очень быстро, сделать пару сотен старых игр на порядок играбельней, без тотальной раскраски, раскраска целиком, конечно возможна, но трудозатраты там гораздо выше, а учитывая, что большинство шедевров, порты с других платформ, т.е. уже
существуют в более вменямом виде, то и вовсе бессмысленной. Мы еще вообще не определились, с окончательной спекой расширенных режимов, так что, как говорят у нас в дрервне вэлкам! всех кто хочет принять участие в разработке.
Ну а пока самый жЫрный плюс, кодеру новой игры не требуется менять ни байта кода в игре, т.е. написав игру под классику ZX, выпустить версию под ULAX дело пары дней, ну если хочет все 15бит цвета недельку на раскраску спрайтов. Простенький редактор уже существует.
https://yadi.sk/i/BHJJs_Pb3MBZtr
перекрашено с его помощью.

zx-kit
18.11.2017, 18:02
Для меня устранение клешинга была одной из основных целей. Я тоже считаю, что сначала надо улучшить графику в хороших играх.

Но при реализации в железе для этого надо немного изменить программу. Спрайты менять не собирался.

Спасибо за приглашение. Но пока нет времени.

s_kosorev
18.11.2017, 20:06
RPi Zero как в ZX-HDMI и клешинг устранить и OpenGL прикрутить

Totem
18.11.2017, 22:03
Для меня устранение клешинга была одной из основных целей. Я тоже считаю, что сначала надо улучшить графику в хороших играх.

Но при реализации в железе для этого надо немного изменить программу. Спрайты менять не собирался.

Спасибо за приглашение. Но пока нет времени.

У нас не надо менять/править и старый и новый софт.

shurik-ua
18.11.2017, 22:50
У нас не надо менять/править и старый и новый софт.
так вроде ж надо было найти адреса прцедур вывода спрайтов, или уже новая версия где не надо ?

Totem
18.11.2017, 22:52
так вроде ж надо было найти адреса прцедур вывода спрайтов, или уже новая версия где не надо ?
да надо, но сам то код ты не правишь и не меняешь.

shurik-ua
18.11.2017, 22:57
дак откуда ж я знаю меняется там код или нет ) - вы ж скрытничаете ))

Totem
18.11.2017, 23:23
дак откуда ж я знаю меняется там код или нет ) - вы ж скрытничаете ))
дык тыщу раз говорилось, что в код изменений не вносится. :)

zx-kit
19.11.2017, 14:34
В эмуляторе на PC можно добавить 3 килобайта текса, а в FPGA - нет. Поэтому проще для реализации в железе изменить некоторые команды в программе для выполнения команд видеокатры. Использовать те же адреса вывода графики, что и в эмуляторе.

Lethargeek
20.11.2017, 20:20
В эмуляторе на PC можно добавить 3 килобайта текса, а в FPGA - нет.
Странно как-то мысли движутся у тебя. Во-1, смотря какая FPGA. Во-2, зачем же сразу пихать в неё, когда VRAM жи есть.


Поэтому проще для реализации в железе
https://memegenerator.net/img/instances/400x/61155608/this-is-why-we-cant-have-nice-things.jpg

Шёл 2017 год, железячники "ничего не забыли и ничему не научились", продолжая весело плясать на старых граблях.


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

zx-kit
20.11.2017, 21:53
Как вы планируете сделать видеокарту ?

Totem
21.11.2017, 00:38
Как вы планируете сделать видеокарту ?
Как обычно, с матом, который еще не придумали. Что тебя смущает в загрузке в "аппартус" 16КB например?

zx-kit
21.11.2017, 23:27
То что вы написали эмулятор еще не значит, что это же можн сделать в железе без изменения программы. Или вместо изменения вы дублируете программу с другим кодом на все 48К.

shurik-ua
21.11.2017, 23:43
2 zst Они тебе не расскажут принцип работы - даже не пытайся )

Lethargeek
22.11.2017, 02:08
То что вы написали эмулятор еще не значит, что это же можн сделать в железе без изменения программы.
сам-то понял, что сказал? если с изменением, то по определению результатом будет уже не "это же"
сделать можно, раз уж сделан был даже неоправданно сложный наивный вариант spec256


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

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


Какой тогда смысл в ULAX? Ну разве, что только делать раскрашенные видео ))
пхе, раз так, засчитаю это тебе за чистосердечное признание в ненужности твоей разработки
бо сам ты на вопросы о принципах работы оной не отвечал, предпочитая всюду спамить свои раскраски

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

смысл ulax - отвергнуть порочный принцип "простота реализации в железе важней всего"

zx-kit
22.11.2017, 05:26
И каков формат этих 500 байтов текстового описания к каждой игре ? Адреса подпрограмм в кодах Z80, которые надо подменить на подпрограммы процессора PC?

Если бы не было измения в коде Z80 или подмены подпрограмм на другие, то результат был бы как в оригинальной игре. Наверно пишите, что игра без изменений, а по определенным адресам запускаете вместо исходного кода подпрограммы, встроенные в эмулятор подпрограммы, которые по размерам больше, чем сама игра для Z80.

SegaBoy
22.11.2017, 06:46
А какой смысл приводить скриншоты из Head Over Heels, если один из оригинальной спектрум версии, а второй из современного ремейка на пк? Чтобы выдать второй за раскрашеный первый под Spec256 или DivGMX?

Ewgeny7
22.11.2017, 23:02
Господа, не ругайтесь!
Приготовленная арматура стоит в углу, переходите к делу!

zx-kit
11.12.2017, 20:18
Обновил концепцию в первом посте. Убраны VGA, блиттер, слои, палитра, SDRAM и прочие навороты.
Видеокарта "METEOR" будет только исправлять недостатки экрана "ZX Spectrum".
Добавлены два новых экрана с линейной адресацией байтов, началом с 0000H, возможностью независимой яркости для PAPER и INK, текущий атрибут записывается в регистр, а не в область атрибутов, добавлены режимы с прозрачным цветом для устранения клешинга, положение INT перенесено в правый нижний угол окна 256х192 точки.

Я думаю, что этого будет достаточно для улучшения старых и новых игр. Осталось реализовать. Желательно сначала добавить режим "METEOR" в один из эмуляторов.

Totem
11.12.2017, 21:10
Плагиатор:v2_clapp::v2_rolley :)
http://zx-pk.ru/threads/26909-prostenkaya-videokarta-dlya-8-bit-podelok.html?p=909886&viewfull=1#post909886

zx-kit
11.12.2017, 21:52
Наплодили видеокарт...

По моей новой концепции устранить клешинг возможно на схеме без FPGA и блиттера.
В ZX 128K вроде 2 экрана как предлагаю я, но у них разные адреса, нелинейная адресация и область атрибутов, нет рисования одним цветом.
В моей концепции учтены все эти ошибки. Что мешало сделать идеальный экран, как предлагаю я, сразу в 1982 г ?
Экран с адреса 0000H и линейная адресация значительно упрощают расчет адреса байта. Об этом я уже писал несколько лет назад в этой или подобной теме. С этим никто не поспорит. Распределение адресов как у Ориона значительно лучше, чем у ZX Spectrum 1982 г. Поэтому надо добавить в ZX Spectrum подобный эффективный экран.

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

Обычно в красочных играх рисование идет сначала в буфер размером 2/3 экрана. После построения изображения в буфере идет копирование его на экран. Естественно таким способом сложно делать игры на весь экран без мерцания. Если рисовать в новые экраны, то теперь не нужны и буфер и старый экран. Если переделать игру для рисования на новом экране в игре освобождается память размером около 4 + 7 = 11 Кбайт. Их можно использовать в других целях для улучшения или доработки игры. При этом рисовать на новом экране проще, чем на старом. И немного быстрее.

Totem
11.12.2017, 22:18
Наплодили видеокарт...
По моей новой концепции устранить клешинг возможно на схеме без FPGA и блиттера.
В ZX 128K вроде 2 экрана как предлагаю я, но у них разные адреса, нелинейная адресация и область атрибутов, нет рисования одним цветом.
В моей концепции учтены все эти ошибки. Что мешало сделать идеальный экран, как предлагаю я, сразу в 1982 г ?
Экран с адреса 0000H и линейная адресация значительно упрощают расчет адреса байта. Об этом я уже писал несколько лет назад в этой или подобной теме. С этим никто не поспорит. Распределение адресов как у Ориона значительно лучше, чем у ZX Spectrum 1982 г. Поэтому надо добавить в ZX Spectrum подобный эффективный экран.

Ну по старой концепции простой видеокарты, нужно резать пару дорожек, и впилить менеджер памяти на CPLD (он у меня спецом там в логике нарисован для понимания) для наших компов если хочется использовать всю память не тронутой при записи в видяху.
общем не плохо, но уныло.
По моей новой концепции устранить клешинг возможно на схеме без FPGA и блиттера
Ну о первых словах,без FPGA занятие бесполезное вовсе, а блиттер нужен, для повышения быстродействия для любой компа в железе, но тут уже надо править код старой игры. А для новой таких проблем нет. DMA частично снимает вопрос копирования буфера под спрайтом, но тоже уныло использует основную память компа, что не есть хорошо.
Ну а если у тебя 4bit цвет, то и графика будет занимать соотвественно ....хехе, много на SamCoupe игрушек? под его режим ?
Ну а о вторых, клэш уже побежден, сам знаешь где.

Totem
11.12.2017, 22:38
Обычно в красочных играх рисование идет сначала в буфер размером 2/3 экрана. После построения изображения в буфере идет копирование его на экран. Естественно таким способом сложно делать игры на весь экран без мерцания. Если рисовать в новые экраны, то теперь не нужны и буфер и старый экран. Если переделать игру для рисования на новом экране в игре освобождается память размером около 4 + 7 = 11 Кбайт. Их можно использовать в других целях для улучшения или доработки игры. При этом рисовать на новом экране проще, чем на старом. И немного быстрее.
Вообще такой подход, был хорош лет 20 назад, как и моя "поделка" с 2 страницами VRAM на раздельных шинах.
Старые игры можно дорабатывать/ перекрашивать не меняя код игры уже сейчас, сам знаешь где, АF 2 видел? там еще много чего можно "покрасить", но кто этим будет заниматься?

zx-kit
11.12.2017, 23:20
Вообще такой подход, был хорош лет 20 назад, как и моя "поделка" с 2 страницами VRAM на раздельных шинах.
Старые игры можно дорабатывать/ перекрашивать не меняя код игры уже сейчас, сам знаешь где, АF 2 видел? там еще много чего можно "покрасить", но кто этим будет заниматься?
Посмотрел. В большинстве игр достаточно и стандартных 15 цветов. Главное, чтобы убрать клешинг.
Планирую спаять макет для шины ZX-BUS. Там будут 8 микросхем статики, куча счетчиков, мультиплексоров и логики. Громоздко, но можно без FPGA. Для устранения клешинга надо обеспечить независимую запись одним из двух цветов каждой точки.

Totem
11.12.2017, 23:45
Посмотрел. В большинстве игр достаточно и стандартных 15 цветов. Главное, чтобы убрать клешинг.
Планирую спаять макет для шины ZX-BUS. Там будут 8 микросхем статики, куча счетчиков, мультиплексоров и логики. Громоздко, но можно без FPGA. Для устранения клешинга надо обеспечить независимую запись одним из двух цветов каждой точки.
Могу согласиться, что и 15 цветов достаточно, но вот производительности "натурального железа"- нет, но и это не главное, главное кто будет копать и править код? да и зачем вообщем?

zx-kit
12.12.2017, 05:41
Могу согласиться, что и 15 цветов достаточно, но вот производительности "натурального железа"- нет, но и это не главное, главное кто будет копать и править код? да и зачем вообщем?
А разве это не интересно сделать версию игры "FOR METEOR" ?

Lethargeek
12.12.2017, 11:03
А разве это не интересно сделать версию игры "FOR METEOR" ?
лично мне интересны результаты, а не процесс, на который хочется потратить поменьше сил (на другие игры больше останется)

Hacker VBI
12.12.2017, 12:31
Я думаю что клешинг будет побеждён!

Hacker VBI
13.12.2017, 11:13
vlad, на удивление много игр есть в репе, клёво

CodeMaster
13.12.2017, 14:57
(плата доступна в продаже)

Буржуи покупают?


(256 цветов на точку)

А что на барахолке после "Spec256" нет "(реализовано)"?

CodeMaster
14.12.2017, 12:28
Кто понял, что это.

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


Что еще нужно то?

А в России плата без вязанки МГТФа и костылей - это не аутентично ;-) Вот Next никак не взлетит, а интересно всё-таки будет взглянуть на его экосистему в СНГ, образуется ли она вообще.

zx-kit
08.01.2018, 10:03
Если делать "теплый ламповый" "METEOR" на DIP микросхемах, то это будет около 48 микросхем логики, 8 микросхем кэша и 1 флэш.
Размер платы около 200x120 мм. Цена конструктора около 2500-3500 руб.
Подключение: в слот ZX-BUS, дополнительный вход: цифровые RGBI, SYNC, INT, выход: цифровые RGBI, SYNC, INT.

Возможности такие:

Аппаратный скроллинг по-вертикали и по-горизонтали.
Разрешение: 256х192 и 320х240 точек.
Стандартные 15 цветов.
Возможность отдельного BRIGHT для PAPER и INK.
2 экрана с адреса 0000 совмещаются с ПЗУ.
В память видеокарты возможна только запись по 8 точек текущими цветами ATTR с учетом прозрачного.
Адресация байтов на экране линейная как в "Орионе" и "Специалисте".
Режимы рисования: цветом PAPER (нулевыми битами), цветом INK (единичными битами), обоими цветами PAPER и INK (и нулями и единицами как раньше).

Выход цифровой 4 бита RGBI для подключения к видеоконвертеру VGA&PAL или обратно на компьютер для RGB SCART.
Переключение между стандартным режимом графики с компьютера и новым с видеокарты.
В новых режимах нет BORDER-а и FLASH, в старом остается.
INT 50 Hz сразу после отображения последней строки окна.

Нужна такая видеокарта ?

zx_
08.01.2018, 11:51
по мне, так это лучше забытый прочно вариант реализовать, в виде карты , по типу neo gs ,
http://sblive.narod.ru/ZX-Spectrum/ZX-SEGA/ZX-SEGA.htm

zx-kit
08.01.2018, 11:56
по мне, так это лучше забытый прочно вариант реализовать, в виде карты , по типу neo gs ,
http://sblive.narod.ru/ZX-Spectrum/ZX-SEGA/ZX-SEGA.htm

NeoGS (http://www.nedopc.com/gs/ngs.php) тоже в слот ZX-BUS устанавливается
Для релизации возможностей похожих на Сегу надо 4 слоя и больше цветов. На DIP такое можно сделать, но это будет большая видеокарта.

zx_
08.01.2018, 12:44
да я о больном вопросе , о софте
в случае с сегой или денди - все есть кабы
в случае с ула плюс - тоже немного есть
под атм турбо режимы есть тоже немного, даже игрушки

допустим не сегу , а атм совместимую , ула плюс совместимую
под zx bus
или на гнездо процессора , как GMX

да черт его знает, но железо без софта не стартанет

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

zx-kit
08.01.2018, 12:55
да я о больном вопросе , о софте
в случае с сегой или денди - все есть кабы
в случае с ула плюс - тоже немного есть
под атм турбо режимы есть тоже немного, даже игрушки

допустим не сегу , а атм совместимую , ула плюс совместимую
под zx bus
или на гнездо процессора , как GMX

да черт его знает, но железо без софта не стартанет

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

Кстати о приставках. Через некоторое время начнется реклама другой видеокарты. Там уже можно проэмулировать разные приставки. Можно сделать 64 цвета или даже 256.

zx_
08.01.2018, 13:14
вот такую еще можно идею
http://speccy.info/ZX-Poly

на четырех процессорах видеокарту
процессоры на 20 мгц
ну и цплд на 84 ноги, чтобы как дип паялась

не , серьезно
это же сейчас все не накладно

ну можно еще кусочек метеорита в пакетик прикладывать:)

zx-kit
08.01.2018, 14:29
Ну еще немного подождать надо. Я же говорю, скоро будет видео и ссылка, где можно приобрести крутую видеокарту. Там и GMX есть и 8 процессоров, и ULA-PLUS. Скоро будут ULA-NEXT и ULA-X. И софт для раскраски уже есть. Сейчас техника знаете до чего дошла, что программировать уже не надо. Достаточно найти подпрограмму вывода спрайтов. А дальше просто раскрасить.

В моей видеокарте пока по-старинке на ассемблере придется программировать.

Lethargeek
08.01.2018, 14:35
да я о больном вопросе , о софте
ну ты же видишь - как обычно, тут цель не софт, а слепить что-то на определённом железе
в результате в качестве "возможностей" снова предлагаются костыли

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

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

что касается монстров в стиле "стопка из спектрумов" (zx-poly, spec256)
то это нерациональный расход ресурсов для решения отдельной частной задачи
чрезмерные трудозатраты на адаптацию классического софта
и неудобство для дальнейшего расширения

zx_
08.01.2018, 14:50
Lethargeek, да понимаю, но пресловутая аудиокарта с процессором ведь стартанула
тоже и проц втрое быстрее основного, памяти вообще раз в десять бо(ьше

ладно, это все так, слова на заборе
будет как будет и никак иначе

Totem
08.01.2018, 15:51
Я даже готов попробовать ULAX на дешевой версии DivGMX Starter (6K LE's, SDRAM 16MB, FLASH 2MB) в связке по ZXBUS с каким-нибудь ZX-Spectrum...
Тебе лицензию на сколько копий оформлять? оплачивать будешь наличными?

Totem
08.01.2018, 16:19
Мне пожалуйста одну ULAX конфигурацию для DivGMX. Что за лицензия? Куда и сколько оплачивать?

а ..одну... вам в розничный отдел...

http://colorado-cat.ru/wp-content/uploads/2014/07/avtostopom-po-galaktike2.jpg


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

zx-kit
12.01.2018, 19:08
Прикинул количество портов управления для видеокарты. Надо 8 портов управления. Какие адреса будем использовать ?

Разрешение: 256х192 и 320х240 точек. (1 порт для выбора режима - 2 бита)
Аппаратный скроллинг по-вертикали и по-горизонтали. (3 порта для задания смещения - 8+9 бит)
Стандартные 15 цветов.
Возможность отдельного BRIGHT для PAPER и INK. (1 порт - 1 бит)
2 экрана с адреса 0000 совмещаются с ПЗУ. (2 порта - 2 бита)
В память видеокарты возможна только запись по 8 точек текущими цветами ATTR с учетом прозрачного. (1 порт - 8 бит)
Адресация байтов на экране линейная как в "Орионе" и "Специалисте".
Режимы рисования: цветом PAPER (нулевыми битами), цветом INK (единичными битами), обоими цветами PAPER и INK (и нулями и единицами как раньше).(1 порт - 2 бита)

Totem
12.01.2018, 21:06
Прикинул количество портов управления для видеокарты. Надо 8 портов управления. Какие адреса будем использовать ?

Разрешение: 256х192 и 320х240 точек. (1 порт для выбора режима - 2 бита)
Аппаратный скроллинг по-вертикали и по-горизонтали. (3 порта для задания смещения - 8+9 бит)
Стандартные 15 цветов.
Возможность отдельного BRIGHT для PAPER и INK. (1 порт - 1 бит)
2 экрана с адреса 0000 совмещаются с ПЗУ. (2 порта - 2 бита)
В память видеокарты возможна только запись по 8 точек текущими цветами ATTR с учетом прозрачного. (1 порт - 8 бит)
Адресация байтов на экране линейная как в "Орионе" и "Специалисте".
Режимы рисования: цветом PAPER (нулевыми битами), цветом INK (единичными битами), обоими цветами PAPER и INK (и нулями и единицами как раньше).(1 порт - 2 бита)

а процессор какой, сколько махогегрц, планируешь?

zx-kit
12.01.2018, 21:14
а процессор какой, сколько махогегрц, планируешь?
Никакой. Он в клоне с ZX-BUS уже есть.

Totem
12.01.2018, 21:20
Никакой. Он в клоне с ZX-BUS уже есть.

Скажи мне честно, можно в личку, ты понял тему, которую я тебе 2 раза скидывал?
Если понял то вопрос, зачем ты продолжаешь плодить, даже "виртуально", такие "дикие костыли"?

zx-kit
12.01.2018, 21:24
Скажи мне честно, можно в личку, ты понял тему, которую я тебе 2 раза скидывал?
Если понял то вопрос, зачем ты продолжаешь плодить, даже "виртуально", такие "дикие костыли"?
Можешь и дальше писать про костыли и грабли. У меня свое мнение, какой должна быть видеокарта. Если хочешь обсуждать - тогда пиши конкретно что не так. В этой теме. Попробую объяснить свою точку зрения.

Totem
12.01.2018, 21:44
Тот проект мне не подходит. У меня свои идеи по видеокарте. Можешь и дальше писать про костыли и грабли пока не надоест.
У меня свое мнение, какой должна быть видеокарта. Если хочешь обсуждать - пиши конктретно что не так. В этой теме.
Я тебе не свои предложил, я их "заимствовал" из различных хороших идей проектов, которые не были реализованы, "скомпилил" в одну- я не хочу "троллить" и чего либо такое и тем более говорить, что я "немеряно крут, а ты ламо"

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

zx-kit
12.01.2018, 21:52
Хорошо, карта предполагает использование программирумуемой логики в любых ее ипостатсиях? Нет, пока достаточно обычных микросхем. Возможно после макетирования в случае неудовлетворительный результатов - да. В качестве формирователя синхроимпульсов - счетчики и FLASH.

Totem
12.01.2018, 21:57
Нет, пока достаточно обычных микросхем. Возможно после макетривания в случае неудовлетворительный результатов - да.
Хорошо, зачем кодеру столько портов? и главное, кто все те люди, которые софтово это поддержут?

zx-kit
12.01.2018, 22:03
а главное, зачем тебе 2 экрана? в которые ты можешь только писать?

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

Если в экраны только писать - это упрощает видеокарту, ускоряет запись, так как рисуются сразу 8 точек, и не надо операций чтение-модификация-запись. Рисуются сразу 8 точек, а не по одной, как раньше пытались сделать по 16 цветов на точку. У меня тоже по 16 цветов на точку, но рисуются в несколько раз быстрее. Благодаря тому, что только пишется. Но при этом учитывается прозрачный цвет. Да и зачем читать нового экрана ? По 8 байтов на 8 точек - это же очень медленно.

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


Хорошо, зачем кодеру столько портов? и главное, кто все те люди, которые софтово это поддержут?
Сколько параметров - столько и портов. Если собрать несколько параметров в один порт, то программисту будет сложнее - придется комбинировать по нескольку битов в один порт. Проще в одном порте выбрать режим экрана, в другом режим записи и способ задания BRIGHT и т.д.

А поддержат софтово такие же люди, которые будут поддерживать ULAX.

OrionExt
12.01.2018, 22:08
zst, найдите уже нишу в ретро платформах. Возьмите за основу старый VDP (или расыпуху). Добавите соли и перца по вкусу. Это будет не оценимый вклад в любую ретро платформу.

zx-kit
12.01.2018, 22:14
zst, найдите уже нишу в ретро платформах. Возьмите за основу старый VDP (или расыпуху). Добавите соли и перца по вкусу. Это будет не оценимый вклад в любую ретро платформу.
Можно сделать 4 слоя как в сеге, ускорить построение изображений, добавить палитру. Но для этого надо сделать новый компьютер с Z80 на 20 MHz, 4 модуля слоев. И это уже будет большая печатная плата. VDP копировать я не собираюсь. У меня своя видеокарта. Для этого тема про компьютер "CHELYABINSK" (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html). Возможно там будет маппер совместимый с MSX2 чтобы было легче портировать SYMBOS.

OrionExt
12.01.2018, 22:16
Вы не исправимы:)

Кому нужна новая видео-карта для автомобилей (очень грубо. Хотя и там уже все фулл) или вы решили тягаться с командой инженеров, которые 20 собак съели и 40 VDP проглотили. Не понятненько.

zx-kit
12.01.2018, 22:24
Вы не исправимы:)

Кому нужна новая видео-карта для автомобилей (очень грубо. Хотя и там уже все фулл) или вы решили тягаться с командой инженеров, которые 20 собак съели и 40 VDP проглотили. Не понятненько.
А что на этом форуме разрабатывать или мечтать могут только профессионалы, которые все знают и могут ?

Totem
12.01.2018, 22:26
Два экрана нужны для того, чтобы не было мерцаний во время построения изображения следущей фазы игры. На одном экране рисуем, другой в это время отображается. Потом меняем их местами. Логично ? При этом сложные экраны можно будет строить в течение нескольких кадров и мерцаний не будет.
Хорошо, теперь, возвращаемся к "моему проекту", там ровно тоже самое, только шины VRAM разделенные, CPU, не мешает "никто", синхоронизации не "надо совсем". Смекаешь ? (с)

так как рисуются сразу 8 точек
уже не представляю ,но знаю :v2_dizzy_yes:


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



А поддержат софтово такие же люди, которые будут поддерживать ULAX.
Дело не в ULAX, совсем нет. :v2_dizzy_biggrin2:

Lethargeek
12.01.2018, 22:26
Можно сделать 4 слоя как в сеге, ускорить построение изображений, добавить палитру. Но для этого надо сделать новый компьютер
да и так выходит новый компьютер, адаптировать для которого zx игры - считай наполовину переписать
умом Челябинск не понять, тянешь два разных проекта, оба - неспектрумы, уж остановился бы на одном

OrionExt
12.01.2018, 22:34
Добавлю к прошлому сообщению.

А ZX и чернобелый нравится с клушей. Это фишка. Ну, это мое. И видимо там вряд ли чего можно улучшить, бо потенциала нет. Но на аппаратный скролл я согласен:)

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

От ретро платформы улутшайсинг не должен портить то, что сделали в то время. А то поглядишь - это не ZX а прям какай-то 8-ядерный эмулятор.

Totem
12.01.2018, 22:40
А что на этом форуме разрабатывать или мечтать могут только профессионалы, которые все знают и могут ?

У тебя отличный Leningrad-2012, мне просто чисто человечески, становится за тебя страшно, когда из простой идеи, "вырастает очередной монстр" от тебя, не более.

zx-kit
12.01.2018, 22:41
да и так выходит новый компьютер, адаптировать для которого zx игры - считай наполовину переписать

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

Поэтому лучше сразу сделать новый компьютер и сказать, что это новый компьютер. И выбрать такие номера портов какие хочешь и столько, сколько надо.

Lethargeek
12.01.2018, 22:42
Но на аппаратный скролл я согласен
это же костыль! и он, по-твоему, спек не портит?
спек хорош как раз отсутствием костылей

Totem
12.01.2018, 22:43
Да те же подпрограммы вывода графики надо будет переделать. Только у меня новые подпрограммы будут на месте старого экрана около 7 К места. А у вас какой-то параллельный процесс все рисовать будет, который тоже надо настроить на определенные адреса и способы вывода. Уровень трудности примерно одинаков. Только у меня доработанная программа, а у вас дополнительный файл с данными, которые вы загрузите в видеокарту. Тоже новый компьютер получается.

Поэтому лучше сразу сделать новый компьютер и сказать, что это новый компьютер. И выбрать такие номера портов какие хочешь и столько, сколько надо.

Ответ не верный, сразу скажем панический.

OrionExt
12.01.2018, 22:47
это же костыль! и он, по-твоему, спек не портит?
спек хорош как раз отсутствием костылей

Господин эпистолярного жанра, с вами дискутировать не хочется;)

zx-kit
12.01.2018, 22:52
У тебя отличный Leningrad-2012, мне просто чисто человечески, становится за тебя страшно, когда из простой идеи, "вырастает очередной монстр" от тебя, не более.
На мой взгляд, на монстра больше похож ULAX, а не METEOR. В Метеоре чисто логика, а у вас ?

OrionExt
12.01.2018, 22:57
Не METEOR-а не ULAX никто не видал. И ли мне ютубом разбавить:)

Lethargeek
12.01.2018, 23:04
Да те же подпрограммы вывода графики надо будет переделать. Только у меня новые подпрограммы будут на месте старого экрана около 7 К места.
просто БЛЕСК, то есть надо переделывать вообще ВСЁ, пишущее и читающее экран :v2_clapp:
ты совсем думать о последствиях не пытаешься? (очевидных даже неспектрумисту)


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


Уровень трудности примерно одинаков.
ага, как же))) вот что ты будешь делать со своими двумя экранами, если оригинал на спеке рисует в буфер (не на весь экран), а инфопанельки обновляются на экране?

OrionExt
12.01.2018, 23:13
Музыкальная пауза. Горіла Сосна.


https://www.youtube.com/watch?v=9tQCdYpo7hg&list=RD9tQCdYpo7hg&t=7


Ппц. В мой молодости больше было драйва, поищем Оригинал:)

Totem
12.01.2018, 23:24
На мой взгляд, на монстра больше похож ULAX, а не METEOR. В Метеоре чисто логика, а у вас ?

забыл добавить, вот смотри, "Хорошо, теперь, возвращаемся к "моему проекту", там ровно тоже самое, только шины VRAM разделенные, CPU, не мешает "никто", синхоронизации не "надо совсем". Смекаешь ? (с)"
ну и далее, с катриджем, ты уже можешь читать и писать в одну область-СPU0, где у тебя ROM,VRAM или RAM на катридже, или RAM в СPU0 основной плате. А можешь делать все с точностью наооборот -причем порты у тебя могут быть совместимы, как ZX (по дефлоту), CP/M, Uzix и тд.
Чем "Челябинск" круче будет?

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


На мой взгляд, на монстра больше похож ULAX, а не METEOR. В Метеоре чисто логика, а у вас ?

А че сразу ULAX? есть он или нет, люди пишут под ZX, как и SPEC256, вообще параллельно, есть или нет. Людей "кодящих" на ZX они никак не отвлекают.

Nesser
02.04.2018, 15:51
Давайте и я свою лепту внесу :v2_dizzy_botan:

Как это цпу никто не мешает? он же всё своё время будет занят выводом ГРАФИКИ, при 4-21 такта на команду это более чем страшно даже при 28 МГц, мешают ему ВНУТРЕННИЕ ПРОЦЕССЫ, z80 сделан по старому принципу поочередного выполнения микрокода, медленее в принципе уже ничего нет, он ВООБЩЕ НЕ ДОЛЖЕН ЗАНИМАТЬСЯ всем что связанно с графикой, музыкой и дисками, он ЦПУ......он УПРАВЛЯТЬ должен а не камазы гравия детской лопаткой разгружать, любая видеокарта современного компа в тысячи раз мощнее цпу, а дма потоки фигачат на скоростях недостижимых для цпу.
Сколько на zx занимает времени вывод текста того же ассм-редактора? 100% мощности? так какой же это цпу? это текстовый контроллер, давно пора уже было сделать именно текстовый режим для работы с текстом, сделали? нормальный 64x24 с 8x8 символами? ну да ну да, сколько там протреккер тратит времени на анимацию текста? децл на простые звуки с квантованием 50 Гц еле остаётся?

Дальше...
Теневое видео-озу это класс, проц типа не занят, 2 экрана, тоже класс, то есть перерисовку спрайтов 50 раз в секунду делать не надо? и чтение-модификация-запись тоже не надо? спрайт что по горизонтали двигается кратно 8 пикселям? а если часть попала в 1 байт а часть в соседний? факт что надо считать из озу процессора, потом считать байт из видео-озу, потом наложить одно на другое со смещением, а уже потом записать в видео-озу и так сделать 2 раза, или я что-то не так понимаю?

Итог - наш чахленький проц должен заниматься только распределением и работой с синтаксисом и интеллектом в играх, и желательно на частотах до 28 МГц, если видеокарта то только со встроенным специализированным dma и хранением всей графики ВНУТРИ, в том числе и символьной таблицой.

Порой старую игру проще сделать заново чем впихивать в тело костыли с бинтами, тем более если лезть так и делать уже с учетом mouse, hdd/ssd (окно сохранений/загрузок), video....возврат в коммандер без сброса...........а всё это требует какой то доработки dos в плане обслуживания накопителей из игр и программ, не в каждой программе пилить а вызов окна доса короткой командой которая после себя восстановит графику которая была на этом месте (вариант как параметр).

НЕ ПОЛУЧИТСЯ ТАК ПРОСТО, уже нагорбатили кучи портов с жидкой адресацией и программеры наши лентяи по (BC) полностью порт указывать.

По сути любой спек переделывается в 7 МГц на ура, это уже компенсирует мелкие потери, но это из прошлого....никто сейчас не мешает воткнуть в панельку z80 платку с плисиной в которой зашит z80 с 1-4 тактом на команду и LDIR с 2 тактами на байт, работать будет абсолютно в любом спеке и прирост мощности НА ПОРЯДОК даже без увеличения частоты.

По мне так достаточно жёсткого спрайтирования с 1 байтовым цветом на пиксель и плавающим размером спрайта, 256x192 вполне хватает, а список координат спрайтов, их размеров и адресов начал пусть хранятся в видеокарте, пусть сама этот список читает, очищает экран и рисует каждый кадр чередуя с буфером, она всё равно каждый пиксель пересчитывает, итог - картинка будет всегда на экране, а если надо какой то спрайт передвинуть то достаточно изменить два байта в таблице, в следующем кадре спрайт будет в другом месте, то есть цпу тратиться только если надо сдвинут спрайт, даже для таблички 192x64 летающей по экрану достаточно каждый кадр менять всего 2 байта координат, про планы наложения и хочется и колется, такая система уже умерла, сейчас быстрее будет просто затереть поверх того что уже есть, тем более при экране с таким маленьким разрешением там и размещать то особо нечего, количество пулек поверх графики?

AzAtom
02.04.2018, 18:03
Nesser, всё так. По сути, получится прозрачная эмуляция аппаратных спрайтов без жёсткого ограничения их количества и размеров. Но почему-то некоторые люди под крики "Это уже не спектрум!" не хотят ни аппаратного блиттера ни других видеорежимов. :)

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

Я ещё предлагал создать некий API, чтобы можно было посадить соответствующий драйвер, а программа/игра будет вызывать соответствующие функции. И тут уже внутреннее дело драйвера что там и как работает, где хранятся и как отображаются эти спрайты и каким образом идёт работа с видеокартой на аппаратном уровне. Так получим возможность совершенно без изменений в игре подключать совершенно разные видеокарты. Но над этой идеей только посмеялись "мэтры".

Nesser
02.04.2018, 19:19
А почему это не спектрум? :v2_dizzy_roll:
Амига с AGA уже не Амига? 80286 с видеокартой уже не PC? :v2_dizzy_botan:

Если в спектрум добавить RS-232, RS-485, текстовый экран, возможность подключения расширенной видеокарты то это уже будет не спектрум? :)
А я вот хочу подключить к плате спектрума прибор по RS-485 протоколу и на ассме сделать программу которая обслуживает например пожарно-охранный прибор в целях проверки стабильности его работы и программирования....а может хочу банально залить прошивку в PIC16F628A по RS-232....а может хочу потестить работу с датчиком температуры или с экраном 16x2......могу?..........нет.....а почему....ну потому что вроде как всё это понавешать на z80 вполне можно....(и нужно)....а на PC и ардуино такой хренью страдать не хочется, для этого вполне достаточно ассемблера z80, и что, спектрум после этого перестанет быть спектрумом, ну вот хочу я на нём аппаратный текстовый режим, 64x24 или побольше и без бордюра.
Да и по сути чем мешает видеокарта воткнутая в слот, надо только продумать что бы она зеркально замещала родной экран, делать на россыпухе уже не прокатит да и не имеет смысла, переделка старых спектрумов тоже выглядит абсурдно, за то время пока напаяешь километр мгтф уже можно заработать на мать спектрума с плисиной.
Сильных наворотов НЕ НАДО, за глаза даже 256 цветов на точку, дальше будет проще приклеить SVGA карточку 90-x, но зачем, уровень сеги, больше НЕ НАДО, да хотя бы денди :v2_dizzy_coder:, у нас даже редактора TSFM нет, ибо на экран хрен что влезет и бардак в программировании.
Спектрум хорош тем, что встроенный бейсик позволяет относительно большие возможности в программировании, но его надо дорабатывать в соответствии с реальностями.
Понятно что на андроиде за тысячу рублей можно играть в 3D стрелялки, но что бы сделать тестовую программу для управления чем либо это полный пи...ц.
По мне так надо саму концепцию спектрума - (бейсик, дос, ассемблер, прямое управление устройствами) перевести в нынешние реалии.
Да и как вариант, о чём я уже говорил, вместо камня z80 вполне можно воткнуть платку с плисиной где прошит z80 с НОРМАЛЬНЫМИ тактировками микрокоманд и что-то сделать с адресацией выше 16 бит, только не надо про z280 и 380 :v2_dizzy_snowball: они не z80.
Переделывать старую игру можно только в новую обёртку, если видеокарта сама будет делать часть гемора, то никаких проблем сделать игру не будет, что там у нас самое мощное? Exolon, Zybex, R-Type.....по сути всё это одно и тоже связанное скроллингом экрана, там спрайтов то кот наплакал, а задний фон сделать не проблема, Dizzy? смешно, статическая графика с ОДНИМ двигающимся спрайтом 16x16, на диске сжатые по количеству цветов спрайты фона, распаковываем в памяти, кидаем в память карты уже с 1 байтом на пиксель........Elite, Driller, Eclipse отдельная тема для разговора, StarCraft...WarCraft....вот это уже пахнет жаренным, такой стиль на обычном спектруме не сделать, ибо ПАМЯТЬ ДЛЯ КАРТЫ УРОВНЯ НУЖНА! и спрайты только АППАРАТНЫЕ! ибо динамика и надо заниматься вычислением траекторий...Heroes of Might and Magic.....мммммммм :v2_yahoo: ....Wolf3D....пипирипипи......думат ь надо...LodeRunner....уууууу......а дендивскую Контру слабо? :)

Да можно и нужно делать видеокарту, но надо так продумать что бы это не стало SDK а было просто для ассемблера, ибо Спектрум это АССЕМБЛЕР со всеми вытекающими, и кстати, с каких пор ядро игры нельзя уместить в 16-48 кб? :) если графика в своей карте а музыка и звуки в своей карте то почему бы и нет, процу в памяти остаётся только прога.....НО. карта уровня.......думать надо :) надо какое то более простое клацанье банками.

И да, надо какой то конкретный список необходимых возможностей, при чём не только видеокарты а системы в целом, но над этим надо работать сообща :)
НУ и не забыть оценить риски..........надо ли это вообще? :v2_dizzy_snowball2:

Что в голову пришло по быстрому :)

Знахарь
02.04.2018, 23:32
к слову об аппаратных спрайтах и консольщине - это отличная штука далеко не только для консолей... А то там были бурленья о спрайтовщине как явлении чисто консольном... Между тем одно другому не мешает: Курсоры мышей, буквочек глифы и т.д. По процессору, который только управляет - так ведь так и было сделано везде где можно еще давным-давно. Потому и ставили 6502 в качестве менеджера, а не вагон совочком разгружать ))) Ну и амига, к примеру, могла повиснуть, а муз трек продолжал играть... Ничо, 68000 тогда управлялся на 7 МГц так, что не верили, уверяли, что 386 ускоренный (40мгц кажется) и с наворотами - не меньше.

Lethargeek
03.04.2018, 01:09
к слову об аппаратных спрайтах и консольщине - это отличная штука далеко не только для консолей...
это суррогат честного быстрого большого видеобуфера, слишком дорогого в 80-х
но сейчас-то у нас этого гуталина...

zx-kit
03.04.2018, 05:06
В Метеоре надо сделать 3 плоскости спековской графики с масками.
Аппаратные тайлы лучше делать для неспектрума - в компьютере Челябинск (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html).
В Метеоре оставить времянки и цвета Спектрума.
Коммутатор памяти одинаковый по схеме для обоих компьютеров - в Метеоре и Челябинске.

AzAtom
03.04.2018, 11:06
В Метеоре надо сделать 3 плоскости спековской графики с масками.
Зачем оставлять спековскую графику?

Если очень хочется, то можно синхронизировать метеор от спека, чтобы экран показывал одновременно и в зависимости от бита в плоскости маски показывается пиксель либо со спека либо с метеора. Для этого со спека берутся TTL сигналы RGBI, а у метеора может быть и 16 или 256 цветов и это будет своеобразный слой для спрайтов, а фон останется спековский. Или маской вообще можно будет выключить спековский экран и работать только с метеором. Тогда и старые игры переделать будет легче, оставив фон на стандартном экране, а спрайты покрасить и перевести на новый слой без клешинга. Будет большая гибкость и свобода для программиста.

bigral
03.04.2018, 15:26
слишком дорогого в 80-х но сейчас-то у нас этого гуталина...

Lethargeek, что с тобой? пишешь как будто первый день на этом форуме а не 10лет... или забыл уже сагу BlackCat-a о *****любстве? http://zx.clan.su/forum/7-22-1

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


В Метеоре надо сделать 3 плоскости спековской графики с масками.
Аппаратные тайлы лучше делать для неспектрума - в компьютере Челябинск (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html).
В Метеоре оставить времянки и цвета Спектрума.
Коммутатор памяти одинаковый по схеме для обоих компьютеров - в Метеоре и Челябинске.

планы жЫрные... давай-ка для начала 1 комп, и такой чтоб понравился многим, и чтоб человек 20 хотябы его сделали себе и что-то под него написали\спонсировали

Lethargeek
03.04.2018, 18:26
пишешь как будто первый день на этом форуме а не 10лет... или забыл уже сагу BlackCat-a о *****любстве?
а что не так? я как раз призываю наконец начать "мазать гуталином", а не *****м, как раньше приходилось по бедности, а потом продолжили по привычке

Nesser
03.04.2018, 22:15
Начнёмс :)

Вот как правильно и сказали - сначала надо сделать нормальный комп, то бишь материнку, а потом уже делать видеокарту в слот, корячить такую "крутую" видюху к ленинграду или пентагону нет никакого смысла, там и так уже небоскребы возведены.
Дублировать стандартный экран, есть ли смысл? он должен быть прошит намертво в плисине материнки, так как частично связан с регенерацией динамической памяти, на видеокарту синхросигналы подавать через отдельный разъём, опять же непонятки с бордюром, в нынешних реалиях он явно не нужен, значит надо делать и режим без бордюра, то есть изменять тактировки, а это пахнет принудительным введением асинхронности процессора и видеовывода.
Ни один из существующих спектрумов, или клонов, называйте как хотите, не доведён до конца, куда там про видеокарту говорить. Все обвесы в кучу собрали? нет. программно это всё поддержали? нет. какая же видеокарта если в нашем сильно любимом компьютере ВСЕГО ОДНО ПРЕРЫВАНИЕ....и то кадровое, а я вот как то лет 25 назад кидал на рынок сделанный на скорую руку коммандер с встроенным копиром (название не помню) который поддерживал дополнительное прерывание от ВГ93 по приёму байта, копировало всё прекрасно параллельно с работой программы, а делов то регистр и проводок в примитивном случае, надо ли это? уже нет, атмегу поставили и грузит она сама и с флешки и с hdd, ниче что она раз в 50 мощнее z80?

zx-kit
04.04.2018, 04:39
Дублировать стандартный экран, есть ли смысл? он должен быть прошит намертво в плисине материнки, так как частично связан с регенерацией динамической памяти, на видеокарту синхросигналы подавать через отдельный разъём,

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


опять же непонятки с бордюром, в нынешних реалиях он явно не нужен, значит надо делать и режим без бордюра, то есть изменять тактировки, а это пахнет принудительным введением асинхронности процессора и видеовывода. Надо предусмотреть 2 разрешения 256х192 и 320х240. При выводе через видоеоконвертер VGA 320x240 займет весь экран 640х480 без бордюра. Эта одна из причин такого разрешения. Тем более, если делать фон с автоматическим скроллингом, то нельзя показывать на экране все 256 строк, так как несколько строк должны быть невидимы для подрисовывания нового изображения. Внутри видеокарты оба экрана должны занимать память размером 512х256 точек. Больше 256 точек одним младшим байтом адреса адресовать сложно.

Nesser
04.04.2018, 23:49
Никакого видеоконвертера, только прямое управление монитором через VGA, благо частоты кратны PAL сигналу, в своё время из-за отсутствия монитора PC выводил изображение на обычный телевизор с SVGA карты через 155ТМ2 на вход которой подавался строчный сигнал с SVGA карты и с выхода D-триггера подавался строчный сигнал на телевизор, топорно, через строчку, но работало...посему 320x240 (640x480...мощность нужна в 4 раза больше) должно работать и по тюльпану и по VGA, то есть из VGA прекрасно делается PAL если строчную в 2 раза урезать, всё равно по Y точек как у PAL, про HDMI можно забыть ибо нет смысла, полно квадратных мониторов с низким разрешением, 50 Гц многие из них адекватно воспринимают.
Скроллинг ни как не должен влияет на видимое разрешение, это внутренняя проблема самого видеоконтроллера :) посему должен быть именно аппаратным.
Опять же, если делать разрешения больше 256, то есть 8 битной адресации, то те же самые 320 по X уже вкорячиваются только в 9 бит адреса, значит в памяти под X в любом случае будет выделятся 512 пикселей ибо кратность простота схемотехники, никаких умножителей адреса по Y нам не надо, поэтому X должен быть кратен двоичному числу, так кстати делается во всех современных видеокартах (и не очень современных), выглядит как отображение окна из памяти по координатам.
Короче, ещё куча проблем на пути к цели......и всё к старому - цели слишком расплывчаты, если затея только ради клэшинга то смысла в этом нет, и это..........за чей счёт банкет, сколько человек купят карту у которой полностью отсутствует программная поддержка? да и сколько вообще её купят? я в смысле окупаемости, должен быть спрос, а спроса что-то не видно:v2_dizzy_botan: да и если на рассыпухе то всё как то сомнительно, для тестов проще взять плату марсоход-2 или марсоход-3.
https://marsohod.org/projects
В неё даже ZX вкорячили
https://marsohod.org/projects/marsohod2/286-zx-spectrum
Для тестов
https://marsohod.org/howtostart/marsohod2

zx-kit
05.04.2018, 05:46
Никакого видеоконвертера, только прямое управление монитором через VGA, благо частоты кратны PAL сигналу, в своё время из-за отсутствия монитора PC выводил изображение на обычный телевизор с SVGA карты через 155ТМ2 на вход которой подавался строчный сигнал с SVGA карты и с выхода D-триггера подавался строчный сигнал на телевизор, топорно, через строчку, но работало...посему 320x240 (640x480...мощность нужна в 4 раза больше) должно работать и по тюльпану и по VGA, то есть из VGA прекрасно делается PAL если строчную в 2 раза урезать, всё равно по Y точек как у PAL, про HDMI можно забыть ибо нет смысла, полно квадратных мониторов с низким разрешением, 50 Гц многие из них адекватно воспринимают.

Если удвоить частоту вывода точек и строчную развертку, то вывести на VGA можно, но точки будут не квадратные. Возможен режим 640x480 66 Hz, там точки квадратные, но INT на Z80 будет 66 Hz. Если через видеоконвертер, то частота INT 50 Hz как в Спектруме, а на монитор VGA 640x480 66 Hz и точки квадратные


Скроллинг ни как не должен влияет на видимое разрешение, это внутренняя проблема самого видеоконтроллера :) посему должен быть именно аппаратным.
Опять же, если делать разрешения больше 256, то есть 8 битной адресации, то те же самые 320 по X уже вкорячиваются только в 9 бит адреса, значит в памяти под X в любом случае будет выделятся 512 пикселей ибо кратность простота схемотехники, никаких умножителей адреса по Y нам не надо, поэтому X должен быть кратен двоичному числу, так кстати делается во всех современных видеокартах (и не очень современных), выглядит как отображение окна из памяти по координатам.

Я так и планирую - внутри видеокарты 512x256 точек, а на экране видно окно 320х240 или 256х192 с аппаратным скроллингом и дорисовыванием нового изображения в невидимые области экрана.

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

Надо еще раз подумать, нужна ли совместимость со старыми играми, то есть возможность доработки, чтобы устранить клешинг и игра шла с той же частотой и звук на BEEPER-е был такой же. Это затрудняет подключение к VGA. Для упрощения подключения в режиме VGA 640x480 60 Hz with pixelclock 25.175 MHz желательно частоту точек ровно в 2 раза реже, а частотe Z80 кратно 25. Если 25, то подойдет ZS18033. Если 12.5 или 6.25, то подойдет Z80 20 MHz. При этом частота INT 60 Hz и уплывают звуки BEEPERa. Если ориентироваться только на новые игры или старые без совместимости с BEEPER-ом, то можно и такие частоты. При INT 66 Hz игра может не успевать стрить изображение за кадр при частоте Z80 3.5 MHz.

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

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

Все новое обычно отвергают. Надо еще несколько лет, чтобы нашлись желающие программировать под новые режимы. Когда делали ATM и TS не спрашивали, будет ли кто писать под них.



:v2_dizzy_botan: да и если на рассыпухе то всё как то сомнительно, для тестов проще взять плату марсоход-2

Марсоходы не подходят, так как на них память SDRAM. Надо девборду с SRAM.

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

Проще сделать свой компьютер на рассыпухе или девборду с SRAM, чем подстраиваться под ограничения старых компьютеров и девборд. Вопрос в совместимости по времянкам BEEPER-а остается. Если в доработанной старой игре иззменить скорость вывода звука, то это все испортит. Поэтому для совместимости со старыми играми должен быть Z80 3.5 MHz для BEEPER-a и INT 50 Hz для успевания построения графики. Если что-то изменить, то о совместимости можно забыть. Хотя на NEXT запускали ELITE и DRILLER на 14 и 28 MHz. При этом звук конечно был испорчен.

Можно во время проигрывания музыки, так как это ценная часть старых игр, переключать Z80 на частоту 3.5 MHz.
...

Но лучше оставить вывод RGBI с TV разверткой, а вывод на VGA через китайский или мой видеоконвертер. Тогда у компьютера будут старые хорошие игры без клешинга, а затем и новые с динамичной графикой, но похожие на старые игры ZX Spectrum-a. То есть, дух Спектрума - звук на BEEPER-е, цвета и спрайты останутся.

Nesser
05.04.2018, 20:33
Должно работать БЕЗ видеоконвертера, кому надо тот сам поставит, это не есть главное, тем более их вагон и маленькая тележка из Китая :)
128 Кб SRAM стоят столько же сколько 8 Мб SDRAM, не шаг ли в прошлое? :) чего так бояться регенерации? всё равно адресный селектор и счётчики стоят, пиксели считываются, почти готовая регенерация.
Про проблемы из-за увеличения частоты CPU, единственный выход из положения это вводить асинхронный режим работы, про биппер можно забыть, ты же не будешь оставлять звук на биппере практически полностью переделывая игру? :) а по деффолту пусть 3,5 МГц и стоит, да и это уже вопрос к DOSу, файловую систему надо менять, благо FAT32 уже не проблема, а там и прописывать конфигурацию программы.
Как я и говорил в Спектруме всего ОДНО прерывание и оно принадлежит ЭКРАНУ, то что на него повесили тактировку сэмплов так это от безысходности, нам же лень было напаять КР1533ИР23, подкинуть через триггер 15 кГц с счётчика видеоадресов, включить IM1 и установить вектор прерывания для вывода цифровых звуков, давно бы уже прижилось, а всё потому что лень было.

zx-kit
05.04.2018, 22:35
Для разных задач нужны разные компьютеры.
Для улучшения графики в хороших старых играх делаем METEOR-128 (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=953470&viewfull=1#post953470) с сохранением всех времянок.
Если звук не важен - делаем для нового компьютера CHELYABINSK (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html). Там можно сделать прямой вывод на VGA, несколько прерываний и более быстрый процессор.

zx-kit
23.01.2019, 22:48
Я вернулся. Принцип работы видеокарты "Метеор" доработан:

Параллельно стандартной памяти 48К добавляется графическая память. В графическую память запись идет сразу по 8 байтов. Каждый байт соответствует биту в основной памяти. При этом в старшие 7 битов записываются нули.

Фон рисуется как обычно в хороших цветных играх в буфер. В разных играх буфер разного размера и по разным адресам. Как только фон нарисован - копию буфера аппаратно сохраняем в дополнительном буфере.

После этого включаем режим рисования цветом PAPER. Подпрограмма вывода спрайта немного дорабатывается. Маска спрайта читается и просто пишется в буфер без команды AND. При этом вместо нулевых битов записывается 4 бита цвета PAPER в соответствующий байт новой памяти. В старшие биты записывается 0001.

После этого включаем режим рисования цветом INK. Подпрограмма вывода спрайта немного дорабатывается. Байт спрайта читается и просто пишется в буфер без команды OR. При этом вместо единичных битов записывается 4 бита цвета INK в соответствующий байт новой памяти. В старшие биты записывается 0001.

Далее готовая картинка копируется аппаратно из буфера на экран.
Затем аппаратно восстанавливается фон в буфере из ранее сохраненной копии.

При выводе на телевизор читается байт из графической памяти. Если старшие биты 0000 - цвет в старом режиме. Значит надо прочитать атрибут и цвет получить из него. Если старшие биты 0001 - цвет в новом режиме. Значит брать его из четырех младших битов графической памяти.

Таким образом можно перекрасить старые игры и устранить клешинг.

Время копирования буфера 256х192 точки составит около 1 мс. Это позволит обойтись без второго экрана. Рисуем в буфере и быстро копируем на экран.

Totem
26.01.2019, 18:38
Параллельно стандартной памяти 48К добавляется графическая память. В графическую память запись идет сразу по 8 байтов. Каждый байт соответствует биту в основном памяти. При этом в старшие 7 битов записываются нули.
Ого! это уже заявка на победу, правда примитивная и ограниченная.

Фон рисуется как обычно в хороших цветных играх в буфер
Надож, можно подумать, что монохоромные (они, на ZX ,все, по большому счету "монохорм") на экран сразу, все рисуют, не зеркалят спрайты, не генерят маски. и тд. не -чудеса да и только :v2_clap2::v2_rolley
Возми наконец эмуль с дебагером и посмотри, как изголяются в 48КБ чтоб получить приемлемый результат.

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

Затем аппаратно восстанавливается фон в буфере из ранее сохраненной копии.
еще чуть чуть и ты придумаешь windowый GDI 95 года.

Таким образом можно перекрасить старые игры и устранить клешинг.
поиметь гиморой и получить 1-3 несовместимых ни с чем игры.Поздравляю с премией дарвина ! :v2_dizzy_newspaper: будем читать и далее.
Вообще, лично я рад, что ты вернулся к теме, вот только вопросов есть, в товарных количествах
Зачем?

https://zx-pk.ru/threads/27710-zx-ulax.html?p=912847&viewfull=1#post912847

хочешь сделать свое? заведомо хуже, чем SPEC256 и тем более ULAX?
Объясни, зачем раскрашивать полностью игру или менять ее код ? Если хочется, то можно, а можно вообще не раскрашивать и не менять исходник.
http://images.vfl.ru/ii/1548530195/80eb1ba6/25124852_s.jpg (http://vfl.ru/fotos/80eb1ba625124852.html)

zx-kit
27.01.2019, 07:09
Ого! это уже заявка на победу, правда примитивная и ограниченная.

Возми наконец эмуль с дебагером и посмотри, как изголяются в 48КБ чтоб получить приемлемый результат.

Зачем ? Наверное во многих играх:

1. Долго рисуют фон в буфер.
2. Сохраняют готовый фон для восстановления.
3. Поверх фона рисуют движущиеся объекты.
4. Поверх всего рисуют передний план из столбиков, ящиков, кустов и т.п.
5. Медленно копируют готовое изображение из буфера в верхние 2/3 экрана командами LDI.
6. Восстанавливают фон в буфере для следующего кадра игры.
7. Вычисляют новое положение объектов.
8. Переходят к пункту 3.

В нижней трети экрана экрана рисуют напрямую без буфера.



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

В параллельной памяти можно будет записывать каждую точку из байта независимо от других. Не очень то и сложно убрать лишние команду чтения байта фона из буфера и команду модификации OR / AND.


Поздравляю с премией дарвина ! :v2_dizzy_newspaper: будем читать и далее.
Вообще, лично я рад, что ты вернулся к теме, вот только вопросов есть, в товарных количествах
Зачем?
хочешь сделать свое? заведомо хуже, чем SPEC256 и тем более ULAX?

Да, мне интересно сделать по-своему.


Объясни, зачем раскрашивать полностью игру или менять ее код ? Если хочется, то можно, а можно вообще не раскрашивать и не менять исходник.

Раскрашивать полностью не обязательно. Можно только устранить клешинг, рисуя спрайты одним из стандартных ZX цветов. Возможность изменить код - это плюс моего метода устранения клешинга . При желании можно оптимизировать и ускорить игру. Раньше в играх буфер копировали несколькими командами LDI. При замене программного копирования буфера на аппаратное игра станет быстрее и плавнее.

Totem
27.01.2019, 17:13
Зачем ? Наверное во многих играх:

1. Долго рисуют фон в буфер.
2. Сохраняют готовый фон для восстановления.
3. Поверх фона рисуют движущиеся объекты.
4. Поверх всего рисуют передний план из столбиков, ящиков, кустов и т.п.
5. Медленно копируют готовое изображение из буфера в верхние 2/3 экрана командами LDI.
6. Восстанавливают фон в буфере для следующего кадра игры.
7. Вычисляют новое положение объектов.
8. Переходят к пункту 3.

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


Раскрашивать полностью не обязательно. Можно только устранить клешинг, рисуя спрайты одним из стандартных ZX цветов.
Вон выше примеры, где можно делать и то, и другое и третье, в любых комбинациях. Можем еще накидать, уже готовых штук 15.


Возможность изменить код
В ULAX, тебе никто не запрещает делать модификации, как Saboteur 2, например и еще с 10ок игр, где переписаны процедуры графики.
такая модификация будет работать как на "стандартном" ZX, так и на ZX c ULAX.


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


несколькими командами LDI
СерьЁзно чтолЬ? прям все игры? :)

zx-kit
28.01.2019, 01:22
По факту, ты слабо представляешь себе, тот дикий зоопарк в коде, который реально существует на платформе. Это означает, в твоем решении, потерю универсальности и трудозатраты, сопоставимые с написанием движка целиком
и полную потерю совместимости с существующим железом. Ммм, заманчиво ходить по граблям, на минном поле и весело.


Ты будешь рад, если у меня не получится ? И не подскажешь, как доработать ?

Я ошибался, когда планировал сделать 8 слоев, аппаратный скроллинг, два экрана, 4 слоя спековской графики, три цвета на байт и т.п. методы. Они больше подходят для новых режимов, а не для устранения клешинга в старых играх.

Сейчас я все пересмотрел и выбрал достаточно простой и эффективный метод устранения клешинга. Наверно он подойдет для части игр типа TREE WEEKS IN PARDISE или DIZZY.

Totem
28.01.2019, 02:04
Ты будешь рад, если у меня не получится ?
Лично мне, скорее всего, уже будет все равно, что ты реализуешь.:v2_dizzy_doctor:
Просто, то ,что пытаешься сделать, это крошечная часть ULAX, на абсолютно примитивном уровне, без учета множества нюансов.
Можно вырезать, почти все, и все одно получить твой "метеор" и в разы проще.

Сейчас я все пересмотрел и выбрал достаточно простой и эффективный метод устранения клешинга
Плохо смотрел и плохо читал

Наверно он подойдет для части игр типа TREE WEEKS IN PARDISE или DIZZY
Наверное -не считается, за результат.
ты сам и ограничишь себя, зачем?
Настоятельно рекомендую, вкуривать- wec le mans splitscreen demo, на ночь, раза 3 или 4, просветление должно прийти. :v2_dizzy_yes::v2_laugh: я верю в тебя :v2_wink2: утром принимать Improved demo.
канал на ютубе сам найдешь?

Sayman
28.01.2019, 10:42
вставлю в очередной раз свои 5 копеек:
zst, был бы совершенно большой зачёт по всем фронтам, если бы ты сделал нормальный и адекватный вга скандаблер, для любой zx или 8 бит машины. тот вга конвертор что есть сейчас просто шляпа какая-то. нужен именно даблер, на выходе на вга 50гц кадровая и 31кгц строчная. было бы прям замечательно. а все эти потуги с метеором уже сколько лет и всё без толку. вот даблер будет очень и очень полезен.

vlad
28.01.2019, 12:20
Sayman, никакой скандаблер не заменит вам ЭЛТ монитор того времени, так что советую взять ЭЛТ и не морочить голову ТС, и так он уже 6 долгих лет никак не может сделать этот детский Метеор.

ZX_NOVOSIB
28.01.2019, 12:40
vlad, к элт-монитору нужен VGA конвертер, и желательно 100 гц.

Sayman
28.01.2019, 12:45
vlad, мне не нужен ЭЛТ монитор, мне нужен lcd монитор. у меня нет лишних глаз и места на столе для гроба ЭЛТ.

vlad
28.01.2019, 13:03
к элт-монитору нужен VGA конвертер, и желательно 100 гц.
Лет -30 вам нужно ). Тут или классика в сборе как она была, или эмуль на новом ПК, остальное - от нечем себя занять...

ZX_NOVOSIB
28.01.2019, 13:15
у меня нет лишних глаз и места на столе для гроба ЭЛТ.
Так-то элт в 100 раз более щадящий для глаз (если 100 гц). Только вот не выпускают их, в этом-то и проблема. Ну и яркость/контрастность в яркий день конечно не достаточная, но на это шторки существуют ))

Sayman
28.01.2019, 13:33
Так-то элт в 100 раз более щадящий для глаз (если 100 гц). Только вот не выпускают их, в этом-то и проблема. Ну и яркость/контрастность в яркий день конечно не достаточная, но на это шторки существуют ))
да есть у меня 2 штуки элт (митсубиши). мои глаза от них вытекают просто. да и в офисе не правильно поймут как и дома, ставить физически не где элт этот.
лучше уж скажите честно, что про элт это просто банальная отмазка, чтобы не пыхтеть над схемами очередными изобретая "велик". вы же сами понимаете, сколько в мире любителей всяких спектрумов, цпц, мсх и других таких машинок. они все будут благодарны только если такой девайс появится.

ZX_NOVOSIB
28.01.2019, 13:52
Sayman, какая отмазка? От чего? Я велики не изобретаю.

Sayman
28.01.2019, 13:56
Sayman, какая отмазка? От чего? Я велики не изобретаю.
ну ты нет, другие изобретают;)

s_kosorev
28.01.2019, 15:57
Так есть же скандаблер для zx, чем он не устраивает?

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

Sayman, https://zx-pk.ru/threads/10548-zxkit1-plata-vga-amp-pal.html?highlight=vga%26amp%3bpal

Sayman
28.01.2019, 16:14
s_kosorev, это не скандаблер, это фигня. мало того, что подключается не ко всем машинам zx, она ещё и не ко всем 8 бит машинам в целом не подключаема. даже на профике не может палитру передать. соответственно, всякие ula+ и им подобные машины просто мимо. а уж про спринтера, с его 256 цветами на экране можно даже не думать.

solegstar
28.01.2019, 16:20
даже на профике не может палитру передать.
если делать новый девайс, то нужно - заменить плис, увеличить обьем памяти, модифицировать прошивку. пока на уровне экспериментов (https://zx-pk.ru/threads/28893-variant-vga-konvertera-ot-zst-s-podderzhkoj-palitry.html), но что-то получалось.

Sayman
28.01.2019, 16:38
вооо, ещё тут нужно добавить то, что кроме ргб и синхры ещё какие-то сигналы нужны. т.е просто взять компоненты с синхрой с "видеовыхлопа" видимо не получается у этого изделия. таким образом круг машин с которыми девайс смог бы поработать сильно сокращается.

s_kosorev
28.01.2019, 18:56
это не скандаблер, это фигня. мало того, что подключается не ко всем машинам zx, она ещё и не ко всем 8 бит машинам в целом не подключаема. даже на профике не может палитру передать. соответственно, всякие ula+ и им подобные машины просто мимо. а уж про спринтера, с его 256 цветами на экране можно даже не думать
Конвертер для zx, если тебе нужен универсальный так и пиши, этого добра хватает https://www.amazon.co.uk/slp/scart-to-hdmi-converter/7neumtfyxgy89a2

Sayman
28.01.2019, 19:15
s_kosorev, если бы эти конверторы были все такие прям скандаблеры для 8ми битных машин, на форумах никто бы не клянчил эти самые скандаблеры. а по итогу даже atm 2+ к конвертору вга не подключить из-за атмовской палитры. один вот видео конвертор ещё нужно протестить, но пока боязно - купить его не проблема, но будет ли он показывать то что нужно и как нужно...

s_kosorev
28.01.2019, 20:59
Ну ты определись, если для восьмибиток, то лезть внутрь и брать синхронизацию, если для атм, в чем пробоема? Нет аналогового выхода для телевизора?

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

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

bigral
28.01.2019, 21:03
ладно не хотел лезть в срач, но раз в теме активных единицы выскажусь, ulax и spec256 это фуфло из той же серии что zx next, так что это никакое не ретро, а значит логично будет не сравнивать новодельное железо в стиле ретро с фуфлом а посылать нахер и отсылать лечится в психушку тех кто таким синдромом страдает, новая карта по предложенной схеме будет тормозной и непривлекательной - нужен уровень v9958 и не ниже (хорошее сравнение это игра goody opera soft есть версия для CPC, MS-DOS(cga), ZX, MSX и MSX2...), скандаблеры это вообще offtop которому целый раздел нужен а не обсуждение в этой ветке

Sayman
28.01.2019, 21:12
s_kosorev, мы видимо о разном говорим. во1х. причём тут телевизор и вга конвертор (скандаблер). во2х, у меня нет телевизора (ну его нафих). в3х, я не пользуюсь элт телевизорами и мониторами больше 10 лет и возвращаться к ним нет никакого желания. в4х, атм я привёл для примера. так то у меня спринтер (который жиж зажал в ремонте на весьма приличное время). про атм я говорил в том ключе, что имея "местный" вга конвертор подключить через него атм к вга монитору не выйдет, т.к. этот вга конвертор не умеет в палитру (и судя по отзывам он очень печально работает в целом). атм, профи и спринтер хорошие примеры того, что через этот конвертор нельзя подключить много чего из 8ми битных машин.
есть альтернативные решения в виде гобенса, но он 60гц со всеми вытекающими проблемами. есть ещё не опробованный мной scart hdmi конвертор, но есть опасения, что с ним тоже может быть не всё хорошо.
опять таки я не понял, что за девборды и зачем они мне нужны, если я говорю про что. что было бы хорошо запилить железячникам нормальный скандаблер, который не только спектрум (48/128) сможет, но и другие его клоны (включая всякие расширенные с палитрами и графиками), но и другие ретро 8 бит машинки (тот же цпц, мсх к примеру). а ты мне про девборду говоришь. я не железячник, для меня это будет как кетайская грамота.
ну и поскольку метеору всё ровно не быть ещё очень долго (может и вообще никогда), то все потуги связанные с ним лучше направить в более полезное русло.
а та пачка конверторов, что ты выше привёл, почти все бесполезны в этом деле, кроме одного - scart hdmi video converter, который ещё предстоит протестить.

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

vlad
28.01.2019, 22:43
ладно не хотел лезть в срач, но раз в теме активных единицы выскажусь, ulax и spec256 это фуфло из той же серии что zx next, так что это никакое не ретро, а значит логично будет не сравнивать новодельное железо в стиле ретро с фуфлом а посылать нахер и отсылать лечится в психушку тех кто таким синдромом страдает, новая карта по предложенной схеме будет тормозной и непривлекательной - нужен уровень v9958 и не ниже (хорошее сравнение это игра goody opera soft есть версия для CPC, MS-DOS(cga), ZX, MSX и MSX2...), скандаблеры это вообще offtop которому целый раздел нужен а не обсуждение в этой ветке
Чувак, ты хоть читаешь, что там твои пальцы набирают? )

s_kosorev
28.01.2019, 23:46
Sayman, почитай внимательно, конвертор скарт в hdmi, все что подключается к телевизору по скарт, можно через этот переходник подключить к монитору

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

А на девборде я проверял такой переходник, давал на вход развертку nes с тестовой картинкой и смотрел на результат

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

Сначала читай, не понадобится писать полотна

Lethargeek
29.01.2019, 01:51
bigral, ты слово "ретро" слишком узко, слишком уж по-своему понимаешь
тогда как ретрогейминг, он и в Африке под эмулятором ретрогейминг

Sayman
29.01.2019, 04:02
конвертор скарт в hdmi, все что подключается к телевизору по скарт, можно через этот переходник подключить к монитору
вот тут (https://zx-pk.ru/threads/21795-kitajskij-universalnyj-konverter-video/page26.html)пишут, что не всё:

С УКНЦ девайс не очень "взлетел" - обрезает картинку сверху и справа (возможно и снизу).

Я когда АТМ подключал у меня тоже резал в одном из разрешений то ли справа, то ли слева.
поэтому возникает подозрение, что далеко не каждый девайс на нём взлетит.

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

CLR
29.01.2019, 08:52
Вот прямо сейчас подключил zxkit1 к Профи 4.0. Картинка яркая, четкая. Есть некоторое незначительное шевеление пикселов в нескольких местах, наверняка это можно задавить экранами-буферами, но лично мне это не существенно. Картинка и так отличная. Что там не нравится - непонятно. Возможно, разные мониторы интерпретируют сигнал несколько по-разному, вот и режутся картинки кое-где. Тут надо индивидуально разбираться, подозреваю либо в мониторе пиксельклок накручивать если есть, либо синхру притормаживать через несколько инверторов, хз. Экспериментально.

Максагор
29.01.2019, 13:05
Я вставлю свои пять копеек:

Вот в этой и некоторых других темах пишут про разные разработки графических карт - у кого-то готово, у кого-то совсем готово. Народ! Если кто-то сваял карточку, запишите видео работы с ней, прям "вот вставляю в слот", "вот включаю". Вот так инициализирую". А вот так получаем эффект". "А это дема моей разработки, демонстрирующая навороты".

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

s_kosorev
29.01.2019, 13:21
поэтому возникает подозрение, что далеко не каждый девайс на нём взлетит.
так может твой взлетит а на самодельном не взлетит, что дальше?

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

У китайцев доступ к технологиям на пару порядков покруче, то что делается в кремнии, на fpga можно и вовосе не сделать, особенно что касается подстройки под клок хоста, для борьбы с разного рода муарами и дрожаниями, это сложная тема

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

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

Sayman
29.01.2019, 13:48
Вот прямо сейчас подключил zxkit1 к Профи 4.0.
прекрасно! без шуток. Как быть обладателям Профи 5.х (особенно новоделам), у которых есть ещё и включаемая палитра? этот кит не отображает палитры. об этом автор неоднократно говорил.

CLR
29.01.2019, 14:38
Как быть обладателям Профи 5.х (особенно новоделам), у которых есть ещё и включаемая палитра?

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

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

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

Totem
01.02.2019, 23:16
Я вставлю свои пять копеек:

Вот в этой и некоторых других темах пишут про разные разработки графических карт - у кого-то готово, у кого-то совсем готово. Народ! Если кто-то сваял карточку, запишите видео работы с ней, прям "вот вставляю в слот", "вот включаю". Вот так инициализирую". А вот так получаем эффект". "А это дема моей разработки, демонстрирующая навороты".

Пока я здесь ни одной такой ссылки на видосики не видел. Хотя если они есть, а я просто проглядел, тогда прошу извинить и продублировать ссылки тут.
Пропустил шикарный комментарий.
У народа четкое понимание, что тролинг уместен тут, и ему ничего за это не будет, но разницы между между концептом, от эмулятора, до воплощения в железе и продуктом готовым к употреблению не различает, давать прямые ссылки, дурной тон, в чужой теме, только виселый срач:)
я лишь пытаюсь объяснить, ZST, что все нюансы со SPEC256, учтены и реализованы и все, что есть под него, можно перенести в наш концепт (обратная совместимость, увы частичная, но возможная ), а видео работы базового варианта в железе, вызовет только еще один "троль бахтер", задавайте вопросы в профильной теме,
в Концепциях найти ее не сложно :) если интересно, обсуждаем там. Нужны примеры еще? выложим. конкретная игра- обсудим, займитесь минимумом озвученным на 1 странице будет легче :) нам с адаптациями, конечно если интересно.:)

jil2
05.02.2019, 14:04
Я вернулся. Принцип работы видеокарты "Метеор" доработан:

Параллельно стандартной памяти 48К добавляется графическая память. В графическую память запись идет сразу по 8 байтов. Каждый байт соответствует биту в основной памяти. При этом в старшие 7 битов записываются нули.

Фон рисуется как обычно в хороших цветных играх в буфер. В разных играх буфер разного размера и по разным адресам. Как только фон нарисован - копию буфера аппаратно сохраняем в дополнительном буфере.

После этого включаем режим рисования цветом PAPER. Подпрограмма вывода спрайта немного дорабатывается. Маска спрайта читается и просто пишется в буфер без команды AND. При этом вместо нулевых битов записывается 4 бита цвета PAPER в соответствующий байт новой памяти. В старшие биты записывается 0001.

После этого включаем режим рисования цветом INK. Подпрограмма вывода спрайта немного дорабатывается. Байт спрайта читается и просто пишется в буфер без команды OR. При этом вместо единичных битов записывается 4 бита цвета INK в соответствующий байт новой памяти. В старшие биты записывается 0001.

Далее готовая картинка копируется аппаратно из буфера на экран.
Затем аппаратно восстанавливается фон в буфере из ранее сохраненной копии.

При выводе на телевизор читается байт из графической памяти. Если старшие биты 0000 - цвет в старом режиме. Значит надо прочитать атрибут и цвет получить из него. Если старшие биты 0001 - цвет в новом режиме. Значит брать его из четырех младших битов графической памяти.

Таким образом можно перекрасить старые игры и устранить клешинг.

Время копирования буфера 256х192 точки составит около 1 мс. Это позволит обойтись без второго экрана. Рисуем в буфере и быстро копируем на экран.



Вадим добрый день.

25 августа 2018 года я вам перевел 10500 рублей за Ленинград 2012. С тех пор, сколько я вам писал на почту, вайбер и пытался звонить - вы мне ответили 1 раз в начале ноябра 2018 года, о том, что продолжите работы. На дворе уже стоит февраль 2019 и от вас ни слуху ни духу.
Не очень красиво получается. Вы по срокам давали месяц на все работы. Уже скоро будет как пол года. Если у вас по каким-то причинам не получается собрать Ленинград - верните пожалуйста деньги.

Евгений.

zx-kit
05.02.2019, 15:09
Вадим добрый день.

25 августа 2018 года я вам перевел 10500 рублей за Ленинград 2012. С тех пор, сколько я вам писал на почту, вайбер и пытался звонить - вы мне ответили 1 раз в начале ноябра 2018 года, о том, что продолжите работы. На дворе уже стоит февраль 2019 и от вас ни слуху ни духу.
Не очень красиво получается. Вы по срокам давали месяц на все работы. Уже скоро будет как пол года. Если у вас по каким-то причинам не получается собрать Ленинград - верните пожалуйста деньги.

Евгений.

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

Кому заказы не были отправлены - напишите в личку данные заказа и доставки. Все заказы будут доделаны и отправлены.

zx-kit
05.06.2019, 05:25
Сайт некоторое время не работал, не отправлял сообщения. Сорвалось несколько заказов. Зато есть скомплектованные конструкторы LENINGRAD-2012, Speccy2010 в корпусе и KEYB&SINC. Отправка будет быстрой на этот раз, если кто желает приобрести. Сейчас обновлен старый движок.

Обновления по концепции Метеора:

Для устранения клешинга и возможности раскрашивать старые игры параллельно основной памяти 48К надо установить графическую память. В ней на каждый бит основной памяти будет 8 битов графической памяти. Останется возможность запуска старых игр. В режиме 0 запись бита приведет к записи в графическую память числа 1111 111x. Семь единиц - признак стандартного режима.

При записи в новом графическом режиме в байт будет записываться число 0000 xxxx. То есть появится возможность записать независимо цвет каждой точки. Цвета стандартные 15 шт. Вся память имеет параллельную графическую память, а не только экран, поэтому можно рисовать сразу на экране или сначала в буфере, а затем копировать на экран. Но для копирования буфера на экран надо сделать блиттер, который будет работать с графической памятью на частоте 14 MHz.

Для адресования новых портов видеокарты Метеор надо будет сделать параллельную страницу портов, которая будет подключаться записью числа в порт FF. Тогда можно будет новых портов сделать сколько угодно.

Reobne
07.06.2019, 08:43
записью числа в порт FF
Ты так пишешь, будто бы уверен, что ни одна программа до настоящего времени, никогда не писала в порт FF.
А между тем, мне встречались программы, пишущие в этот порт.
Они, как я понял, для специфического клона были.

Raydac
07.06.2019, 08:58
В ней на каждый бит основной памяти будет 8 битов графической памяти.
клон spec256?

zx-kit
07.06.2019, 17:21
Ты так пишешь, будто бы уверен, что ни одна программа до настоящего времени, никогда не писала в порт FF.
А между тем, мне встречались программы, пишущие в этот порт.
Они, как я понял, для специфического клона были.
Есть другой лучший адрес ?

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


клон spec256?
Для начала достаточно 15 цветов. Другие клоны и видеокарты изучать некогда и не интересно. Мне интересно изобретать свои велосипеды.

Lethargeek
07.06.2019, 18:22
клон spec256?
скорей, позапрошлогодний черновой набросок недоюлакса (только, как всегда, еще не пойми зачем искусственно урезанный и ухудшенный)))

shurik-ua
07.06.2019, 18:55
Я вставлю свои пять копеек:

Вот в этой и некоторых других темах пишут про разные разработки графических карт - у кого-то готово, у кого-то совсем готово. Народ! Если кто-то сваял карточку, запишите видео работы с ней, прям "вот вставляю в слот", "вот включаю". Вот так инициализирую". А вот так получаем эффект". "А это дема моей разработки, демонстрирующая навороты".

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

zx-pk.ru/threads/15176-ipvc-graficheskij-kontroller-dlya-zx-bus.html


https://www.youtube.com/watch?v=sf-nOdJdcwk

zx-kit
09.06.2019, 17:19
Как устранить клешинг я придумал, но спрайты могут получиться только одного цвета. Как же дорабатывать игры, чтобы была возможность каждый спрайт рисовать своим цветом ?

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

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

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

Команды выбора цвета спрайта - это запись атрибута в порт атрибута. Надо будет для каждого объекта сделать свою команду записи атрибута со своими цветами PAPER и INK. Если объектов много, то надо где-то найти свободное место в игре для модернизации. Или придется в компьютер МETEOR-64 добавить возможность включать блок ОЗУ вместо ПЗУ на время рисования спрайтов.

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

Если загружать в теневое ОЗУ блок команд для модернизации игры, то это можно использовать как типовое решение во всех играх и не искать свободное место в игре.

Raydac
09.06.2019, 20:16
вобщем получается что надо будет разобрать игру и переписать её с поддержкой нового графического устройства, фактическа как переписать под другой комп на z80, вряядли кто возьмется, со спринтером проходили

zx-kit
10.06.2019, 04:01
Да сложность примерно как для ULAX. Они же переделали. Только в ULAX цвета для каждого спрайта меняет FPGA, а для МЕТЕОРа надо это прописать в специальных командах. Хотя в ULAX тоже надо это где-то указывать. Но они молодцы - показали, что разобрать и доработать старую игру - это реально и не трудно.

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

Для начала в конце подпрограммы вывода спрайта можно записать в порт атрибута PAPER = 0, INK = 7, BRIGHT = 1. Тогда все спрайты, для которых не выбраны индивидуальные цвета будут рисоваться без клешинга ярко-белым цветом. Потом некоторые спрайты можно перекрасить, если захочется.

zx-kit
10.06.2019, 15:06
Видеокарта постепенно по сложности превратилась в компьютер. Остается уточнить для желающих приобрести, какие навороты необходимы и достаточны для нового компьютера ?

bigral
11.06.2019, 15:22
Видеокарта постепенно по сложности превратилась в компьютер. Остается уточнить для желающих приобрести, какие навороты необходимы и достаточны для нового компьютера ?

упорно лепишь амстрад или специалист... и там и там проблема в скорости процессора\памяти, для такого экрана нужен самый быстрый проц какой только возможно, т.е. делай ассинхронный доступ видеоконтроллера и процессора к памяти, тогда процессор на максимальной частоте это 20mhz для z80, ну и память для проца должна будет обеспечить поток под 7mhz... при этом видео-контроллер будет выгребать тоже со скорость 7mhz видимо... и того память надо уже статику (dram 60ns... мало шансов сделать устойчиво рабочим). По возможностям комп будет примерно как atari st... - интерес к нему будет чуть больше 0.

Cooper
11.06.2019, 15:47
Сорвалось несколько заказов.

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

zx-kit
11.06.2019, 20:44
упорно лепишь амстрад или специалист... и там и там проблема в скорости процессора\памяти, для такого экрана нужен самый быстрый проц какой только возможно, т.е. делай ассинхронный доступ видеоконтроллера и процессора к памяти, тогда процессор на максимальной частоте это 20mhz для z80, ну и память для проца должна будет обеспечить поток под 7mhz... при этом видео-контроллер будет выгребать тоже со скорость 7mhz видимо... и того память надо уже статику (dram 60ns... мало шансов сделать устойчиво рабочим). По возможностям комп будет примерно как atari st... - интерес к нему будет чуть больше 0.

В Орионе и Специалисте был медленный проц. Если согласен на статику, то можно сделать Z80 на 14 MHz.

Идея такая - делаем новый комп, заточенный под графику. Он кроме стандартного режима графики будет иметь дополнительный. Оба на частоте 3.5 MHz. В новом режиме мы сначала, используя байт маски, рисуем черный силуэт спрайта. Маска меняет цвет точек выборочно. Потом, используя байт спрайта, рисуем контур спрайта выбранным цветом. Тоже цвет точек меняется выборочно. Этот режим для раскрашивания старых игр.

Если для новых или портирования с других компьютеров, то лучше сделать буфер для подготовки следующего экрана с адреса 0 вместо ПЗУ. При этом адресацию надо сделать линейную как в Орионе и Специалисте. Это позволит рисовать спрайты блочными командами. Спрайты располагать также с линейной адресацией. Тогда первый столбик спрайта шириной 8 точек мы сможем нарисовать сверху-вниз командой LDIR, затем переместить адреса HL и DE вправо с помощью команд INC H, INC D и рисовать второй столбик снизу-вверх командой LDDR.

Ну и скорость для новых игр можно переключить на TURBO 14 MHz.

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


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

Написал на email.

zx-kit
12.06.2019, 13:52
Да, я сделал это ! Я написал 1000-е сообщение в теме про "METEOR" !