PDA

Просмотр полной версии : ULA++ или новые режимы управления цветами спектрумовского экрана.



Spectramine
28.08.2017, 15:16
Новый режим управления палитрами экрана (ULANext) окончательно добавлен в спеки на сайте.
Режим позволяет использовать до 256 цветов одновременно, задавать кастомный формат атрибута варьируя кол-во бит для INK и PAPER через порт управления. Поддерживается Flash мерцание.

Пример режима с 256 INK.
62104

Раз пошла такая пьянка, выложу свои старые мысли по поводу расширения ULA. Если сочтёте нужным, доведите их до разработчиков Next.

Основная идея - задавать программно свою пару цветов INK/PAPER для каждого значения байта атрибута (0..255). Таким образом:
1) одновременно на экране может отображаться уже не 64 цвета максимум, как в ULA+, а целых 512 (256 возможных атрибутов по 2 цвета в каждом)!
2) так можно увеличить количество отображаемых цветов в уже написанных играх
3) соответственно, разрабатывая новые игры, можно делать их гораздо более цветными, при этом сохраняя обратную совместимость с оригинальными машинами, что в варианте ULA+ невозможно, т.к. использование битов FLash/bright приведёт к цветовой какофонии.


Но это не всё. Мы можем не ограничиваться одной палитрой на 256 атрибутов, а сделать N палитр, в каждой из которых определены свои цвета для каждого атрибута. И сделать возможным их переключение не только программно, но и автоматически, переходя на следующую палитру после вывода строки экрана. Таким образом, мы получаем аппаратный мультиколор в новой ULA, и отображаем уже не 512, а 512*N цветов, где N - количество палитр. Восьми палитр уже достаточно, чтобы делать мультиколорные спрайты и тайлы, а больше может понадобиться только для особо навороченных спецэффектов.

При этом мы имеем на экране для 8 палитр, автоматически сменяющих друг друга построчно, до 4096 цветов, программно работая всё с тем же 6144 + 768 экраном.


Для такого режима управления цветами надо предусмотреть возможность пакетного задания цветов для атрибутов (номер определяемого атрибута автоматически инкрементируется после задания цветов).


Глубина цвета для данного режима обсуждаема, в принципе, можно сделать её программно переключаемой - 12/16/24 бита на цвет, или остановиться на одной.

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

Также обсуждаема и программная модель задания и переключения палитр.




Если кто ещё не понял, в чем суть предлагаемого мной режима.

Задание пары цветов текущей палитры для некоторого атрибута:
LD A, значение атрибута (0..255)
OUT (ПортНомераАтрибута),A
LD A, цвет INK
OUT (ПортЗаданияЦвета),A
LD A, цвет PAPER
OUT (ПортЗаданияЦвета),A

Это для глубины цвета в 8 бит, для большей количество выводов в порт задания цвета соответственно увеличивается. Вывод в порт задания цвета автоматически инкрементирует указатель байта в палитре атрибутов, соответственно, можно использовать команды блочного вывода в порт для задания палитры.

NEO SPECTRUMAN
28.08.2017, 17:04
Основная идея - задавать программно свою пару цветов INK/PAPER для каждого значения байта атрибута (0..255). Таким образом:
1) одновременно на экране может отображаться уже не 64 цвета максимум, как в ULA+, а целых 512 (256 возможных атрибутов по 2 цвета в каждом)!
2) так можно увеличить количество отображаемых цветов в уже написанных играх
Да для статичных картинок это даст 512 цветов на экране
И в играх с всегда черным(или другим) фоном это прокатит

но когда нужно будет разнообразие цветов в знакоместе
во время игрового процесса
все эти 512 цветов сильно просядут в сторону 64

+еще нужно будет продумывать а какие комбинации цветов могут получится и уже заняты
какие комбинации свободные
нужно будет более жесткое тестирование (а не вылазят ли где то ВНЕЗАПНО артефакты)
это куча дополнительной головной боли короче


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

а в некоторых случаях может оказаться что и палитра АТМ-а будет максимальное что можно применить

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


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

конечно тоже интересная идея из разряда велосипедов и полезная для написания новых игр но...

можно даже будет залить экран 18х14 знакомест 144х112
сплошным 16с\256с\16777216с

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


Но это не всё. Мы можем не ограничиваться одной палитрой на 256 атрибутов, а сделать N палитр, в каждой из которых определены свои цвета для каждого атрибута. И сделать возможным их переключение не только программно, но и автоматически, переходя на следующую палитру после вывода строки экрана.
А это уже из разряда а что бы еще такое придумать и запихнуть.
скорей дальше эмулятора это не пойдет.
разрабатывать под это будет...
при этом толку от такого девайса мало
пригодится только для игр со спрайтами с дискретностью перемещения в 8 пикселей
или для создания градиентов на фоне аля Атари 2600

shurik-ua
28.08.2017, 17:10
лучше всё таки не наплодить стандартов - что большинство выберет то и оставить
p.s. или наоборот челлендж устроить - "А ты запилил уже ULA (7 плюсов)" ))

Spectramine
28.08.2017, 17:18
Да для статичных картинок это даст 512 цветов на экране
И в играх с всегда черным(или другим) фоном это прокатит

но когда нужно будет разнообразие цветов в знакоместе
во время игрового процесса
все эти 512 цветов сильно просядут в сторону 64
Разнообразия цветов в знакоместе без смены палитр не будет, будет по-прежнему 2 цвета на знакоместо. Мы только подменяем оригинальные цвета атрибута на свои. Так что в игре с одним фоном скорее будет меньше цветов, чем больше.


+еще нужно будет продумывать а какие комбинации цветов могут получится и уже заняты
какие комбинации свободные
нужно будет более жесткое тестирование (а не вылазят ли где то ВНЕЗАПНО артефакты)
это куча дополнительной головной боли короче

Комбинации цветов получатся те, которые мы явно зададим. (Можно для разных атрибутов задать одинаковые пары цветов, например.)
Какие могут вылезти артефакты? Какая именно дополнительная головная боль?




для уже написанных игр это особо и не даст прибавление цветов (кроме тех что с фоном одного цвета)
Да, для написанных игр особо не даст, т.к. большинство написано под один paper с разными ink, соответственно, используемых атрибутов немного. Но всё равно потенциально даст больше цветов, чем ULA+.



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

А мой вариант -
1) проще в программировании цветов: не надо заморачиваться с 4 палитрами атрибутов - задаешь явно цвета INK|PAPER для каждого атрибута, и всё. Причем можно задавать их выборочно.
2) при этом дает больше одновременно цветов на экране даже для старых игр. Количество цветов = количеству используемых игрой атрибутов *2.
3) с использованием автоматически сменяемых палитр даёт возможность простого программирования мультиколорных игр и эффектов.

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


лучше всё таки не наплодить стандартов - что большинство выберет то и оставить
p.s. или наоборот челлендж устроить - "А ты запилил уже ULA (7 плюсов)" ))

Дык пока что стандарты в процессе обсуждения, вроде как. Да и я предлагаю не стандарт, а идею. Моё дело - предложить.

NEO SPECTRUMAN
28.08.2017, 17:19
поддержанный хотя бы эмуляторами.
Он давным давно поддержанный разным железом разной степени "железности"

Spectramine
28.08.2017, 17:25
А это уже из разряда а что бы еще такое придумать и запихнуть.
скорей дальше эмулятора это не пойдет.
разрабатывать под это будет...
при этом толку от такого девайса мало
пригодится только для игр со спрайтами с дискретностью перемещения в 8 пикселей
или для создания градиентов на фоне аля Атари 2600

Это идея аппаратного мультиколора без дополнительной экранной области. Если нужен мультиколор - полезная идея. Позволяет освободить проц от манипуляций с экранами и атрибутами для создания мультиколора. Пригодна она для всего, для чего пригоден мультиколор.

NEO SPECTRUMAN
28.08.2017, 17:26
поддержанный хотя бы эмуляторами.
Он давным давно поддержанный разным железом разной степени "железности"


Комбинации цветов получатся те, которые мы явно зададим. (Можно для разных атрибутов задать одинаковые пары цветов, например.)
Какие могут вылезти артефакты? Какая именно дополнительная головная боль?

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

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

в конечном итоге ты чтонибудь пропустишь
и при наступании где нибудь на травинку все знакоместо ВНЕЗАПНО зальется черным...

...есное дело это всплывет уже после релиза

Spectramine
28.08.2017, 17:28
Он давным давно поддержанный разным железом разной степени "железности"

Я не в курсе, на WoS форуме в качестве примера привели только Vega, ZX-Uno и TBBlue. Я не против ULA+, какой-никакой, а стандарт, просто сейчас встал вопрос о его вынужденной замене в Next.

NEO SPECTRUMAN
28.08.2017, 17:34
Это идея аппаратного мультиколора без дополнительной экранной области. Если нужен мультиколор - полезная идея. Позволяет освободить проц от манипуляций с экранами и атрибутами для создания мультиколора. Пригодна она для всего, для чего пригоден мультиколор.
ты предлагаешь 192 палитры?

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


Я не в курсе, на WoS форуме в качестве примера привели только Vega, ZX-Uno и TBBlue. Я не против ULA+, какой-никакой, а стандарт, просто сейчас встал вопрос о его вынужденной замене в Next.
Пентева не?
http://zx-pk.ru/threads/23825-ulaplus-na-zx-evo.html
итд
http://zx-pk.ru/threads/16312-leningrad-2010-sborka-naladka-rasshirenie.html?p=445085&viewfull=1#post445085

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


Vega, ZX-Uno и TBBlue.
У буржуев оно уже все было вжелезе за 10 лет до этих новоделов

Spectramine
28.08.2017, 17:35
Он давным давно поддержанный разным железом разной степени "железности"



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

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

в конечном итоге ты чтонибудь пропустишь
и при наступании где нибудь на травинку все знакоместо ВНЕЗАПНО зальется черным...

...есное дело это всплывет уже после релиза

Для спрайта нельзя выбрать отдельный цвет ink. Вообще нельзя выбрать отдельный цвет ink (и paper). Мы, как и прежде, имеем дело с атрибутами экранной области. Только для каждого значения байта атрибута (0-255) мы можем задать пару цветов ink/paper независимо от других атрибутов. То есть все проблемы атрибутов - клешинг и т.п. остаются теми же. Мы просто расширяем диапазон используемых атрибутами цветов до 512.

NEO SPECTRUMAN
28.08.2017, 17:39
Для спрайта нельзя выбрать отдельный цвет ink. Вообще нельзя выбрать отдельный цвет ink (и paper). Мы, как и прежде, имеем дело с атрибутами экранной области. Только для каждого значения байта атрибута (0-255) мы можем задать пару цветов ink/paper независимо от других атрибутов. То есть все проблемы атрибутов - клешинг и т.п. остаются теми же. Мы просто расширяем диапазон используемых атрибутами цветов до 512.
у тебя спрайт одного цвета должен бегать по разному paper-у
Я ГАРАНТИРУЮ что будет куча головной боли (когда 256 комбинаций начнут подходить к концу)

Spectramine
28.08.2017, 17:42
ты предлагаешь 192 палитры? Я предлагаю 8 палитр, по одной на строку ряда знакомест, циклически сменяемых. Больше не вижу смысла (и уж явно не по палитре на строку экрана).


Пентева не? Пентева так пентева.


У буржуев оно уже все было вжелезе за 10 лет до этих новоделов

Пруф?

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


у тебя спрайт одного цвета должен бегать по разному paper-у
Я ГАРАНТИРУЮ что будет куча головной боли (когда 256 комбинаций начнут подходить к концу)

Ну так сделать для всех paper, по которым бегают спрайты, один и тот же цвет ink. Также, как у оригинала.

NEO SPECTRUMAN
28.08.2017, 17:49
Пруф?
Оно у них было в каком то клоне на ФПГА
щас не могу найти

щас самое раннее что попадается
http://www.probosci.de/zxbada/fpga/
тут ула+ прикручена с 2011 года

а может это оно и было?

Еще нашел упоминание zx конфы для V6Z80P
в районе 2011
http://zx-pk.ru/threads/16427-tochnyj-emulyator-zx-spectrum-48-dlya-v6z80p.html
самое интересное что там вообще называют его эмулятором))))
а не то что НОВЫМ СТАНДАРТОМ

http://foro.speccy.org/viewtopic.php?f=8&t=2588&p=26418#p26418

Spectramine
28.08.2017, 18:04
Оно у них было в каком то клоне на ФПГА
щас не могу найти

щас самое раннее что попадается
http://www.probosci.de/zxbada/fpga/
тут ула+ прикручена с 2011 года

а может это оно и было?

Еще нашел упоминание zx конфы для V6Z80P
в районе 2011
http://zx-pk.ru/threads/16427-tochnyj-emulyator-zx-spectrum-48-dlya-v6z80p.html
самое интересное что там вообще называют его эмулятором))))
а не то что НОВЫМ СТАНДАРТОМ


Всё же не за 10 лет, а за 3 года до Веги. Опять же - я не против ULA+, как минимум, под неё уже написано много софта. Я предполагал свою идею изначально расширением ULA+, потом решил, что особой необходимости в таком расширении нет. А сейчас, раз уж ULA+ в Next зарубили, решил поделиться мыслями.

NEO SPECTRUMAN
28.08.2017, 18:08
Всё же не за 10 лет,
не
не 10 точно
это я утрировал
в смысле несколько раньше чем

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

Не могу найти какого года вега
zx uno уже был в 13-м

Lethargeek
28.08.2017, 21:57
доведите их до разработчиков Next.

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

drbars
29.08.2017, 10:17
В нексте уже реализована идея выбора кол-ва бит между paper'ом и ink'ом. Палитра хранится в памяти FPGA и её можно быстро менять, как целиком, так и отдельно взятый цвет (группу цветов) изменяя значение порта Index.

Режимы следующие:
2 INK / 127 PAPER (маска 00000001)
4 INK / 64 PAPER (маска 00000011)
8 INK / 32 PAPER (маска 00000111)
16 INK / 16 PAPER (маска 00001111)
32 INK / 8 PAPER (маска 00011111)
64 INK / 4 PAPER (маска 00111111)
128 INK / 2 PAPER (маска 01111111)
256 INK / 1 PAPER (маска 11111111)

Включенный бит маски сооветствует INK, выключенный PAPER.

Формат палитры 256 байт RRRGGGBB формата.
INK задаётся по индексу +0
PAPER по индексу +128

Spectramine
29.08.2017, 12:49
в нехте спрайты какбэ уже запилены, это был бы дубль, и более неудобный

Да, это лишний изврат.

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


В нексте уже реализована идея выбора кол-ва бит между paper'ом и ink'ом. Палитра хранится в памяти FPGA и её можно быстро менять, как целиком, так и отдельно взятый цвет (группу цветов) изменяя значение порта Index.

Режимы следующие:
2 INK / 127 PAPER (маска 00000001)
4 INK / 64 PAPER (маска 00000011)
8 INK / 32 PAPER (маска 00000111)
16 INK / 16 PAPER (маска 00001111)
32 INK / 8 PAPER (маска 00011111)
64 INK / 4 PAPER (маска 00111111)
128 INK / 2 PAPER (маска 01111111)
256 INK / 1 PAPER (маска 11111111)

Включенный бит маски сооветствует INK, выключенный PAPER.

Формат палитры 256 байт RRRGGGBB формата.
INK задаётся по индексу +0
PAPER по индексу +128

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

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

drbars
29.08.2017, 13:03
нельзя совместимые режимы с ULA+ поддеживать, т.к. это будет посути тот же ULA+ только доработанный.

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


В частности, ваш режим не дает возможность писать игры параллельно под старые компьютеры, и под Next.
Почему на даёт? Dizzy будет работать и на классике и на Next.

Spectramine
29.08.2017, 13:41
нельзя совместимые режимы с ULA+ поддеживать, т.к. это будет посути тот же ULA+ только доработанный.

Мой режим основан на совершенно ином принципе, чем ULA+. Им можно закодировать цвета, которые использует игра с ULA+, но можно закодировать и другие цвета. Он не совместим с ULA+ программно, он может повторить ULA плюс расцветку конкретной игры, но своим, отличным от ULA+ способом. Не думаю, что это можно назвать доработанным ULA+.




Почему на даёт? Dizzy будет работать и на классике и на Next.

Потому что формат атрибутов отличается. Как атрибуты вашего режима лягут на атрибуты стандартного режима атрибутов спектрума? Будет цветовая неразбериха. Останется только выводить разные атрибуты для стандартного и вашего режима атрибутов. Либо ограничиваться режимом 5 бит paper - 3 бита Ink, фактически используя только 3-4 бита paper (без бита flash, bright можно использовать с ограничениями).

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

Если кто ещё не понял, в чем суть предлагаемого мной режима.

Задание пары цветов текущей палитры для некоторого атрибута:
LD A, значение атрибута (0..255)
OUT (ПортНомераАтрибута),A
LD A, цвет INK
OUT (ПортЗаданияЦвета),A
LD A, цвет PAPER
OUT (ПортЗаданияЦвета),A

Это для глубины цвета в 8 бит, для большей количество выводов в порт задания цвета соответственно увеличивается. Вывод в порт задания цвета автоматически инкрементирует указатель байта в палитре атрибутов, соответственно, можно использовать команды блочного вывода в порт для задания палитры. Две команды OTIR задают всю палитру для 256 атрибутов (опять же, для глубины цвета в 8бит).

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

Просто - понятно - вольготно :)

drbars
29.08.2017, 14:13
Я уже предлагал подобную идею, где 2 байта палитры кодируют атрибут. Повторюсь ещё раз, всё что пересекается с возможностью ULA+, прямо или косвенно повторяет - не подходит.
К тому же данный способ требует палитру в 512байт, которых в BRAM просто нет.

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


Как атрибуты вашего режима лягут на атрибуты стандартного режима атрибутов спектрума?
Очень просто. Для классики обычный режим, для NEXT'а своя палитра и свой массив атрибутов. (перекрасить классику не проблема тоже)

Spectramine
29.08.2017, 14:21
Я уже предлагал подобную идею, где 2 байта палитры кодируют атрибут. Повторюсь ещё раз, всё что пересекается с возможностью ULA+, прямо или косвенно повторяет - не подходит.
К тому же данный способ требует палитру в 512байт, которых в BRAM просто нет.

Ну тогда и ваш режим не подходит - им можно закодировать палитру ULAplus для существующих игр, которые в основном подменяют цвета стандартного режима атрибутов. 5 битов paper/3 бита ink, программируем нужную палитру - и имеем тот же результат, что и ULAplus, для большинства игр.

К тому же, насколько я знаю, такие вещи, как ULA+, защищаются не авторским правом (копирайтом), а патентным. Нет патента - нет судебных исков. То есть вопрос исключительно в моральной плоскости - забить на ожидания владельцев Next, или на притязания разработчика ULAplus. (Конечно, если патент на ULAplus есть, вопрос закрыт).

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


Очень просто. Для классики обычный режим, для NEXT'а своя палитра и свой массив атрибутов.
Ну только так, да.

drbars
29.08.2017, 14:31
Я сам не против ULA+, но проблема не техническая, а политическая. Поэтому пришлось спешно что-то придумывать, что радикально отличается. Нам делать графику нужно, не только нам... проблема обострилась, мы её успешно решили. Получили способ красить игры круче ULA+. А что с ULA+, думаю она умерла уже... Концепция NEXT определяет новый стандарт, так уж получилось, что автор ULA+ не захотел быть частью этого стандарта за бесплатно.

Spectramine
29.08.2017, 15:26
Я уже предлагал подобную идею, где 2 байта палитры кодируют атрибут. Повторюсь ещё раз, всё что пересекается с возможностью ULA+, прямо или косвенно повторяет - не подходит.
К тому же данный способ требует палитру в 512байт, которых в BRAM просто нет.

Можно задавать цвета для значений атрибутов 0..127, оставив 7-й бит под Flash, тогда мы вписываемся в 256 байт.
С возможностью ULA+ прямо или косвенно пересекается или повторяет любой режим переопределения цветов атрибутов, если на то пошло, как я уже указал.

И ещё раз - если нет патента на ULA+, всё, на что имеет авторское право разработчик ULA+ - это на текст её спецификации. Переписать спецификацию своими словами - и авторское право больше не довлеет. Если есть патент - другое дело.

Blade
29.08.2017, 15:42
К тому же данный способ требует палитру в 512байт, которых в BRAM просто нет.

А на что они 64 KB потратили?

drbars
29.08.2017, 16:27
Можно задавать цвета для значений атрибутов 0..127, оставив 7-й бит под Flash,
Я забыл сказать, что мерцание тоже поддерживается. Его включение управляется отдельным портом.

Lethargeek
29.08.2017, 16:56
А на что они 64 KB потратили?
дык на спрайты же

NEO SPECTRUMAN
29.08.2017, 18:28
Не думаю, что это можно назвать доработанным ULA+.
В портах УЛЫ+ еще куча свободных битов
на которые можно повесить 100500 дополнительных видео режимов

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


нет судебных исков
какой НАЫИК патент?

Spectramine
29.08.2017, 18:55
По моему в УЛЕ+ по дефолту заложена поддержка нескольких видео режимов на будущее
но задействован пока только один? ULAplus в спецификации v.1.1 поддерживает графические режимы, нагло стянутые у Timex TC2048, кстати говоря.



какой НАЫИК патент?Такой нафиг патент, что, чтобы реально претендовать на отчисления от продаж спектрум-клонов, поддерживающих ULAplus, автор спецификации ULAplus должен был её запатентовать. А иначе его притязания юридически несостоятельны (насколько я разбираюсь в этом вопросе). Авторское право распространяется только на сам текст спецификации.

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

"Авторско-правовая охрана распространяется на форму выражения, а не на идеи, процессы, методы функционирования или математические концепции как таковые. "

NEO SPECTRUMAN
29.08.2017, 18:58
ULAplus в спецификации v.1.1 поддерживает графические режимы, нагло стянутые у Timex TC2048, кстати говоря.
к чему здесь TC2048
ула+ это всего лишь палитра для видео режимов с атрибутами

Spectramine
29.08.2017, 19:01
к чему здесь TC2048
ула+ это всего лишь палитра для видео режимов с атрибутами

ULA+ v.1.1 специфицирует и работу с видеорежимами Timex-ов через свои порты и порт #FF. Это ты просто не в курсе.

Totem
30.08.2017, 15:06
ULA+ v.1.1 специфицирует и работу с видеорежимами Timex-ов через свои порты и порт #FF. Это ты просто не в курсе.
без сарказма и шуток -это "софтово" поддержать как? и зачем?

Spectramine
30.08.2017, 18:04
без сарказма и шуток -это "софтово" поддержать как? и зачем?

Вообще это не ко мне вопрос, а к создателю спецификации. Софтово поддержать - хм, ну есть порты переключения режимов экрана, переключаешь режимы, и работаешь с ними.
Они довольно простые - 1) обычный; 2) второй экран с адреса #6000; 3) хайколор (аппаратный мультиколор) - пиксели с #4000, атрибуты к ним с #6000; 4) хайрез - 512х192 точки, нечетные столбцы с адреса #4000, четные - с #6000.
Плюс те же режимы, но для второго экрана 128го в 7й странице памяти.

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

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

http://faqwiki.zxnet.co.uk/wiki/ULAplus

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

http://speccy.info/Timex_Computer_2048

Lethargeek
30.08.2017, 18:17
тож не понял, зачем что-то дополнительно специализировать для режимов
когда суть узко в расширении цветности через новую расшифровку атрибутного байта
что во всех режимах с атрибутами, даже будущих, одинаково работать должно

Totem
30.08.2017, 18:51
Вообще это не ко мне вопрос, а к создателю спецификации. Софтово поддержать - хм, ну есть порты переключения режимов экрана, переключаешь режимы, и работаешь с ними.
Они довольно простые - 1) обычный; 2) второй экран с адреса #6000; 3) хайколор (аппаратный мультиколор) - пиксели с #4000, атрибуты к ним с #6000; 4) хайрез - 512х192 точки, нечетные столбцы с адреса #4000, четные - с #6000.
Плюс те же режимы, но для второго экрана 128го в 7й странице памяти.

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

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

http://faqwiki.zxnet.co.uk/wiki/ULAplus

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

http://speccy.info/Timex_Computer_2048

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

vlad
30.08.2017, 19:54
Ну, что, прокачиваем графику Spec256 на новом ядре 42МГц с видео режимом 640х480 8bpp и шпилим в Warcraft 2?

https://k39.kn3.net/taringa/3/9/4/4/9/2/0/emmanuel_14/607.gif?2415

Totem
30.08.2017, 20:00
Ну, что, прокачиваем графику Spec256 на новом ядре 42МГц с видео режимом 640х480 8bpp и шпилим в Warcraft 2?

https://k39.kn3.net/taringa/3/9/4/4/9/2/0/emmanuel_14/607.gif?2415
знаю откуда "ноги растут" :) и графикой и идеей. Это уже другая платформа, причем тут ZX?

Spectramine
30.08.2017, 20:29
тож не понял, зачем что-то дополнительно специализировать для режимов
когда суть узко в расширении цветности через новую расшифровку атрибутного байта
что во всех режимах с атрибутами, даже будущих, одинаково работать должно

Опять, это вопрос не ко мне, а к автору спецификации ULAplus v.1.1. Ну захотелось ему добавить видеорежимы Timex-ов к спецификации, ну добавил. Я про это вспомнил только потому, что он добавил, не парясь о копирайтах, чужие видеорежимы в свою спецификацию, а сейчас хочет денег за то, чтобы использовать его спецификацию в железе Next-а (безотносительно видеорежимов). (Хотя, если он не патентовал ULAplus, юридически он денег требовать официальных прав не имеет.)

vlad
30.08.2017, 20:33
знаю откуда "ноги растут" и графикой и идеей. Это уже другая платформа, причем тут ZX?
Да действительно, есть у меня ZX Spectrum 48K и что, у меня будет работать эта ULA++? Это как?

Lethargeek
30.08.2017, 20:42
Ну захотелось ему добавить видеорежимы Timex-ов к спецификации, ну добавил.
именно декларативно как совместимые или он полную реализацию запилил?

Spectramine
30.08.2017, 20:43
забавно, но ты пошел прямо сказав, что спек256, более перспективен, но сейчас предлагаешь, абсолютно другой подход, где смысл всех этих "метаний"?

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


А тут встал вопрос о цветовом расширении обычного спектрумовского экрана, на замену ULAplus, я и предложил простую идею расширения - задавать явно два цвета для каждого значения атрибута 0..255. Плюс возможно несколько палитр атрибутов, с ручной и автоматической их сменой. Это - расширение для обычного спектрума, управляемое из него через порты, позволяет для обычного спектрумовского экрана 6144+768, получить от 512 (без смены палитр) до 4096 цветов (со сменой палитр, т.е. аппаратным мультиколором без нагрузки на проц).

Но - оно никак не решает вопросы клэшинга атрибутов, и повышения цветового разрешения по оси X. Это просто идея на замену ULAplus, более понятная и с бОльшими возможностями. Но оказалось, что похожую идею уже рассматривали, и по каким-то причинам сочли пересекающейся с ULAplus (хотя она, вообще говоря,пересекается с ней также, как и выбранный в итоге вариант с управляемой битовой маской атрибутов. Принцип тот же - подмена расшифровки атрибутов на свою). Плюс на неё в железе Next-a нет ОЗУ. Плюс вариант с управляемой битовой маской уже реализован.

Lethargeek
30.08.2017, 20:43
и шпилим в Warcraft 2
в скриншот от варкрафта-2 :D

Spectramine
30.08.2017, 20:48
именно декларативно как совместимые или он полную реализацию запилил?

Я вообще не уверен, занимался ли автор спецификации ULAplus её реализацией в железе.

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


Да действительно, есть у меня ZX Spectrum 48K и что, у меня будет работать эта ULA++? Это как?

Так же, как предполагалась ULAplus - в виде аппаратной примочки. Только программирование её другое, возможностей больше. Чисто идея на замену ULAplus или её расширение.

vlad
30.08.2017, 21:10
в скриншот от варкрафта-2
Чем вы и занимаетесь (http://zx-pk.ru/threads/27710-zx-ulax.html) ))

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

Spectramine
30.08.2017, 21:27
Чем не подходит абсурдная идея (от нечего делать) - замутить Spec256 на уже готовом железе в связке, где ZX выступает как арбитр-сопроцессор?

Спек256 это более сложный вариант, требует много ОЗУ под себя. Зато вещь на порядок более продвинутая. Стандартному ZX, в общем-то, в рамках Спек256 и делать ничего особо не надо, разве что память GFX загрузить, да GFX проц стартануть, а дальше трудиться себе как обычно.

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

Если более сложные механизмы взаимодействия ZX с GFX вводить, это уже не Спек256, а что-то более навороченное.

Totem
30.08.2017, 21:27
vlad,
У тебя глубочайшее Энепониманиманиеэ или просто чтение между строк.

Lethargeek
30.08.2017, 21:33
Чем вы и занимаетесь ))
пфф, мы-то как раз можем пошпилить в игры :p

Totem
30.08.2017, 21:40
пфф, мы-то как раз можем пошпилить в игры :p
ты забыл добавить, что без "содрогания, на некоторые экземпляры смотреть то страшно ", было.
а так и на недельку "подвиснуть" можно :)

vlad
30.08.2017, 21:40
пфф, мы-то как раз можем пошпилить в игры
аналогично :v2_tong:

Totem
30.08.2017, 21:51
аналогично :v2_tong:
Добиться прямого ответа от вас, так и не возможно, даже на простые вопросы.

Lethargeek
30.08.2017, 21:54
аналогично
чтобы получилось аналогично - давай пруф видео геймплея zx в режиме 640х480 8bpp

vlad
30.08.2017, 21:56
давай пруф видео геймплея zx в режиме 640х480 8bpp
Запишу видео, дальше то, что?

Totem
30.08.2017, 22:01
Запишу видео, дальше то, что?

Ну мы офигеем, от возможностей спринтера или от акслеля, который имеет такие возможности.

Lethargeek
30.08.2017, 22:01
Запишу видео, дальше то что?
а дальше мы посмотрим, игра ли это, или только с точки зрения наркомана в глубоком ступоре :D

Totem
30.08.2017, 22:03
а дальше мы посмотрим, игра ли это, или только с точки зрения наркомана в глубоком ступоре :D

глубокая переработка Чероного Ворона, уже была, почему нет?

Lethargeek
30.08.2017, 22:15
глубокая переработка Чероного Ворона, уже была, почему нет?
потому что 640x480x8, пусть даже на 42мгц z80 (помню, как второй варкрафт тормозил на 386dx40)

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

(впрочем, тут "игра" скорей всего заключается в путешествии мышиной стрелочки по скриншоту)))

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

(таким способом хоть в крусис можно "пошпилить"))))

vlad
30.08.2017, 22:22
отому что 640x480x8, пусть даже на 42мгц z80 (помню, как второй варкрафт тормозил на 386dx40)
Потому, что он не умел рисовать 16-ть 256 цветных точек одним push за 3 такта.

Totem
30.08.2017, 22:25
Потому, что он не умел рисовать 16-ть 256 цветных точек одним push за 3 такта.

ну допустим, это 42Мгц СPU, c конвеером аля еZ80, как и в 486 -примерно, но и он(еz80 на 50 Мгц) на равных не в состоянии бороться с 386, во всех задачах.
расширили регистры, ладно.
Вот только рисовать процом, это не есть актуально, для ретро :)

shurik-ua
30.08.2017, 22:32
Потому, что он не умел рисовать 16-ть 256 цветных точек одним push за 3 такта.
а вот тут помедленнее - я записываю ))

vlad
30.08.2017, 22:43
Вот только рисовать процом, это не есть актуально, для ретро
Типа сейчас на реторо ZX не процом рисуют?


Вот предыдущая версия для ReVerSE-U16, которую я переделываю для DivGMX


https://www.youtube.com/watch?v=5JCH4aDUbvE

Могу сделать аналогично и видео режим 640х480 8bpp на DivGMX для ZX, можно будет как и раньше, рисовать процом, всё просто и быстро.

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


а вот тут помедленнее - я записываю ))
nZ80 (64bit registers)

------------------------------ 16-Bit Load Group -------------------------------
Instruction T States
LD dd, nn 3 (4-SP)
LD IX, nn 4
LD IY, nn 4
LD HL, (nn) 5
LD dd, (nn) 6 (7-SP)
LD IX, (nn) 6
LD IY, (nn) 6
LD (nn), HL 5
LD (nn), dd 6 (7-SP)
LD (nn), IX 6
LD (nn), IY 6
LD SP, HL 2
LD SP, IX 3
LD SP, IY 3
PUSH qq 3
PUSH IX 4
PUSH IY 4
POP qq 3
POP IX 4
POP IY 4

Totem
30.08.2017, 22:44
Записывай, какой смысл, человеку потратившему на игру может не один год, считать такты и переписывать все ? Когда он может сам, за неделю и раскрасить и убрать клэш? при 15 битном цвете.
Мы не говорим сейчас о быстром выводе графики, это тема отдельная.

Lethargeek
30.08.2017, 22:51
Потому, что он не умел рисовать 16-ть 256 цветных точек одним push за 3 такта.
он умел примерно 10 через pushad и прокрутка карты не тормозила
тормоза начинались при (не таком уж и) большом количестве юнитов


nZ80 (64bit registers)

PUSH qq 3
по 8-битной шине 16 байт? это нужен доступ к памяти в ~3нс

Totem
30.08.2017, 22:56
он умел примерно 10 через pushad и прокрутка карты не тормозила
тормоза начинались при (не таком уж и) большом количестве юнитов



по 8-битной шине 16 байт? это нужен доступ к памяти в ~3нс

это смотря, что и куда читать и писать.

vlad
30.08.2017, 22:57
Записывай, какой смысл, человеку потратившему на игру может не один год, считать такты и переписывать все ? Когда он может сам, за неделю и раскрасить и убрать клэш? при 15 битном цвете.
Считать ничего не обязательно и переписывать также. И да, за неделю можно всё раскрасить в 256 цветов не меняя код. На ReVerSE-U16 можно хоть и ваш 15 битный (хоть он для таких игр избыточный).

Lethargeek
30.08.2017, 23:05
это смотря, что и куда читать и писать.
это именно "несмотря"

Totem
30.08.2017, 23:06
Считать ничего не обязательно и переписывать также. И да, за неделю можно всё раскрасить в 256 цветов не меняя код. На ReVerSE-U16 можно хоть и ваш 15 битный (хоть он для таких игр избыточный).
Вот тут мы подходим, к коцептуальной проблеме.

vlad
30.08.2017, 23:09
Вот тут мы подходим, к коцептуальной проблеме.
Не мифическое железо ли это? На котором можно реализовать этот абсурд?

Totem
30.08.2017, 23:09
это именно "несмотря"

Вообще, ветка не наша, чет разошлись. И не только мы.

Lethargeek
30.08.2017, 23:10
И да, за неделю можно всё раскрасить в 256 цветов не меняя код.
в году 52 недели, spec256 запилен в 1997, но что-то даже сотни игор не наблюдается

Totem
30.08.2017, 23:11
Не мифическое железо ли это? На котором можно реализовать этот абсурд?
В чем абсурд? поясни?
еще 3 месяца назад, сказано -на U16, вполне и не в одной ветке и вличку.

vlad
30.08.2017, 23:13
в году 52 недели, spec256 запилен в 1997, но что-то даже сотни игор не наблюдается
Это не важно, важно, что реально есть. В реализации, я думаю и весь для нас интерес.

Lethargeek
30.08.2017, 23:14
Вообще, ветка не наша, чет разошлись. И не только мы.
на офтоп (с которым влезли сюда не мы) топикстартер мог пожаловаться уже

vlad
30.08.2017, 23:20
на офтоп (с которым влезли сюда не мы) топикстартер мог пожаловаться уже
Ему тоже нужно на чем-то свою концепцию реализовывать и тестировать, отчасти интересы совпадающие...

Lethargeek
30.08.2017, 23:22
Это не важно, важно, что реально есть.
это важно, это показатель сложности поддержки софтом


В реализации, я думаю и весь для нас интерес.
лично мне не интересен монстр без софта

Totem
30.08.2017, 23:24
Ему тоже нужно на чем-то свою концепцию реализовывать и тестировать, отчасти интересы совпадающие...
но зачем прикручивать к ZX очередной костыль?

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

или софт, но с монстром?

Lethargeek
30.08.2017, 23:26
Ему тоже нужно на чем-то свою концепцию реализовывать и тестировать, отчасти интересы совпадающие...
ну так ближе к интересу и выступай, а не вбрасывай скриншоты непересекающихся концепций

Totem
30.08.2017, 23:47
а где долгожданное видео?

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


ну так ближе к интересу и выступай, а не вбрасывай скриншоты непересекающихся концепций

верно подмечено, это разные "концепты"

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

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