Вход

Просмотр полной версии : Идеальный Спектрум



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

zx-kit
03.03.2018, 16:50
Все любят Спектрум.

Его придумали в Англии, но в России его любят больше. Объясняется это тем, что у нас клоны были без ПЛИС на обычной логике серии К555. Схема Ленинграда была простой и понятной. Этот компьютер можно было собрать самому. Ленинград при своей простоте был у нас лучшим домашним компьютером с цветной графикой.

На Спектруме много хороших игр, но разрабатывался этот компьютер для обучения детей BASIC-у, а не для игр. Поэтому графический режим сделали упрощенным. Текст печатать можно и ладно. Еще в те времена ОЗУ было дорогим и медленным. Хорошо, что сегодня у нас есть возможности и комплектующие сделать из учебного компьютера игровой, добавив элементарные графические возможности для упрощения написания игр.


1. Одна плоскость для фона и спрайтов. Клешинг атрибутов при движении спрайтов.

2. Нет аппаратного скроллинга фона. Нельзя плавно сдвигать цветное изображение уровня игры.

3. Медленный Z80. Невозможно за один кадр телевизора обновить экран (скопировать буфер на экран размером с весь экран).

4. Атрибуты 2 цвета на знакоместо 8х8 точек. Ограничение на возможность раскраски фона и спрайтов, а также клешинг атрибутов.

5. INT во время кадрового синхроимпульса. Мало времени до пересечения с лучом для построения изображения при прямом рисовании на экране.

6. Нелинейная адресация байтов по-вертикали. Требуются сложные расчеты при передвижении спрайтов по-вертикали.

7. Экран начинается с адреса 4000H. Требует прибавления 40H к старшему байту при расчетах и занимает основную память.

8. В атрибуте вместо независимого BRIGHT для PAPER и INK сделан FLASH. Усложнение схемы и ограничение комбинаций цветов в атрибуте.

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

10. Экран и буфер занимают основную память Спектрума. Меньше свободной памяти для программ и данных.

11. Нельзя программно подключать ОЗУ вместо ПЗУ. Меньше свободной памяти для программ и данных.

12. Несовершенный менеджер памяти для 128К модели. Нельзя выбирать страницы памяти во всех четырех окнах по 16 К.

13. Небольшой экран 256х192 точек.

14. На плате компьютера нет джойстика, а у внешних джойстиков всего 1 кнопка FIRE. Затрудняет управление в играх.

15. Одноплатность. Затруднена модернизация схемы компьютера.


Проект улучшенного компьютера "ZX-KIT STATION":
Вывод на VGA.
Палитра.
Независимая BRIGHT для PAPER и INK.
ОЗУ 256К.
Программное отключение ПЗУ.
4 окна ОЗУ по 16К.
16 страниц.
16 экранов.
Линейная адресация байтов на экране.
Экраны 256*192 и 320*240 с атрибутами.
INT после окна.
Контроллер PS2 клавиатуры и перепрограммируемых джойстиков.
Порты для отключения ПЗУ, включения 4 окон памяти, номера экрана, линейной адресации, типа BRIGHT...

ZX_NOVOSIB
03.03.2018, 17:06
будет ли кто-то писать для нашего компьютера игры?
Нет конечно.


Или будут писать только для чужого NEXT-а ?
Будут. Ибо готовый продукт. Хоть и неспектрум )

zx-kit
03.03.2018, 17:12
Нет конечно.


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

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

ZX_NOVOSIB
03.03.2018, 17:38
Даже если для нового компьютера писать легче, чем для старого ? Ведь для старого еще пишут, но это связано с такими трудностями...
Спектрум - старый комп, с уже сформировавшейся аудиторией (несколько тысяч землян), поэтому неважно трудно на нём писать или легко, писать всё равно будут. А у "нового" компьютера аудитории нет, поэтому и писать никто не будет, даже если писать будет легко. К тому же "трудно писать" это своего рода брошенная перчатка, дополнительный интерес, больше радости от победы над этой трудностью.


А что нам мешает сделать свой, который нужен нам ?
Мешает отсутствие финансирования. NEXT профинансировали, а "свой" никто финансировать не будет )) Наши не будут, потому что "денег нет", а буржуи уже профинансировали NEXT... )


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

Бука
03.03.2018, 18:01
Деление изображения на два слоя - фон и спрайты.

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

CLR
03.03.2018, 18:05
Мне кажется, что данная философия запоздала лет этак на 20 (если не больше). Мы уже наблюдали массу «более лучших» суперспектрумов. И все они как-то прошли мимо можно сказать. Сейчас интерес к программированию/железостроению люди удовлетворяют на ардуиноподобных девбордах да RPi и иже с ними. Завлечь нового программиста на спектрум-совместимую машину сегодня имхо невозможно. Что-то по странному стечению обстоятельств до сих пор делают только те люди, которых Спектрумом в детстве накрыло, как пыльным мешком по голове, и на этом запале до сих пор и творят.

zx-kit
03.03.2018, 18:23
Вот это технически было возможно сделать в 1982м, два обычных экрана из которых второй рисуется поверх, с одним прозрачным цветом.

Это могли позволить только в C64, так как у Commodore было свое производство и цена была в 4.4 раза выше себестоимости изготовления (https://ru.wikipedia.org/wiki/Commodore_64). Для остальных было дорого.

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


Мне кажется, что данная философия запоздала лет этак на 20 (если не больше). Мы уже наблюдали массу «более лучших» суперспектрумов. И все они как-то прошли мимо можно сказать. Сейчас интерес к программированию/железостроению люди удовлетворяют на ардуиноподобных девбордах да RPi и иже с ними. Завлечь нового программиста на спектрум-совместимую машину сегодня имхо невозможно. Что-то по странному стечению обстоятельств до сих пор делают только те люди, которых Спектрумом в детстве накрыло, как пыльным мешком по голове, и на этом запале до сих пор и творят.
Суперкомпьютеров много, но программировать для них сложно. Нам нужны новые программисты. Для них надо облегчить написание программ.

Lethargeek
03.03.2018, 18:27
Вот это технически было возможно сделать в 1982м, два обычных экрана из которых второй рисуется поверх, с одним прозрачным цветом.
по нагрузке на память получился бы аналог пятногоновского 16ц со всеми вытекающими

по заглавному: и половина "недостатков" - не недостатки, и половина "улучшений" - не улучшения, и результат на спектрум мало похож

zx-kit
03.03.2018, 18:35
по заглавному: и половина "недостатков" - не недостатки, и половина "улучшений" - не улучшения, и результат на спектрум мало похож
Это интересно. Объсни пожалуйста.

Спектрум-не Спектрум. Надоело уже. Давайте ничего не будем делать и смотреть на новый NEXT. Новый компьютер METEOR с новой графикой лучше ?

vlad
03.03.2018, 18:37
zst, вам бы фантастические рассказы писать ))

Идеальный Спектрум
https://mover.uz/watch/SIHNfeFj/?start=178

siemensC35
03.03.2018, 18:39
ала лет этак на 20 (если не больше). Мы уже наблюдали массу «более лучших» суперспектрумов. И все они как-то прошли мимо можно сказать. Сейчас интерес к программированию/железостроению люди удовлетворяют на ардуиноподобных девбордах да RPi и иже с ними. Завлечь нового программиста на спектрум-совместимую машину сегодня имхо невозможно. Что-то по странному стечению обстоятельств до сих пор делают только те люди, которых Спектрумом в детстве накрыло, как пыльным мешком по голове, и на этом запале до сих пор и творят.
Если посмотреть то тут все одни и теже фанаты "Монолита" сидят. Новоприехавшему ( или поехавшему, кому как угодно) человеку будет сложно разобраться, а как показывает практика новое поколение совсем лениво и ему иногда даже шильды перемычками сложно

zx-kit
03.03.2018, 18:47
zst, вам бы фантастические рассказы писать ))


"Мы рождены, чтоб сказку сделать былью". Я знаю, как сделать.

Lethargeek
03.03.2018, 18:49
Это интересно. Объсни пожалуйста.
Объяснял уже, что ты плохо представляешь, как пишут игры, чтобы предлагать глобальные упрощения.


Спектрум-не Спектрум. Надоело уже. Давайте ничего не будем делать и смотреть на новый NEXT. Новый компьютер METEOR-128 с новой графикой лучше ?
Надоело - есть неспектрумовские форумы. Мне как спектрумисту неинтересно, какой из многочисленных неспектрумов будет "лучше".

zx-kit
03.03.2018, 18:55
Зачем же ты сделал ULAX, если ничего делать нельзя ?

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


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

У меня достаточно знаний, чтобы увидеть недостатки и придумать как их исправить.

Lethargeek
03.03.2018, 19:04
Зачем же ты сделал ULAX
затем, чтобы новый спектрум остался спектрумом, а его софт остался спектрумовским софтом


если ничего делать нельзя ?
где я говорил "ничего"?


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

baxter
03.03.2018, 19:04
Зачем делать то, что уже не один год существует в железе - тс-конф.

zx-kit
03.03.2018, 19:08
Зачем делать то, что уже не один год существует в железе - тс-конф.
Это конечно круто, но сложно для обычных людей.

Lethargeek
03.03.2018, 19:17
Зачем делать то, что уже не один год существует в железе - тс-конф.
а там ставилась цель именно облегчить игрописательство? а не натолкать побольше крутых (с тз автора) возможностей в наличную железяку

NiKa
03.03.2018, 20:03
Давайте ничего не будем делать и смотреть на новый NEXT.
А никто на него смотреть и не будет, спадет из без того очень слабый ажиотаж и никто про него и не вспомнит.

Mx_Serg
03.03.2018, 20:10
Смысл модернизировать есть при условии сохранения совместимости и несложного портирования существующего софта и при наличии соответствующих тулзов. Кроме того "кривость" Спекки как раз и выступает мотивацией в написании новых программ современными авторами. Ибо это круто - впихнуть максимум в минимум )) А если хочется идеального спектрума - так он есть - это MSX ))

baxter
04.03.2018, 00:57
а там ставилась цель именно облегчить игрописательство? а не натолкать побольше крутых (с тз автора) возможностей в наличную железяку

Практически всё предложенное топикстартером там имеется.
http://speccy.info/TS-Config

Lethargeek
04.03.2018, 01:18
Практически всё предложенное топикстартером там имеется.
что лишь говорит нам о том, что и те предложения особо не упрощают

Spectramine
04.03.2018, 02:19
Тот, кто хочет написать игру - пишет игру, и воспринимает компьютер/среду, на который/которой он пишет игру, как данность. Мелкие неудобства мотивированных игрописателей не отталкивают. К тому же, основные преимущества при разработке ПО предлагают не особенности архитектуры машины, а удобства среды программирования.


Если устранить эти недостатки, а это сейчас возможно, будет ли кто-то писать для нашего компьютера игры ? Нет, никто не будет. По моему скромному мнению. Кому оно надо, извините? Даже под спектрум пишут исключительно фанаты, которых в лучшем случае несколько десятков. Большинство пишет под современные платформы и технологии. Из всех местных форм эскапизма "улучшение" ретро-платформ (особенно за счет ухода от совместимости) кажется мне наиболее бесполезной. Всё уже улучшено и переулучшено многократно. Никто не запретит вам изобрести ещё один велосипед, но его востребованность будет нулевой или около того.

zx-kit
04.03.2018, 07:40
Предлагаю реализовать давно витающую в воздухе идею о двух слоях спековской графики + слое маски, предложенную многими, например, тут (http://zx-pk.ru/threads/1399-ideya-prostogo-rasshireniya-standartnogo-vidorezhima.html?p=28053&viewfull=1#post28053). (четвертый абзац.)
Не совсем идеальный вариант, но она простая, легкая для понимания и реализации.

Делаем два слоя графики с атрибутами. Для выбора, какой из двух слоев отображать вводится управлющий слой / слой маски / селектроный слой и т.п.

Я же к общей идее добавлю следующие улучшения:

Два экрана. На одном строим изображение, другой в это время отображается на телевизоре.
Оба экрана с адреса 0000 вместо ПЗУ. Освободится область с адреса 4000H.
Линейная адресация экранных байтов как в Орионе и Специалисте.
Атрибуты на каждые 8 точек как в Орионе.
Автоматическая закраска атрибутами как в Специалисте.
Своя BRIGHT для PAPER и INK как в Орионе.
Автоматический скроллинг фона по-вертикали и горизонтали.

Слой фона в ходилках и леталках будет аппаратно сдвигаться при движении главного героя (ГГ). Это будет плавно и быстро - весь экран. Цветов конечно не много, но столько же, сколько было. Ну немного больше - байт атрибута на байт графики. Хватит.

Второй слой тайлов и управляющий тоже можно аппаратно сдвигать. Так как цвета у нас не идеальные - 2 цвета на 8 точек, то можно в некоторых играх красиво нарисовать ГГ, например, самолетик, учитывая эти ограничения цветов. И, чтобы не испортить его при скроллинге, делать скроллинг всего слоя спрайтов с ГГ и управляющим слоем.



На этом улучшения пока можно закончить и сделать это новым стандартом в новой ветви развития Спектрума. Так сказать Z-STANDARD.

Возможно это будет уже не Спектрум, а другой, лучший компьютер. Его потомок METEOR-128, который кроме графики возьмет от своего предка самое лучшее. И мы продолжим писать игры уже под улучшеные режимы для нового компьютера или эмулятора. Это будет нашим ответом на разработку компьютера NEXT.

creator
04.03.2018, 08:51
https://pp.userapi.com/c840429/v840429719/586e8/YJ1i9wR0fh4.jpg

Dr.Potapov
04.03.2018, 09:21
Зачем вы хотите видепамятью занять ОЗУ спектрума которой и так нифига нет? Почему графика на спектруме мечты должна обязательно висеть на ЦП? Давайте тогда и звук на ЦП повесьте, и что бы непременно стерео 44кгц мп3 разворачивал из ОЗУ. Это не комп получится а инструмент для демок 256 байт (именно столько останется ОЗУ после всех улучшений)

Shiny
04.03.2018, 09:35
Практически всё предложенное топикстартером там имеется.
http://speccy.info/TS-Config

это морально устарело.

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


Зачем вы хотите видепамятью занять ОЗУ спектрума которой и так нифига нет? Почему графика на спектруме мечты должна обязательно висеть на ЦП? Давайте тогда и звук на ЦП повесьте, и что бы непременно стерео 44кгц мп3 разворачивал из ОЗУ. Это не комп получится а инструмент для демок 256 байт (именно столько останется ОЗУ после всех улучшений)

Налицо полное незнание архитектуры. eZ80 в помощь.

Dr.Potapov
04.03.2018, 10:41
Шынни, а чем ez80 поможет при довольно скромных 800х600/24bpp к примеру? Я к тому, что если кто то собрался мастерить спектрум своей мечты - то хоть архитектуру изначально расширяемую предусмотреть было бы хорошо отдав вывод графики отдельному устройству, предназначенному только для этого, а не напрягать проц (хоть какой) и память (хоть какую) этим делом.

CLR
04.03.2018, 11:44
Стоит прикрутить опрос, сколько человек готово это купить и сколько человек готово под это писать софт. Затем сложить эти числа и разделить на 2пи - вот примерно столько и будет реально заинтересованных в очередном велосипеде людей :)

omercury
04.03.2018, 11:53
Если устранить эти недостатки, а это сейчас возможно, будет ли кто-то писать для нашего компьютера игры ? Или будут писать только для чужого NEXT-а ?

Бессмысленно изобретать новый ретрокомпьютер.
И новых программистов им не привлечёшь.
Причина проста: Спектрум - ностальгия нашего поколения.

А другие поколения впадут в своё детство, не в наше.

zx-kit
04.03.2018, 12:38
Бессмысленно изобретать новый ретрокомпьютер.
И новых программистов им не привлечёшь.
Причина проста: Спектрум - ностальгия нашего поколения.
А другие поколения впадут в своё детство, не в наше.
Я сначала хотел действительно новый. Но вернулся к истокам и собираюсь немного улучшить все, основываясь на прошедших годах на основе кэша с устаревших IBM 486. Если бы разработчики Спекрума знали, сколько проблем они создадут программистам упрощенной графикой, то сделали бы это сами. Да они и не планировали, что Спектрум проживет долго и не было тогда кэш памяти. Но так как их уже нет, а мы есть, то это сделаем мы. И будем программировать на компьютере с исправленными глюками. Пишут же для NEXT-а. Может и молодежь с ардуино перейдет на Z80. Игры писать с выводом на телевизор/монитор интереснее, чем выводить буковки на LCD или мигать светодиодами. Тут их ждет слава, почет, уважение и т.п. Тем более нас много и есть у кого спросить, как что делается. Нет, так тряхнем стариной и сами будем писать. Что нельзя было успеть вывести на экран в старом компьютере, теперь можно успеть в новом.

barsik
04.03.2018, 12:44
Предлагаю реализовать давно витающую в воздухе идею о двух слоях спековской графики + слое маски, предложенную многими
Это самая реальная из идей по новоделу ZX без клешинга, что обсуждаются тут в последние месяцы. Потому, что это реализуется просто и практически без вторжений в базовую схему клона ZX. Да и гораздо полезнее для игр, чем вводить 8 битов на цвет одной точки.

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

Второй параллельный экран вводится с той же самой организацией графики и цвета как и оригинальный. Но в этом втором экране имеется ещё один слой, работающий только на запись. Это слой маски. Биты в маске определяют из какой плоскости выводить соответствующую экранную точку. Если бит в 0, то на экран выводится точка из плоскости заднего плана. А если 1, то из плоскости переднего плана. Благодаря этому исчезает клешинг, т.к в одном квадратике 8*8 можно иметь уже не 2 цвета, а 4.

Причём экран маски даже не требуется включать в адресное пространство. Используется идея А.Волкова по автозаписи в другую плоскость из специального регистра маски при выполнении записи в экранное ОЗУ графики.

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

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

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

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

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

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


Два экрана. На одном строим изображение, другой в это время отображается
Это легко сделать, но не особо нужно. Таких игр для Spectrum-48К нет. Для борьбы с мерцанием программисты успевают выводить на экран во время гашения. Если поднять скорость Z80, то успеют тем более.


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


Атрибуты на каждые 8 точек как в Орионе
Не требуется, т.к при нужде можно поиметь 4 цвета точек на знакоместо, а при переделке ZX-игр, чтобы избавить их от клешинга, даже вредно. Речь же именно об игровом компьютере, а возможностей цвета ZX хватало. Мешал только клешинг.


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


Возможно это будет уже не Спектрум, а другой, лучший компьютер
Главное, чтобы он остался простым и 100% совместимым.

Shiny
04.03.2018, 12:45
Шынни, а чем ez80 поможет при довольно скромных 800х600/24bpp к примеру? Я к тому, что если кто то собрался мастерить спектрум своей мечты - то хоть архитектуру изначально расширяемую предусмотреть было бы хорошо отдав вывод графики отдельному устройству, предназначенному только для этого, а не напрягать проц (хоть какой) и память (хоть какую) этим делом.

товарищь, приобрети пейси с заявленными примочками и не парь мозги своими речами.

zx-kit
04.03.2018, 14:57
Зачем усложнять? Проблему быстрого сдвига экрана решает удвоение клока Z80, что намного разумнее, чем вводить кучу сумматоров и усложнять себе программирование. Даже без всяких наворотов получится много деталей, зачем же ещё усложнять ради одной игры леталки-стрелялки, которая скорее всего и не появится.

В данном случае речь не только о клешинге. Аппаратный сдвиг фона необходим. Мы же игры будем делать цветные. Как же сдвинуть фон влево на 1-2 точки, если цвета зависят от атрибутов. Да и не хватит скорости у Z80 даже черно-белую картиннку сдвинуть. Если мы не сделаем скроллинг одна стрелялка-леталка так и не появится. Нет у Z80 на это возможностей.

Второй экран тоже нужен. В играх вместо второго экрана использовали буфер в основной памяти, затем копировали на экран. Но скорости Z80 не хватает для копирования всего экрана. Поэтому надо убрать операцию копирования - просто меняем экраны между собой. Это делается мгновенно. Один байт атрибута на 8 точек тоже надо. Цветов всего 15. Хоть как-то увеличим разнообразие тайлов и спрайтов. Все, что описано желательно сделать.

Аппаратный скроллинг сделать не сложно. Для этого надо три регистра для записи смещения по-горизонатали и вертикали. В начале окна из них будем загружать начальные значения в счетчики - и все !

Lethargeek
04.03.2018, 15:34
Предлагаю реализовать давно витающую в воздухе идею о двух слоях спековской графики + слое маски, предложенную многими, например, тут.
:v2_blink:


это морально устарело.
:v2_dizzy_biggrin2:

vlad
04.03.2018, 15:40
Я знаю, как сделать.
Знать как, не значит сделать )
Предлагаю всё выше описанное реализовать на DivGMX, заодно станет понятно, нужно это кому или нет, а уже потом греть паяльник.

zx-kit
04.03.2018, 15:53
Знать как, не значит сделать )
Предлагаю всё выше описанное реализовать на DivGMX, заодно станет понятно, нужно это кому или нет, а уже потом греть паяльник.
Это надо сделать везде - на всех девбордах: SPECCY2010, всех версиях REVERSE и т.п. DIVGMX, ULAX, эмуляторах. Начни с REVERSE. Попробуй сделать аппаратный скроллинг фона. Сможешь ?

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

Счетчики развертки и счетчики отображения слоев надо сделать отдельно. Счетчики развертки формируют KSI, SSI и тп. Также в начале отображения окна Спектрума с помощью них надо сформировать импульсы загрузки смещения в счетчики слоев. По-горизонтали счетчик надо 9 бит. По-вертикали 8 бит. Три регистра смещения. Найди свободные порты. Желательно однобайтовые.

barsik
04.03.2018, 15:57
Аппаратный сдвиг фона необходим... Как же сдвинуть фон влево на 1-2 точки, если цвета зависят от атрибутов.
Не понял как Вам поможет аппаратный ролик при панорамировании по горизонтали. Экран же байтовый, значит и аппаратный сдвиг будет с шагом в 8 точек. Это по вертикали доп.аппаратура поможет сделать плавный и быстрый сдвиг всего экрана. Так сделано в БК-010 и Векторе. И вообще, какой смысл напрягаться из-за одной потенциально возможной игры. Даже всего 3 регистра тратить на это глупо. Сделайте лучше первую версию по минимуму.

Уверен, что ничего больше того, что я предложил не нужно. Т.е это минимальный и одновременно оптимальный вариант. Оптимальным он будет, если это останется клон 48К, не надо Spectrum-128. Но т.к есть и вторая банка ОЗУ с окном в 8К, то глупо не сделать её прокачку в этом окне 4000...5FFF (расход в 1 регистр), а также ввести отключение ПЗУ 0...3FFF, что даст те же 128 кб, но "под другим соусом", чем в Spectrum-128. Главное преимущество - сплошное доступное ОЗУ в 64 кб. Сделайте такой компьютер на маленькой дешёвой плате, без всяких FPGA и Вам можно будет ставить памятник при жизни.

Кстати в "Радуге" (на КР580), разработанной sherlock-ом, одновременно с чтением байта графики, автоматически читается и по перезаписи автоматически переписывается на новое место и байт атрибутов. Но для экрана ZX и это не особо надо, т.к там всего один байт цвета на 8 байтов графики.

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


Да и не хватит скорости у Z80 даже черно-белую картинку сдвинуть... Нет у Z80 на это возможностей.Ведь полно леталок-стрелялок со сдвигом всего экрана и даже по горизонтали.

vlad
04.03.2018, 16:02
аппаратный скроллинг фона
Такой? http://realddp.narod.ru/zx/p1024sl2/16C_VScroll/index.htm

Lethargeek
04.03.2018, 16:07
zst, ты хоть сначала определись, кому больше хочешь облегчить жизнь - кодерам или железячникам
а то опрос об одном, в теме о другом, а методы по облегчению жизни тем или другим нередко несовместимы

zx-kit
04.03.2018, 16:33
Такой? http://realddp.narod.ru/zx/p1024sl2/16C_VScroll/index.htm
Нет проще. Добавь второй набор счетчиков развертки. Первый формирует границы окна Спектурума 256х192 точек, кадровые, строчные синхро- и гасящие импульсы. Перед левой границей окна надо сделать короткий импульс загрузки начальных значений счетчиков отображения слоя. Запись числа 1 соответствует аппаратному сдвигу слоя влево на одну точку вместе с атрибутами. Аналогично и для сдвига по-вертикали. Экран сделай вместо ПЗУ по адресу 0.

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


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

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



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

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



Кстати в "Радуге" (на КР580), разработанной sherlock-ом, одновременно с чтением байта графики, автоматически читается и по перезаписи автоматически переписывается на новое место и байт атрибутов. Но для экрана ZX и это не особо надо, т.к там всего один байт цвета на 8 байтов графики.

Эта операция нужна редко. А вот автоматическое заполнение атрибутов текущим атрибутом будет полезно. Этим можно имитировать атрибутые 8х8 точек, если 1х8 на надо.


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

К сожалению, предложенные выше возможности мало подходят для переделки старых игр. Даже если не делать аппаратный скроллинг. Но для реализации новых идей возможности достаточно хорошие.

Totem
04.03.2018, 16:53
Ответь, что быстрее - записать смещение слоя в 3 регистра или в цикле делать сдвиг фона программно. Кому легче ? Z80 без разницы. Он или успеет это сделать за кадр или не успеет. Но атрибуты он все равно не сможет сдвинуть без аппаратного скроллинга. Задача предоставить новые возможности для облегчения написания игр кодерам.
Легче автору кода, который пишет под целевую и в "товарном количестве представленную платформу" и знает, что будет работать на всех компах и эмуляторах -это и будет определять успешность. Наворты железа, не играют никакой роли теперь, если проект любительский. Примеры коммерческих ты и см знаешь.

vlad
04.03.2018, 17:04
Сделал 8-ми разрядный порт #xx00, записываю в него сразу смещение по X и Y командой OUT (C),A, где A=позиция X(0..255), B=позиция Y(0..191), C=0(порт смещения)
Если в порт записать значение #0000 то выводимое изображение соответствует стандартному SCR 6912, если к примеру записать #0101, то изображение выводится сдвинутым на один пиксел по диагонали вниз вместе с атрибутами. В верхней стороке и левом столбце теперь отображается уже выдвинутая нижняя строка и правый крайний столбец изображения. Так?

zx-kit
04.03.2018, 17:20
Сделал 8-ми разрядный порт #xx00, записываю в него сразу смещение по X и Y командой OUT (C),A, где A=позиция X(0..255), B=позиция Y(0..191), C=0(порт смещения)
Если в порт записать значение #0000 то выводимое изображение соответствует стандартному SCR 6912,

Хорошо, это правильно.

если к примеру записать #0101, то изображение выводится сдвинутым на один пиксел по диагонали вниз вместе с атрибутами. В верхней стороке и левом столбце теперь отображается уже выдвинутая нижняя строка и правый крайний столбец изображения. Так?
Изображение должно смещаться влево и вверх, так как первые точки пропускаются. Чтобы при сдвиге влево не появлялся сдвинутый столбик справа надо счетчик сделать на 9 бит. Поэтому для сдвига по-горизонатали надо 2 регистра. Это пригодится также, если мы захотим увеличить окно до 320х240.
При сдвиге вниз итак не должен появляться. Появляется новый фрагмент, который надо было записать в экранную область.

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

TomaTLAB
04.03.2018, 17:45
Добавь второй набор счетчиков развертки. Красивая идея, но сумматоры не проще поставить? 9-й бит из них бесплатно вылезет :)
Плюс они позволят сделать такой финт ушами, как аппаратный "ролик в окне", но это, пожалуй, тема для другой темы :)

zx-kit
04.03.2018, 18:11
Красивая идея, но сумматоры не проще поставить? 9-й бит из них бесплатно вылезет :)
Плюс они позволят сделать такой финт ушами, как аппаратный "ролик в окне", но это, пожалуй, тема для другой темы :)
На FPGA может проще. А на логике мне даже никогда не приходилось их покупать. Да и задержку они вносят, а счетчики работают синхронно тактовой без задержек.
Хотя вроде в NEMO FDC стоит сумматор.

Для скроллирования слоя спрайтов и маски нужны еще счетчики и регистры.

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

Если адресация линейная, то добавить для скроллинга новый столбик размером 192х8 точек можно командой LDIR. При этом старший байт D = 32, а младший = 0. После сдвига на 8 точек D=33. Или сразу добавить в невидимой области экрана несколько столбиков. Также LDIR и для атрибутов столбиков надо делать.

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

Lethargeek
04.03.2018, 18:31
Ответь, что быстрее - записать смещение слоя в 3 регистра или в цикле делать сдвиг фона программно. Кому легче ? Z80 без разницы. Он или успеет это сделать за кадр или не успеет. Но атрибуты он все равно не сможет сдвинуть без аппаратного скроллинга. Задача предоставить новые возможности для облегчения написания игр кодерам.
при чём тут "быстрее", когда ставилась задача как сделать "проще"? скорость должна быть всего лишь достаточной
а проще будет, если лишних сущностей будет меньше - всех этих аппаратных тайлов, спрайтов, слоёв и скроллингов

vlad
04.03.2018, 18:37
а проще будет, если лишних сущностей будет меньше - всех этих аппаратных тайлов, спрайтов, слоёв и скроллингов
Соглашусь. Фон я бы оставил, в Spec256 выглядит красиво.

Totem
04.03.2018, 18:39
при чём тут "быстрее", когда ставилась задача как сделать "проще"? скорость должна быть всего лишь достаточной
а проще будет, если лишних сущностей будет меньше - всех этих аппаратных тайлов, спрайтов, слоёв и скроллингов
Один ляд, без блиттера, потребует абсолютную выкладку кодера на 100%, что вообщем и показывают последние проекты игровые. Убрать самую затратную операцию по копированию/восстановлению фона и будет просто замечательно, а все остальное от таланта кодера.

Totem
04.03.2018, 18:49
Соглашусь. Фон я бы оставил, в Spec256 выглядит красиво.

У него один недостаток, нужно быть еще и почти художником. Причем сам "стиль и шарм" графики ZX теряется совсем.

vlad
04.03.2018, 18:53
Убрать самую затратную операцию по копированию/восстановлению фона и будет просто замечательно, а все остальное от таланта кодера.
+ DMA? Этак 4 или 8 каналов, да с ЦАП на портах, аля DMA Sound в добавок, для разных там звуковых эффектов и муз. сопровождения.

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


У него один недостаток, нужно быть еще и почти художником. Причем сам "стиль и шарм" графики ZX теряется совсем.
Ну, как-бы режим отключаемый... Просто хотелось вот что попробовать:

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

Totem
04.03.2018, 19:14
+ DMA?
Ну DMA это строка. Тут сразу прямоугольник и пошел дальше считать путь или другими делами, только статус спросить если нужно. Этого вполне достаточно, чтобы были игры, класса ами 500/600, ну если кодер постарался то 1000.

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


Ну, как-бы режим отключаемый... Просто хотелось вот что попробовать:
Вполне возможно, но это уже прыжок через голову.
Если очень грубо и упрощая , у "ЮлииИксандровны" сейчас 3 режима
1. Стандартный ZX- и даже тут ты можешь писать на BASIC'е, простые вещи с полноценной точкой на пиксель.
https://drive.google.com/file/d/1VNF17VdE9AGLnYXlQ_6UvAsPdiSwjSah/view?usp=sharing
2. Не полная раскраска или просто -"noуКлэш", самый простой метод, который не требует особых талантов художника и позволяет очень быстро сделать игру с точкой на цвет, свою и ли чужую, неважно.
3. Ну и раскраска, которая уже требует навыков - самый затратный метод, по времени.
На самом деле это один режим :)
Все остальное, если будет востребовано то с радостью. запас "прочности" есть
главное, что кодеру по сути не надо переучиваться практически, ну а художнику рай -портируй любую графику

vlad
04.03.2018, 19:48
Если очень грубо и упрощая , у "ЮлииИксандровны" сейчас 3 режима
Где это можно взять?

Totem
04.03.2018, 20:00
Где это можно взять?

Сново здарово? как только так сразу получишь лицензию, с прошлой полемики, ждем оплаты за одну копию :v2_rolley :v2_wink::v2_dizzy_biggrin2:
поищи лучщее производство корпусов и клавиатур :)

vlad
04.03.2018, 20:56
Сново здарово? как только так сразу получишь лицензию, с прошлой полемики, ждем оплаты за одну копию
Лицензию на что?

поищи лучщее производство корпусов и клавиатур
Зачем? И так понятно, что "ЮлииИксандровны" не будет, т.к. ненужно это никому )

Totem
04.03.2018, 21:25
Лицензию на что?

Зачем? И так понятно, что "ЮлииИксандровны" не будет, т.к. ненужно это никому )

Вот это заявка, с тем же успехом Spec256 не нужен, все уже купили кому надо ZX NEXТ, лично я просто читая, что ты пишешь, на этом форуме, точно не купил бы никогда Spec256- просто от отношения к тому, что ты говоришь и относишься к другим проектам.

vlad
04.03.2018, 21:58
Вот это заявка, с тем же успехом Spec256 не нужен, все уже купили кому надо ZX NEXТ, лично я просто читая, что ты пишешь, на этом форуме, точно не купил бы никогда Spec256- просто от отношения к тому, что ты говоришь и относишься к другим проектам.
Если бы Spec256 не был-бы нужен, то не было-бы эмулятора (http://kolmck.ru/apps/EmuZ/EmuZWin_Eng.htm) и аппаратной его реализации (http://zx-pk.ru/threads/28312-spec256-na-divgmx.html). А что есть по "ЮлииИксандровны"? Ничего )
ZX NEXT неоправданно дорог и убог, у меня DivGMX )

Totem
04.03.2018, 22:13
Если бы Spec256 не был-бы нужен, то не было-бы эмулятора (http://kolmck.ru/apps/EmuZ/EmuZWin_Eng.htm) и аппаратной его реализации (http://zx-pk.ru/threads/28312-spec256-na-divgmx.html). А что есть по "ЮлииИксандровны"? Ничего )
ZX NEXT неоправданно дорог и убог, у меня DivGMX )

Для тебя ничего, ты взял старый проект с эмулятора, и его воплотил в железку, с нюансами, почему ты думаешь, что тут другой путь? эмулятор есть, причем все идеи, уже реализованные, в разы превосходят и Spec256 и NEXT, то, что у тебя мания величия с DivGMX, это и так понятно.
Он здорово, я одобрямс, но можно и нужно сделать лучше, чем собственно мы и занимаемся.

vlad
04.03.2018, 22:25
эмулятор есть, причем все идеи, уже реализованные в разы превосходят и Spec256 и NEXT
Я тебе уже устал писать, что нужна инфа по ZXULAX, чтобы её можно было реализовать, есть уже даже железо для этого, хз что еще добавить... (

Totem
04.03.2018, 22:42
Я тебе уже устал писать, что нужна инфа по ZXULAX, чтобы её можно было реализовать, есть уже даже железо для этого, хз что еще добавить... (
А я устал писать, что как только, так сразу будет в отрытом доступе, есть еще не проработанные вещи с блиттером.

AzAtom
04.03.2018, 22:48
Если в целом посмотреть на все эти улучшения графики и прикрутку всяких ускорителей, то приходит понимание, что всё это уже сделано - берите и программируйте для dendy, там всё это уже есть! :)

Totem
04.03.2018, 23:00
Если в целом посмотреть на все эти улучшения графики и прикрутку всяких ускорителей, то приходит понимание, что всё это уже сделано - берите и программируйте для dendy, там всё это уже есть! :)
Ну можно, причем на хабре есть несколько статей по теме Dendy- привычное для нас название, вот только там нет столько игр и никогда, они написаны не будут, а на ZX есть минимум 200-250 штук только из старых, которые, чуть улучшить и они не будут уступать большинству поделок на андроиде.

Lethargeek
04.03.2018, 23:01
Я тебе уже устал писать, что нужна инфа по ZXULAX, чтобы её можно было реализовать, есть уже даже железо для этого, хз что еще добавить... (
хватит, не придуривайся на публику, будто бы ты писем не получал :v2_dizzy_stop:

Totem, не корми тролля!

AzAtom
04.03.2018, 23:34
вот только там нет столько игр и никогда, они написаны не будут
Нет, потому, что средства разработки не были доступны, в отличие от того же для спектрума, оно и понятно. А не будет, потому, что бум уже прошёл, что-то новое сделают только ностальгирующие, равно как и для спектрума.

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

vlad
04.03.2018, 23:34
хватит, не придуривайся на публику, будто бы ты писем не получал :v2_dizzy_stop:
64467

AzAtom
04.03.2018, 23:38
Эх, помнится, году в 2000 я тоже загорелся желанием сделать видеокарту для спектрума... Ничего не вышло, тема оказалась слишком обширная для непрофессионала, дело закончилось просто изучением схемы Ленинград-1. :). Ещё с одногруппниками обсуждали возможность сделать ноутбук на базе спектрума.

omercury
05.03.2018, 01:13
В верхней стороке и левом столбце теперь отображается уже выдвинутая нижняя строка и правый крайний столбец изображения. Так?
Неа!
Надо выдвигать то, чего не было.)))
В самом дубовом случае ещё 8 экранных областей фона, что, конечно же, упростит и аппаратную и программную части комплекса. ;)

Totem
05.03.2018, 10:39
Тут ведь, вопрос в другом. Железячник хочет сделать железку для себя (в основном), или программист хочет новую железку потыкать?
Скорее общее желание, сделать вменяемую железку. А не очередной, не совместимый ни с чем режим.

AzAtom
05.03.2018, 13:45
Второй параллельный экран вводится с той же самой организацией графики и цвета как и оригинальный. Но в этом втором экране имеется ещё один слой, работающий только на запись. Это слой маски.
Это один из самых лучших вариантов.

Думал, может уже сразу сделать по 2 бита на пиксель, и из 4 цветов 1 прозрачный. Но в итоге получим 3 цвета на все спрайты, что совсем плохо. Остаётся озвученный выше вариант.

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

Или, уж, сразу аппаратные спрайты делать. Тогда стандартный экран остаётся фоном и добавятся спрайты. Их уже можно делать 16 цветными. Можно сделать палитру из 256 цветов. Спрайт 4 битный и у каждого спрайта есть 4 битный номер подпалитры. Итоговый индекс из общей палитры составляется из 4 бит самого спрайта и 4 бит номера подпалитры. Т.о., палитру 256 цветов можно будет разбить на 16 подпалитр и каждую выделить для разных объектов (ГГ, враг1, враг2, враг3, взрыв и т.д.). И цвета можно менять просто указав у спрайта другой номер подпалитры. В общем, примерно как у dendy, но не 2, а 4 бит на пиксель спрайта.
Фон тоже желательно снабдить аппаратным скроллером. Тогда будет классно.


Хм, а ведь если бы на dendy сделали сразу 4 битные спрайты (15 цветов), то всё выглядело бы красивее и сега могла и не взлететь...

zx-kit
05.03.2018, 15:49
Это один из самых лучших вариантов.

Думал, может уже сразу сделать по 2 бита на пиксель, и из 4 цветов 1 прозрачный. Но в итоге получим 3 цвета на все спрайты, что совсем плохо. Остаётся озвученный выше вариант.

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

Или, уж, сразу аппаратные спрайты делать. Тогда стандартный экран остаётся фоном и добавятся спрайты. Их уже можно делать 16 цветными. Можно сделать палитру из 256 цветов. Спрайт 4 битный и у каждого спрайта есть 4 битный номер подпалитры. Итоговый индекс из общей палитры составляется из 4 бит самого спрайта и 4 бит номера подпалитры. Т.о., палитру 256 цветов можно будет разбить на 16 подпалитр и каждую выделить для разных объектов (ГГ, враг1, враг2, враг3, взрыв и т.д.). И цвета можно менять просто указав у спрайта другой номер подпалитры. В общем, примерно как у dendy, но не 2, а 4 бит на пиксель спрайта.
Я думал о слое спрайтов (не аппаратных спрайтах). Например, 2 точки на байт. Рисовать вертикальными линиями командой LDIR. Но это не похоже на экран Спектрума. Хотя может и проще, чем три дополнительных слоя (маска+bitmap+attr).

Давайте обсудим этот вариант. Можно например, фон оставить как Спектрум+линейная адресация+атрибут на 8 точек+аппаратный скроллинг. А спрайтовый слой по 2 точки на байт.


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


Хм, а ведь если бы на dendy сделали сразу 4 битные спрайты (15 цветов), то всё выглядело бы красивее и сега могла и не взлететь...
У Сеги 2 слоя фона со скроллингом и экран шире и спрайтов больше и цветов больше.

Бука
05.03.2018, 17:23
Я думал о слое спрайтов (не аппаратных спрайтах).

В Timex 2068 были аппаратные два экрана в 16к нижней памяти, аппаратный мультиколор и 512*192.

Вот если бы из двух экранов было бы аппаратное наложение, де еще с 1м прозрачным цветом то было бы красиво, особенно для 1982го.

Но 2 байта чтения памяти за раз это мало, а больше это уже не ULA. Я бегло пролистывал многочисленные споры "4 или два байта" на этом форуме, ясно что таки 2шт.

Но и четыре вроде как не так уж сложно по схематике того же 82го.

zx-kit
05.03.2018, 18:19
Чем больше я думаю об улучшении режимов, тем чаще возникает мысль, что надо остановиться на таком режиме, который позволяет отобразить старую заставку к игре, спрайт или тайл, нарисованный для Спектрума. Если новый компьютер не позволит это сделать, значит это не потомок Спектрума.

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

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

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

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

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

Lethargeek
05.03.2018, 19:48
Вот если бы из двух экранов было бы аппаратное наложение, де еще с 1м прозрачным цветом то было бы красиво, особенно для 1982го.
да ну, это даже для 1982 было ниочинь

Бука
06.03.2018, 10:47
да ну, это даже для 1982 было ниочинь

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

Вообще главная беда Спека что он делался "в стиле синклера" компом на год-другой, придавить конкурента Акорн ББЦ/

Хотя память та же отчаянно дешевела с 81го но никаких вариантов расширения не было, и зачем-то даже RAM CS со слота расширения убрали (на ZX81 это позволяло подцепить внешний маппер на сколько угодно ОЗУ).

https://sun1-4.userapi.com/c840634/v840634580/5dee6/FMskLOnQX0Y.jpg

bigral
06.03.2018, 14:43
То что память дешевела синклеру мало помогло, у нас есть клоны у которых 4Mb памяти... и что? Если памяти много но она не может быть загруженна на 100% своей пропускной способности и обьема то это деньги на ветер. Философия первых компов типа vic-20, atari 8bit, zx80 (да и второй волны - c64, zx-spectrum, amstrad) была в том чтоб использовать память на максимум и по обьему и по скорости, чего они и добились успешно. Именно потому и существует сегодня наше хобби, и это хобби не про 486-й начала 90-х с кучей бесполезных мегабайтов и двухуровневым кэшем а именно про "домашний" комп и спользующий ресурсы почти на 100%.

Если "идеальный спектрум" будет использовать свою память менее чем на 50% (по обьему и пропускной способности), то это будет всего лишь еще один комп в стиле tsconf... который может тоже что и msx+ (только msx+ работает на 3.5mhz а tsconf на 28mhz + несколько буферов двухпортовой памяти). Ну и интерес к нему будет минимальный...

Lethargeek
06.03.2018, 19:59
Почему? Стандартный экран для фона, второй для спрайтов без клешинга с первым, 4 цвета на знакоместо. Ну и мультиколор никто не запрещает оставить.
потому что для почти того же эффекта проще было вкрячить готовый TMS9918A

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


Хотя память та же отчаянно дешевела с 81го но никаких вариантов расширения не было, и зачем-то даже RAM CS со слота расширения убрали (на ZX81 это позволяло подцепить внешний маппер на сколько угодно ОЗУ).
48k хватит всем :D

Бука
06.03.2018, 22:08
для почти того же эффекта проще было вкрячить готовый TMS9918A

Он заметно дорог в те годы, и кстати амеры в расширение ZX81 его вкрячивали успешно.

Тут речь идет про апнутую ЮЛУ, с аппаратным гигаскрином (с прозрачностью). Программирование веселых игр даже из барсика было бы простым и быстрым.

Кстати не понятно почему в Спек не взяли юлу с 81го (обработка клавы и мафона 1в1) и не добавили вторую для графики. Впрочем возможно на прототипах так и было, а глюк Issue I с клавой связан как раз с форсированной попыткой впихать всё в 1шт.


48k хватит всем

Напоминаю что IBM PC производился в 81-83м с моделями с 16 и 64кб, штатно расширяемыми максимум до 256кб. ;)

Впрочем это только мысли об, так что можно помечтать дальше...

zx-kit
07.03.2018, 16:57
У слоя фона тоже можно маску сделать. За ним можно сделать последний фон - backcolor. Прикинул, как реализовать несколько слоев. Для каждого типа слоя - bitmap, attr, mask отдельную микросхему SRAM. Если взять 3 микросхемы по 128Кбайт, то можно сделать от двух до четырех слоев.

Надо для нового компьютера определиться с расположением битов яркости в новом атрибуте, какую частоту Z80, какую частоту INT, какой выход цифровой RGBI 50 Hz или VGA 640x480.

OrionExt
07.03.2018, 18:24
Мне вот это все напоминает басню Крылова. И параллельные темы - музыканты...

SaNchez
07.03.2018, 20:44
То что память дешевела синклеру мало помогло, у нас есть клоны у которых 4Mb памяти... и что? Если памяти много но она не может быть загруженна на 100% своей пропускной способности и обьема то это деньги на ветер.
Боже, какой бред... Аж бомбануло... Какой-же ты ламер, сферический в вакууме, из палаты мер и весов.


У слоя фона тоже можно маску сделать. За ним можно сделать последний фон - backcolor. Прикинул, как реализовать несколько слоев. Для каждого типа слоя - bitmap, attr, mask отдельную микросхему SRAM. Если взять 3 микросхемы по 128Кбайт, то можно сделать от двух до четырех слоев.
Imho, cделай 1) layer2 256х192х256; 2) блиттер, который может за фрейм такой layer2 раза 4 перерисовать; 3) потом сделай дизайн клёвого корпуса с клавой, чтобы не хуже 48 резинки; 4) организуй производство, чтобы ценник для конечного пользователя был не выше 99 фунтов. И люди подтянутся! (Скажу тебе по секрету, можешь первые 2 пункта пропустить и воткнуть малинку. Если остальные два пункта будут выполнены - тебя ждёт успех).

zx-kit
08.03.2018, 06:46
Текущая концепция модульного компьютера «METEOR», потомка «ZX Spectrum» (180421)

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


Улучшения в новом компьютере по сравнению с «ZX Spectrum»

Два положения INT:
1. Сразу после отображения последней строки окна 256х192. Дает программисту больше времени для вывода на экран до начала отображения окна.
2. Для некоторых игр сделать второй вариант - INT во время отображения первой строки окна 256х192 точки.

Три улучшенные спековские плоскости графики с маской. Улучшают внешний вид и динамичность игр. Избавляют программиста от необходимости перерисовки фона при движении спрайтов главного героя (ГГ), врагов и других объектов. Устраняют клешинг атрибутов фона за счет того, что спрайты рисуются в другой плоскости. Каждая плоскость спековской графики дополнена слоем маски для указания прозрачности. Позволяют наложить одновременно три спековских плоскости графики.

Аппаратный мультиколор 8x1. Байт атрибут на 8 точек. Улучшает цветовые возможности игр. Предусмотрена возможность автоматического заполнения области атрибутов текущим значением ATTR при записи байта в область BITMAP. Это упрощает заполнение области атрибутов без отдельных команд расчета адреса и записи в экранную область.

Flash-Bright. 7-й бит атрибутов цвета вместо режима мигания (FLASH) управляет яркостью фона (PAPER). 6-й атрибутов цвета отвечает за яркость только пикселей (INK). Улучшает цветовые возможности игр.

Два экрана — теневой и отображаемый. Устраняют мерцание экрана во время построения нового изображения, освобождают основное ОЗУ от буфера, который использовался в старых играх для предварительного построения изображения перед копированием на экран. Ускоряют игры, так как отпадает необходимость копирования из буфера на экран. Теперь достаточно переключить экраны. На одном экране строим изображение, другой в это время отображается на телевизоре/мониторе.

Расположение всех экранов и слоев с адреса 0000H вместо ПЗУ. Упрощает и ускоряет расчет адреса байта на экране и освобождает основное ОЗУ с адреса 4000H на месте старого экрана Спектрума.

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

Линейная адресация экранных байтов. Упрощает и ускоряет подпрограммы рисования на экране. Для перехода к байту ниже надо увеличить на единицу младший байт адреса. Для перехода к байту справа надо увеличить на единицу старший байт адреса. Упрощает и ускоряет расчет адреса в экранной области. Позволяет рисовать спрайты и тайлы командами LDIR и «змейкой».

Дополнительный задний фон BACK_COLOR. Цвет, который виден сквозь три плоскости спековской графики с маской. Улучшает цветовые возможности игр.

Новый коммутатор памяти. Позволяет переключать в четырех окнах по 16 Кбайт в адресном пространстве Z80 произвольные типы памяти в любой комбинации (основное ОЗУ, видеопамять, картридж и т. п.). Например, можно в окне 0 разместить память видеокарты, в окне 1 — программу, в окне 2 — распакованные уровни игры, в окне 3 — спрайты и тайлы на картридже без копирования в ОЗУ. Порты выбора типа памяти и номера страницы в окнах специально сделаны с однобайтовой адресацией. Это ускоряет и упрощает настройку конфигурации памяти.

FLASH картридж вместо ПЗУ. Позволяет просто и быстро загрузить игру без операционных систем, ожидания загрузки с устройств типа магнитофонов, MP3-плееров, дисководов, SD-карт и т. п. Теперь нет необходимости в ПЗУ BASIC-а, вводе команд для загрузки и хождения по каталогам. Все быстро и просто. Принцип загрузки похож на загрузку игр на приставках NES и SEGA MEGADRIVE. Размер FLASH картриджа может быть от 128 Кбайт до 4 Мбайт.

Порт геймпада от SEGA MEGADRIVE. Позволяет стандартизировать управление в играх. Один геймпад с двумя используемыми кнопками FIRE заменяет несколько типов джойстиков и PS/2 клавиатуру. Упрощает программирование и управление в играх.

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

Простота и доступность. Легко понять принцип работы компьютера. Из схемы убрано все лишнее, что не особенно нужно для игр. Большинство микросхем в DIP-корпусах. Это позволяет самостоятельно спаять новый компьютер.

Lethargeek
08.03.2018, 14:25
4 спековских слоя с маской. Улучшают внешний вид и динамичность игр. Избавляют программиста от необходимости перерисовки фона при движении спрайтов главного героя (ГГ), врагов и других объектов. Устраняют клешинг атрибутов за счет того, что спрайты рисуются в другом слое с маской.
где же устраняют, когда при количестве больше трёх спрайты будут клэшить со спрайтами в том же слое
а при горизонтальном сдвиге - клэш внутри спрайта, сами спрайты примитивные и "дырявые"


Два экрана — теневой и отображаемый. Устраняют мерцание экрана во время построения нового изображения, освобождают основное ОЗУ от буфера, который использовался в старых играх для предварительного построения изображения перед копированием на экран. Ускоряют игры, так как отпадает необходимость копирования из буфера на экран. Теперь достаточно переключить экраны. На одном экране строим изображение, другой в это время отображается на телевизоре/мониторе.
два каких экрана - четырёхслойных?
ты же вроде "избавляешь программиста от необходимости перерисовки фона"
значит, часто фон переключать не нужно, лишь часть слоёв


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

barsik
08.03.2018, 14:42
Вот текущая концепция модульного компьютера

Эта тема о развитии платформы ZX, а про модульный компьютер есть другая тема.

Зачем модульность? Достаточно одной платы, где стоит слот для контроллера винта/флопа/microSD/картриджа и мелкий разъёмчик для расширения памяти. Важно сократить размер печ.платы. К тому же очень сложно ZX-видеоадаптер вынести в отдельную плату.

И Вы забыли написать главное, с чем есть совместимость. С ZX-Spectrum 16К из 1982 ? Исходя из описания Вы наворачиваете никому в ZX ненужную новую архитектуру памяти, но ни слова не пишете о совместимости с Spectrum-128.

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

Кстати, не проблема получить и экран 512*192, причем нормальный. Оказывается совсем необязательно иметь пиксель клок 7 МГЦ, можно и 6 МГЦ. В SAM Coupe стоит Z80 на 6 МГЦ и в режиме 256*192 пиксель клок не 7, а 6 МГЦ, причём совместимость с ZX-48К сохранилась на 100%. 6 МГЦ клока не только раздвигают растр 256*192 на весь экран, но главное, при этом нормально выглядит режим 512*192. Чтобы подогнать скорость к скорости ZX, можно аппаратно вырезать один импульс CLK из трёх (или два из пяти), что сократит скорость прогона, а ещё проще применить WAIT.

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

Это изделие даже, со всеми вышеизложенными прибамбасами, всё-равно останется разработкой на уровне 1985 года (несравнимой даже с SAM Coupe, не говоря уже о ZX-NEXT). Зато если сделать всё, как предложил я (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952843&viewfull=1#post952843), то этот комп будет хотя бы простым, технически красивым и целесообразным.


Дополнительный задний фон BACK_COLOR. Цвет, который виден сквозь 4 слоя спековской графики с маской. Улучшает цветовые возможности игр.
Совсем непонятно о чём это и похоже неверная терминология. Видимость определяется взаимным расположением слоёв. Фигурка на более переднем слое закрывает собой задние слои. Так что если что-то на данном слое всегда видно, то это самый передний, а не задний слой.

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


Атрибут на каждые 8 точек
Неконкретно. Какой именно слой с таким цветом? Слой заднего плана, что в режиме совместимости работает как обычный ZX-экран, должен иметь стандартную организацию цвета. Только экран спрайтов может отличаться по цвету.


Расположение всех экранов и слоев с адреса 0000H вместо ПЗУ
Неточно. ZX-экран, который одновременно является плоскостью заднего плана для совместимости должен остаться на старом месте и незачем тратить детали на его перенос на место ПЗУ.


SRAM 128K 70 ns в корпусе SOIC
Никто не сумеет припаять планарные микросхемы с шагом 0.75 мм? Лучше применить DIP кэш-память от 486-тых (типа w24512). Она такая же быстрая. Есть DIP-статика и большего объёма, но старая кэш-память у большинства уже имеется, а для остальных обойдётся дешевле, чем более современная.

Totem
08.03.2018, 15:12
Никто не сумеет припаять планарные микросхемы с шагом 0.75 мм? Лучше применить DIP кэш-память от 486-тых (типа w24512). Она такая же быстрая. Есть DIP-статика и большего объёма, но старая кэш-память у большинства уже имеется, а для остальных обойдётся дешевле, чем более современная.
вас вообще не смущает, что кроме теоретической скорости выборки из памяти, нужно еще и производить действия с каждым пикселем?

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


Эта тема о развитии платформы ZX, а про модульный компьютер есть другая тема.
От именно, делайте уже "Иришу"

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


Это изделие даже, со всеми Вами предложенными прибамбасами, всё-равно останется разработкой на уровне 1985 года (несравнимой даже с SAM Coupe, не говоря уже о ZX-NEXT). Зато если сделать всё, как предложил я, то этот комп будет хотя бы технически красивым и целесообразным.
Дельное замечание, оставьте ZX в покое, изделий и так столько, что сам "великий чиорный кот, давно утаунул в теории", не о тебе речь, на Вы не буду, это напрасно .

zx-kit
08.03.2018, 17:00
где же устраняют, когда при количестве больше трёх спрайты будут клэшить со спрайтами в том же слое
а при горизонтальном сдвиге - клэш внутри спрайта, сами спрайты примитивные и "дырявые"

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


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

В каждом слое по 2 экрана и их можно менять выборочно и при необходимости не менять.

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

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

Totem
08.03.2018, 17:16
Этот клешинг оставлен специально. Зато экран ближе к спековскому. Если убрать совсем, то от спека ничего не останется и ты сам сказал бы, что это не Спектрум. Главное, что нету крупного клешинга. В этом помогает маска. Его можно обойти, если не приближать объекты друг к другу.
Иногда у людей создается иллюзия от иллюзий, это не недостатки-как ты думаешь зачем уже год почти, работаем над концептом, где уже все давно предусмотрено и не рождая новых "монстров"? Странно да? ты действительно думаешь, что все , что ты видел это фэйк?

zx-kit
08.03.2018, 17:16
Эта тема о развитии платформы ZX, а про модульный компьютер есть другая тема.
Зачем модульность? Достаточно одной платы, где стоит слот для контроллера винта/флопа/microSD/картриджа и мелкий разъёмчик для расширения памяти. Важно сократить размер печ.платы. К тому же очень сложно ZX-видеоадаптер вынести в отдельную плату.

Да, Спектрум был не модульным. Из-за этого для исправления старых ошибок и добавлени новых выпускали все новые и новые версии плат. Даже и сейчас у современных компьютеров встречаются ошибки. И было бы проще исправить одим модуль, чем весь компьютер. Кроме этого может кто-то захочет установить Z80 в корпусе PLCC. Он сможет поставить другую версию платы процессора. Или кто-то захочет вместо 128К поставить 64 К или 1 М. А для этого нужны разные модули ОЗУ. Поэтому предется делать модульным.

И Вы забыли написать главное, с чем есть совместимость. С ZX-Spectrum 16К из 1982 ? Исходя из описания Вы наворачиваете никому в ZX ненужную новую архитектуру памяти, но ни слова не пишете о совместимости с Spectrum-128.

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

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

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


Кстати, не проблема получить и экран 512*192, причем нормальный. Оказывается совсем необязательно иметь пиксель клок 7 МГЦ, можно и 6 МГЦ. В SAM Coupe стоит Z80 на 6 МГЦ и в режиме 256*192 пиксель клок не 7, а 6 МГЦ, причём совместимость с ZX-48К сохранилась на 100%. 6 МГЦ клока не только раздвигают растр 256*192 на весь экран, но главное, при этом нормально выглядит режим 512*192. Чтобы подогнать скорость к скорости ZX, можно аппаратно вырезать один импульс CLK из трёх (или два из пяти), что сократит скорость прогона, а ещё проще применить WAIT.

К сожалению эти режимы удаляют совместимости компьютеров. Этот режим или подобный будет в компьютере CHELYABINSK или HORIZONT. В этом компьютере они чужды, не позволяют писать быстрые игры и мало кому могут потребоваться. Схема итак будет сложная. Надо от всего лишнего избавляться и оставлять только самое необходимое и эффективное.


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

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


Это изделие даже, со всеми вышеизложенными прибамбасами, всё-равно останется разработкой на уровне 1985 года (несравнимой даже с SAM Coupe, не говоря уже о ZX-NEXT). Зато если сделать всё, как предложил я (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952843&viewfull=1#post952843), то этот комп будет хотя бы простым, технически красивым и целесообразным.

В этом есть определенный смысл. Если разрабатывать совсем на современном уровне это уже не то и не интересно многим.
По моим прикидкам что два слоя/плоскости, что четыре - большой разницы в сложности нет. Деталей только разное количество и размер платы. Но лучше сделать максимальный вариант на 4 слоя. В каждом будут подслои BITMAP, ATTR и MASK.


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

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


Неконкретно. Какой именно слой с таким цветом? Слой заднего плана, что в режиме совместимости работает как обычный ZX-экран, должен иметь стандартную организацию цвета. Только экран спрайтов может отличаться по цвету.

Для простоты реализации все 4 слоя/плоскости проще сделать одинаковыми. И если они в данной точке пустые, то цвет и будет BACK_COLOR. Что рисовать - несколько слоев фона или несколько слоев спрайтов - это на усмотрения программиста. Даже хорошо, если слоев много. Например весь экран движется, а мы захотим снизу наприсовать какие-то индикаторы или другие рисунки. В этом поможет передний слой, который будет пустым на месте игрового поля.



Неточно. ZX-экран, который одновременно является плоскостью заднего плана для совместимости должен остаться на старом месте и незачем тратить детали на его перенос на место ПЗУ.

На старом месте к адресу байта каждый раз приходилось прибавлять 4000H. А это лишняя работа. Поэтому экран передвинут в адрес 0. При этом освобождается место в основном ОЗУ.


Никто не сумеет припаять планарные микросхемы с шагом 0.75 мм? Лучше применить DIP кэш-память от 486-тых (типа w24512). Она такая же быстрая. Есть DIP-статика и большего объёма, но старая кэш-память у большинства уже имеется, а для остальных обойдётся дешевле, чем более современная.
Я имел ввиду крупный SOIC с шагом 1.27, не так и трудно припаять три микросхемы. Остальные DIP. Если брать кэш по 32К, то на каждый слой надо 3 микросхемы кэша.

shurik-ua
08.03.2018, 17:25
Этот клешинг оставлен специально.
Нельзя просто так взять и победить клешинг ))

zx-kit
08.03.2018, 17:30
Иногда у людей создается иллюзия от иллюзий, это не недостатки-как ты думаешь зачем уже год почти, работаем над концептом, где уже все давно предусмотрено и не рождая новых "монстров"? Странно да? ты действительно думаешь, что все , что ты видел это фэйк?
Не знаю, зачем вы делаете ULAX в такой тайне и большинство людей на форуме наверное тоже. Ведь вы даже не написали, что она может и как игры будут переделываться и откуда загружаться несовместимые с концепцией Спектрума файлы конфигурации к каждой игре. Я думаю вам следовало перед разработкой как мне объяснить открыто, как и что ожидает людей. Весьма вероятно, что некоторые люди подсказали бы вам как лучше сделать. А нужно ли это людям ? Какие возможности для облегчения новых игр дает ULAX, зачем там палитра, которая перечеркнет узнаваемость графики Спектрума. Вам ведь уже говорили, что перекрашенные игры лучше оставлять в оригинальный цветах. Значит это никому не нужно. Так что вы рискуете сделать вещь, которая никому не нужна будет. Или вы не хотите обсуждать, чтобы вам не писали как мне, что ваши идеи неправильные, что надо было по-другому ? А сделаете как сделаете и люди будут вынуждены покупать то что сделали и уже вопросов задавать не надо будет ?

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


Нельзя просто так взять и победить клешинг ))

Немного клешинга не помешает.
Концепция экрана на черно-белом байте, байта атрибута и байта маски - это основное, что связывает компьютер "METEOR-128" с его предком "ZX.Spectrum".

Totem
08.03.2018, 17:37
shurik-ua, Клэшинг можно, а разум нет, побори в себе клэшинг

https://b1.filmpro.ru/c/368822.700xp.jpg

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


Не знаю, зачем вы ее делаете. Ведь вы даже не написали, что она может и как игры будут переделываться и откуда загружаться несовместимые с концепцией Спектурума файлы конфигурации к каждой игре. Я думаю вам следовало перед разработкой как мне объяснить открыто, как и что ожидает людей. Весьма вероятно, что некоторые люди подсказали бы вам как лучше сделать.
Наверное "жидаи" затмили твой разум? ты видел демо на чистом BASIC. Странно, что ты хочешь сделать хуже.

AzAtom
08.03.2018, 17:43
6 МГЦ клока не только раздвигают растр 256*192 на весь экран, но главное, при этом нормально выглядит режим 512*192
Как это получается? 512/6 = 85,33 мкс, а надо максимум 52 мкс.

Totem
08.03.2018, 17:47
Немного клешинга не помешает.
Конечно,все низменно для старых игр, где все привычно, зачем прыгать через голову, когда игра и так красивая была?
https://i62.servimg.com/u/f62/19/71/03/95/snow110.png

zx-kit
08.03.2018, 17:59
ты видел демо на чистом BASIC. Странно, что ты хочешь сделать хуже.
Я делаю комп для упрощения разработки новых динамических игр. В моем компьютере BASIC-а не будет. Игры будут запускаться без промежуточных операционных систем, бэйсиков, команд, дисководов и т.д. Даже программу переписывать не надо полностью. Она может работать и в картридже или спрайты брать с картриджа. Я упростил компьютер и оставил самое необходимое и эффективное. Остальное убрал. Для бэйсика полно других клонов.

Какие-то ограничения надо вносить в разработку. Исключать дублирование, лишние сущности и т.п.

Totem
08.03.2018, 18:03
В моем компьютере BASIC-а не будет. Игры будут запускаться без промежуточных операционных систем, бэйсиков, команд, дисководов и т.д. Даже программу переписывать не надо полностью. Она может работать и в картридже или спрайты брать с картриджа. Я упростил компьютер и оставил самое необходимое и эффективное. Остальное убрал. Для бэйсика полно других клонов.

Тогда причем тут ZX Spectrum? если ты настолько слеп и не видишь, что даже на BASIC можешь писать полноцветные игрушки, -"музжчина вы о чем"?

AzAtom
08.03.2018, 18:05
В каждом слое по 2 экрана и их можно менять выборочно и при необходимости не менять.
Тогда можно сделать 4 экрана, один из которых без маски и всегда используется как задний фон, остальные три с масками, и отображение каждого слоя может включаться и отключаться независимо и тогда можно использовать их в такой конфигурации: Постоянный задний фон + слой ГГ + слой врагов + слой анимационных предметов. Или Постоянный задний фон + слой действия 1 + слой действия 2 (1 и 2 переключаются по очереди и выполняют роль отображаемого слоя и буфера, куда строится изображение для устранения мерцания). Ещё можно сконфигурировать (задний слой и слой анимации) 1 + (задний слой и слой анимации) 2. В общем, более гибкая система будет.

Или такой вариант, 5 слоёв.
1 слой - всегда задний фон.
2 слой - может быть слоем заднего фона или совместно со слоем 3 будет слоем анимации, при этом, слой 3 является маской для слоя 2.
3 слой - может быть как самостоятельным слоем для заднего фона, так и слоем маски для слоя 2.
4 слой - всегда слой анимации с маской из 5 слоя.
5 слой - маска для 4 слоя.
У слоёв 1, 2, 3, 4 структура одинаковая и является стандартной для спектрум. У слоя 5 отсутствует область атрибутов.
Ещё можно сделать, чтобы какой-то из этих слоёв стал атрибутом для заднего фона, тогда, будет аппаратный мультиколор 8х1.
Но и без этого 3 слоя можно будет использовать для заднего фона, выводя картинку в формате триколор с минимальной нагрузкой на проц. И ещё останется слой с маской для анимации. С мерцанием триколора непонятно что делать, правда.

barsik
08.03.2018, 18:06
Как это получается? 512/6 = 85,33 мкс, а надо максимум 52 мкс.
Я написал, что пиксель клок 6 МГЦ в режиме 256*192. Естественно в режиме 512 точек пиксель клок, точно также как в Корвете, равен 12 МГЦ. Но даже это слишком много, т.к на видео мониторе растр будет занимать не весь экран, а вот для телевизора это как раз. На мой взгляд оптимальный пиксель клок для 512 точек для монитора это 10.5 МГЦ.

Естественно, разработчики SAM Coupe ориентировались на телевизор. Вообще SAM Coupe (https://sam.speccy.cz/games.html) - шикарный компьютер. Экран 512*192 при 4-х цветах на точку и 256*192 при 16-ти цветах на точку. Вот его клон хорошо бы сделать, хотя бы частичный. Не зря его инженеры разрабатывали целых три года (из-за этого и опоздали).

zx-kit
08.03.2018, 18:06
Конечно,все низменно для старых игр, где все привычно, зачем прыгать через голову, когда игра и так красивая была?
https://i62.servimg.com/u/f62/19/71/03/95/snow110.png
Ну и какой смысл перекрашивать человечка в цвета, которых не было на Спектруме. Лучше бы каплю покрасили в красный цвет.

Totem
08.03.2018, 18:07
Тогда можно сделать 4 экрана, один из которых без маски и всегда используется как задний фон, остальные три с масками, и отображение каждого слоя может включаться и отключаться независимо и тогда можно использовать их в такой конфигурации: Постоянный задний фон + слой ГГ + слой врагов + слой анимационных предметов. Или Постоянный задний фон + слой действия 1 + слой действия 2 (1 и 2 переключаются по очереди и выполняют роль отображаемого слоя и буфера, куда строится изображение для устранения мерцания). Ещё можно сконфигурировать (задний слой и слой анимации) 1 + (задний слой и слой анимации) 2. В общем, более гибкая система будет.

Или такой вариант, 5 слоёв.
1 слой - всегда задний фон.
2 слой - может быть слоем заднего фона или совместно со слоем 3 будет слоем анимации, при этом, слой 3 является маской для слоя 2.
3 слой - может быть как самостоятельным слоем для заднего фона, так и слоем маски для слоя 2.
4 слой - всегда слой анимации с маской из 5 слоя.
5 слой - маска для 4 слоя.
У слоёв 1, 2, 3, 4 структура одинаковая и является стандартной для спектрум. У слоя 5 отсутствует область атрибутов.
Ещё можно сделать, чтобы какой-то из этих слоёв стал атрибутом для заднего фона, тогда, будет аппаратный мультиколор 8х1.
Но и без этого 3 слоя можно будет использовать для заднего фона, выводя картинку в формате триколор с минимальной нагрузкой на проц. И ещё останется слой с маской для анимации. С мерцанием триколора непонятно что делать, правда.
с ТS-CONF знакомы хоть поверхносто?

zx-kit
08.03.2018, 18:12
Для игр BASIC не нужен. Только ценное место занимает в адресном пространстве.

Totem
08.03.2018, 18:19
Ну и какой смысл перекрашивать человечка в цвета, которых не было на Спектруме. Лучше бы каплю покрасили в красный цвет.
Это и есть боль ваших изысканий, видим только ГГ и пару сриншотов.
Хочешь крови сделаешь сам :)

AzAtom
08.03.2018, 18:22
На мой взгляд оптимальный пиксельк клок для 512 точек это 10.5 МГЦ.
Понятно.
По расчётам для получения квадратного пикселя клок получается 7,3846 МГц для 256х192.

Totem
08.03.2018, 18:22
Для игр BASIC не нужен. Только ценное место занимает в адресном пространстве.

Еще раз убеждаюсь в ограниченности твоей, где она не уместна -повторю почти по слогам -" если , даже, на BASIC, ты можешь -"

zx-kit
08.03.2018, 18:23
Тогда можно сделать 4 экрана, один из которых без маски и всегда используется как задний фон, остальные три с масками, и отображение каждого слоя может включаться и отключаться независимо и тогда можно использовать их в такой конфигурации: Постоянный задний фон + слой ГГ + слой врагов + слой анимационных предметов. Или Постоянный задний фон + слой действия 1 + слой действия 2 (1 и 2 переключаются по очереди и выполняют роль отображаемого слоя и буфера, куда строится изображение для устранения мерцания). Ещё можно сконфигурировать (задний слой и слой анимации) 1 + (задний слой и слой анимации) 2. В общем, более гибкая система будет.
...
У слоёв 1, 2, 3, 4 структура одинаковая и является стандартной для спектрум. У слоя 5 отсутствует область атрибутов.
Ещё можно сделать, чтобы какой-то из этих слоёв стал атрибутом для заднего фона, тогда, будет аппаратный мультиколор 8х1.
Но и без этого 3 слоя можно будет использовать для заднего фона, выводя картинку в формате триколор с минимальной нагрузкой на проц. И ещё останется слой с маской для анимации. С мерцанием триколора непонятно что делать, правда.
Я итак предлагаю 4 плоскости. В каждом по 3 слоя. В каждом слое по 2 экрана. И еще один задний фон - просто цвет. Думаю этого достаточно для многих игр. По крайней мере можно будет написать игры, которые невозможно было написать на Спектруме.
Не знаю что такое аппаратный мультиколор 8х1. В каждой плоскости итак байт атрибутов на байт BITMAP. Думаю это оптимально, дальше улушать не особо надо и теряется поожесть на графику Спектрума. Атрибуты должны остаться. И два цвета на 8 точек без палитры тоже. Остальные улучшения для других компьютеров.

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

AzAtom
08.03.2018, 18:25
с ТS-CONF знакомы хоть поверхносто?
Всё украдено до нас? :) Ну так, слышал немного. Подробно не читал.

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


В каждой плоскости байт в слое атрибутов на байт в слое BITMAP.
Байт атрибутов на каждые 8 пикселей в строке (байт пикселей) и есть мультиколор 8х1.

Totem
08.03.2018, 18:54
Всё украдено до нас? :) Ну так, слышал немного. Подробно не читал.

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


Байт атрибутов на каждые 8 пикселей в строке (байт пикселей) и есть мультиколор 8х1.
Ну "это что то бесчеловечно описаное", слепым путь, зрячим отрада

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


Всё украдено до нас?
отнюдь, ТS отличный проект, мне нравится очень, но вот к ZX Spetrum не имеет отношения никакого, это печально.

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


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

Lethargeek
08.03.2018, 18:59
Этот клешинг оставлен специально. Зато экран ближе к спековскому. Если убрать совсем, то от спека ничего не останется и ты сам сказал бы, что это не Спектрум. Главное, что нету крупного клешинга. В этом помогает маска. Его можно обойти, если не приближать объекты друг к другу.
но зачем целых ЧЕТЫРЕ слоя тогда при этом?? :v2_huh:


В каждом слое по 2 экрана и их можно менять выборочно и при необходимости не менять.
то в каждом экране четыре слоя, теперь в каждом слое по два экрана... :v2_wacko:


Я итак предлагаю 4 плоскости. В каждом по 3 слоя. В каждом слое по 2 экрана.
аааа!! кто на ком стоял?.. :v2_dizzy_messed:


Концепция экрана на черно-белом байте, байта атрибута и байта маски - это основное, что связывает компьютер "METEOR-128" с его предком "ZX.Spectrum".
характерной особенностью предка было минимальное количество костылей, а ты хочешь костылей напихать побольше

Totem
08.03.2018, 19:04
то в каждом экране четыре слоя, теперь в каждом слое по два экрана.
У него просто нет памяти, он не знает, куда девать графику и делает дубль, тройная буферезация на ZX

zx-kit
08.03.2018, 19:14
но зачем целых ЧЕТЫРЕ слоя тогда при этом?? :v2_huh:

Vlad хочет сделать XENON 2000 (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952907&viewfull=1#post952907). Похвально.

Lethargeek
08.03.2018, 19:28
Vlad хочет сделать XENON 2000 (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952907&viewfull=1#post952907). Похвально.
и как ему в том помогли бы четыре убогих слоя? тут цветов на точку нужно побольше, на быстрой памяти

Totem
08.03.2018, 19:29
Vlad хочет сделать XENON 2000 (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952907&viewfull=1#post952907). Похвально.

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

Shiny
08.03.2018, 19:44
Интересно, а насколько сложно реализовать адресацию каждой строки экрана? Так сделано на Атари и на Enterprise128: для каждой линии задается видеорежим экрана и адрес видеопамяти.

zx-kit
08.03.2018, 19:48
то в каждом экране четыре слоя, теперь в каждом слое по два экрана... :v2_wacko:
Для понятности лучше использовать плоскости вместо спековских экранов. Их четыре однотипных. Каждую плоскость можно использовать для тайлов фона или спрайтов ГГ или других объектов.

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


и как ему в том помогли бы четыре убогих слоя? тут цветов на точку нужно побольше, на быстрой памяти
Для написания игры типа XENON 2000 вполне хватит четрыех плоскостей с аппаратным скроллингом.

Посмотри на ютубе сравнение видео игры R-TYPE для разных компьютеров (https://www.youtube.com/watch?v=mM4n46KP4OE). Самая красивая получилась для ZX Spectrum-a. Так что дело не в количестве оттенков, а в таланте программиста и возомжностях компьютера.

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


Интересно, а насколько сложно реализовать адресацию каждой строки экрана? Так сделано на Атари и на Enterprise128: для каждой линии задается видеорежим экрана и адрес видеопамяти.
А зачем такое усложнение ?

barsik
08.03.2018, 19:53
предлагаю 4 плоскости. В каждом по 3 слоя. В каждом слое по 2 экрана. И еще один задний фон - просто цвет.Похоже, Вы зациклились и оторвались от реальности.

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

Если уж надо многослойный экран, то альтернативы тому, что я предложил просто нет. А лучше отказаться от многослойности экрана, забыть, всё что здесь обсуждали и сделать обычный ZX с доп.видео режимами от SAM Coupe и клоком Z80 в 6 МГЦ. Там и экран линейный и клешинга нет. И это проще и полезнее, чем сделать никому не нужные 4 плоскости по 3 слоя.


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

Вы что хотите сделать компьютер в единичном экземпляре, причём такой, для которого вообще нет программ? Ясно же, что несовместимый с ZX новодел обречён остаться в единичном экземпляре. И абсолютно лишённым программ. Даже программами CP/M без экрана в 512*192 воспользоваться будет нельзя.

Lethargeek
08.03.2018, 20:00
Для написания игры типа XENON 2000 вполне хватит четрыех плоскостей с аппаратным скроллингом.
чсх оригиналу одного битмапа вполне хватает

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


Посмотри на ютубе сравнение видео игры R-TYPE для разных компьютеров. Самая красивая получилась для ZX Spectrum-a. Так что дело не в количестве оттенков, а в таланте программиста и возомжностях компьютера.
во-во, и даже скроллинг аппаратный не зарешал

Totem
08.03.2018, 20:13
Интересно, а насколько сложно реализовать адресацию каждой строки экрана? Так сделано на Атари и на Enterprise128: для каждой линии задается видеорежим экрана и адрес видеопамяти.
Если тебе не хочется делать 2 версии одной игры на ZX и хочешь чтобы он была и на классике работала,ничего не меняй в коде, у тебя будет желание изучить пару- тройку команд, то путь простой.
Если хочешь, можно сделать больше -можно. Адресация и цвета, роли играть не будут.

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


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

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


Посмотри на ютубе сравнение видео игры R-TYPE для разных компьютеров. Самая красивая получилась для ZX Spectrum-a. Так что дело не в количестве оттенков, а в таланте программиста и возомжностях компьютера
Многие игры, портированные на ZX,интересней, чем оригинальные, там таланта нужно больше было.

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


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

Dr.Potapov
08.03.2018, 20:22
Видео с поддержкой режимов SAM Coupe по-моему было реализовано Майком (Mick). Кстати, Сэм - ооочень клевая машинка, очень жаль что не выстрелила.

Totem
08.03.2018, 20:29
Видео с поддержкой режимов SAM Coupe по-моему было реализовано Майком (Mike). Кстати, Сэм - ооочень клевая машинка, очень жаль что не выстрелила.
К сожалению, байт на 2 пикселя -это жестоко. Будьте проще, если оно надо, не надо есть "мультиколороные" движки, а "Сэм" и работает на других частотах, это как раз, "один из выстрелов в никуда" того вряемя, комп конечно классный, но...

Shiny
08.03.2018, 21:43
А зачем такое усложнение ?

разве усложнение? вполне логичная организация. продавцам воздуха это не понять похоже.

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


Видео с поддержкой режимов SAM Coupe по-моему было реализовано Майком (Mike). Кстати, Сэм - ооочень клевая машинка, очень жаль что не выстрелила.

Мне оказалось сложноватой.

zx-kit
09.03.2018, 07:08
Я разрабатываю новое изделие для любителей программировать и играть в игры на ассемблере без привязки к способу загрузки. Считайте, что программа уже в памяти и перестаньте оглядываться на TRDOS и магнитофон и ломать голову, как загрузить блок данных. Это лишние сущности, которые оптимизированы в новом компьютере. Все данные и код уже в адресном пространстве Z80.

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

Возможно для упрощения отладки надо сделать картридж с возможностью загрузки образа SNA с PC через кабель. Есть у меня проект FAST PC LOADER (http://zx-pk.ru/threads/25615-fast-pc-loader.html). Теперь его легче будет реализовать в новом компьютере без BASIC-a.

На PC можно будет писать игру и загружать для запуска образ SNA 128К.

zx-kit
09.03.2018, 09:19
Оказывается я предложил реализовать два режима, у которых есть названия:

Аппаратный мультиколор. Байт атриботов (ATTR) на байт черно-белой графики (BITMAP).
Flash-Bright. 7-й бит атрибутов цвета вместо режима мигания управляет яркостью фона (PAPER). 6-й атрибутов цвета отвечает за яркость только пикселей (INK).

Подредактировал описание концепции. Ссылка в 1 посте.

Totem
09.03.2018, 09:36
На PC можно будет писать игру и загружать для запуска образ SNA 128К.
а тебе таблетку синию или красную?

Shiny
09.03.2018, 11:47
Аппаратный мультиколор. Байт атриботов (ATTR) на байт черно-белой графики (BITMAP).

ггг, прям Колумб. Это Таймекс. не?

zx-kit
09.03.2018, 11:59
ггг, прям Колумб. Это Таймекс. не?

Это то, чего не было в классике, в Ленинграде, то, о чем все мечтали и что сейчас можно реализовать.
Есть новый проект Pentagon-4096 (http://zx-pk.ru/threads/28489-pentagon-1024-4096-ot-northwood.html). Как вам ? Это еще Спектрум ?
На нашем форуме нет Спектрумов. Каждый делает то, что хочет.

Lethargeek
09.03.2018, 13:47
Назначение — упрощение написания новых динамичных игр путем отображения на экране одновременно 4-х спековских плоскостей с маской и аппаратным скроллингом.
вновь попытка средство представить целью


Сохраняется дух Спектрума, спрайты, тайлы, шрифты, цвета, звуки.
духа спектрума под грудой костылей не останется


Появляется возможность улучшить старые игры.
переписывая "чуть более, чем наполовину"

CLR
09.03.2018, 15:09
Есть мнение, что лучше было не изобретать очередной суперспектрум, а попытаться создать законченный продукт. Да, я говорю о стильном изящном корпусе-в-клавиатуре, в котором находится готовый к использованию компьютер, который можно вынуть из упаковки, подключить питание и монитор и начать использовать. Вот с этим у отечественных спектрумостроителей существенные проблемы. То их продукт в виде материнской платы, которую надо засунуть в некий ящик и подключить ещё массу всякой требухи. То коробочка, к которой надо подключить исчезающую из продажи PS/2 клаву. То вообще непонятная плата с бородой из МГТФ.
Готовый к использованию компьютер, из меню которого можно выбрать любую проверенную временем конфигурацию, чтобы и Профи с CP/M и ATM, и TS Conf, и SAM Coupe, и всевозможные звукокарты и гигаскрины с глюкочасами и чертом лысым - в общем, именно такое устройство никак создать не удаётся.
В этом отношении (готового к использованию изделия) успеха удалось достичь лишь Next’у.

bigral
09.03.2018, 15:33
Боже, какой бред... Аж бомбануло... Какой-же ты ламер, сферический в вакууме, из палаты мер и весов.

Imho, cделай 1) layer2 256х192х256; 2) блиттер, который может за фрейм такой layer2 раза 4 перерисовать; 3) потом сделай дизайн клёвого корпуса с клавой, чтобы не хуже 48 резинки; 4) организуй производство, чтобы ценник для конечного пользователя был не выше 99 фунтов. И люди подтянутся! (Скажу тебе по секрету, можешь первые 2 пункта пропустить и воткнуть малинку. Если остальные два пункта будут выполнены - тебя ждёт успех).

может я и ламер, но до таких ламерских imho не спускаюсь :)

Totem
09.03.2018, 16:05
Это то, чего не было в классике, в Ленинграде, то, о чем все мечтали и что сейчас можно реализовать.
Есть новый проект Pentagon-4096 (http://zx-pk.ru/threads/28489-pentagon-1024-4096-ot-northwood.html). Как вам ? Это еще Спектрум ?
На нашем форуме нет Спектрумов. Каждый делает то, что хочет.

Ну там нормальный "междусобойчик", всегда был, но тут то, на всю округу вещаешь.

AzAtom
09.03.2018, 16:09
4 плоскости по 2 экрана с 2 слоями........ Это сколько там памяти надо угрохать только на отображение картинки? Плюс ещё всё это крутить программно...
Всё таки, надо как-то попроще.

Моё видение идеального: 4 банка для: экранной области, исходных пикселей, исходных атрибутов и исходных масок. Аппаратный блитер. Экран имеет линейную структуру строк. Раздельный bright для paper и ink вместо flash.
1) Отдельная видеокарта, работающая от системного кварца (упрощает синхронизацию).
2) 2 видеорежима - "стандартный" с байтом атрибутов на знакоместо 8х8 пикселей и расширенный с байтом атрибутов на байт пикселей (8х1), режим выбирается битом в байте конфигурации. Итого 6,75 или 12 килобайт памяти экранной области. Может располагаться в 16 килобайтах из РУ6.
3) Три банка по 64 или 256 килобайт для пикселей, атрибутов и масок. Адреса в них совпадают байт в байт, поэтому, при копировании одновременно читается 3 байта из всех 3 банков и далее записывается в экранную память.
4) Аппаратный блитер программируется так, передаётся адрес начала экранной области (2 байта), количество байт в строке (1 байт, значение 1 - 32), количество пропускаемых байт после строки (1 байт, значение 0 - 31), количество копируемых строк (1 байт, значение 1 - 191), адрес начала копируемого спрайта (3 или 4 байта для будущих расширений памяти). Управляющий байт (1 байт), содержит биты режима атрибутов экрана (8х8 или 8х1), режим копирования атрибутов спрайтов (копирование с атрибутом или копирование без атрибута), бит запуска копирования. Чтением бита запуска копирования можно определить окончание копирования этого спрайта. Итого, 9 или 10 байт. Исходные спрайты имеют линейную структуру строк, поэтому, они просто копируются на экран подряд. Если есть желание, можно добавить количество пропускаемых байт после копирования строки, тогда можно будет вырезать куски из большой картинки. В итоге, в режиме байт атрибутов на байт пикселей получаем по горизонтали точность 8 пикселей, а по вертикали точность 1 строка, что позволит облегчить написание игр.
Расчёт скорости. РУ5 работает с частотой чтения 3500000 операций в сек. Из них половина уйдёт на вывод видео, оставшиеся 1750000 (байт/с) получается 1750000 / 50 = 35000 байт за фрейм. Получается, можно успеть 3 раза заполнить видимый экран, что хватит для большинства игр. Так же, во время бордюра можно использовать все циклы записи и скорость увеличится ещё.
В итоге, если начать строить кадр сразу после начала нижнего бордюра, то ещё до КСИ можно заполнить фон, а до начала отображения видимых строк можно вывести все спрайты. Если не получается вывести все спрайты, то можно сначала выводить верхние, а потом более нижние спрайты, тогда вывод успеет до отображения соответствующего спрайта на экране.
При копировании можно задать режим копирования с атрибутам и без. Если без атрибутов, то скорость может быть в 2 раза выше. Итак, читаются 3 байта из 3 банков, байт маски попадает в регистр, который пропускает или не пропускает сигнал WR на микросхемы экранной памяти соответствующих битов, поэтому 1 битные микросхемы будут гораздо удобнее в качестве экранной памяти. А байт атрибутов копируется как есть, если он есть.
В итоге, благодаря скорости заполнения экрана задний буфер для предварительного построения картинки становится не нужен.

Хм, из 35000 байт за кадр байты атрибутов съедят половину... Тогда можно атрибуты разместить в отдельный банк памяти. И в этом случае, копирование как с атрибутами, так и без будет одинаково быстрым.

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

Управление блитером можно осуществлять, выделив ему ячейки памяти, а не порты. Дешифровка нужна более полная, а не как у портов. Можно выделить 16 байт памяти на управление блитером.

В итоге, 16 корпусов РУ6, 24 корпуса РУ5 или РУ7, а так же, счётчики, регистры и сумматоры для блитера.

Думаю, если делать, то надо делать именно так, на элементах тех лет.

zx-kit
09.03.2018, 16:22
4 плоскости по 2 экрана с 2 слоями........ Это сколько там памяти надо угрохать только на отображение картинки?

В итоге, 16 корпусов РУ6, 24 корпуса РУ5 или РУ7, а так же, счётчики, регистры и сумматоры для блитера.

Думаю, если делать, то надо делать именно так, на элементах тех лет.

Я предполагал уложиться в 3 микросхемы SRAM по 128 Kбайт, а ты предлагаешь монстра на 40 микросхемах памяти.
1 слой 16 Кбайт. 3 слоя ATTR, BITMAP, MASK = 3*16. По два экрана 3*16*2. 4 плоскости 3*16*2*4 =3*128
Я предлагаю привычное программное рисование спрайтами и тайлами, а ты блиттер.

Totem
09.03.2018, 16:35
Я предполагал уложиться в 3 микросхемы SRAM по 128 Kбайт, а ты предлагаешь монстра на 40 микросхемах памяти.
а в чем разница если ты, сходу делаешь, сделать ну -стесняюсь сказать -еще один ад, ведь если серьезно, мог бы хоть посмотреть на химеру, там как раз с видеорежимами, все отлично, в вашем понимании конечно.

zx-kit
09.03.2018, 16:39
Есть мнение, что лучше было не изобретать очередной суперспектрум, а попытаться создать законченный продукт. Да, я говорю о стильном изящном корпусе-в-клавиатуре, в котором находится готовый к использованию компьютер, который можно вынуть из упаковки, подключить питание и монитор и начать использовать
...
Готовый к использованию компьютер, из меню которого можно выбрать любую проверенную временем конфигурацию, чтобы и Профи с CP/M и ATM, и TS Conf, и SAM Coupe, и всевозможные звукокарты и гигаскрины с глюкочасами и чертом лысым - в общем, именно такое устройство никак создать не удаётся.
В этом отношении (готового к использованию изделия) успеха удалось достичь лишь Next’у.
Заказной корпус с клавиатурой дороговато заказывать. А собрать в одном компьютере все типы клонов - это большая работа. Если все упаковать в FPGA, то останется только память и FPGA. Тогда можно будет в маленький корпус упаковать и сверху картридж. И без клавиатуры как у Денди и Сеги.

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


а в чем разница если ты, сходу делаешь, сделать ну -стесняюсь сказать -еще один ад, ведь если серьезно, мог бы хоть посмотреть на химеру, там как раз с видеорежимами, все отлично, в вашем понимании конечно.
Да у меня то простой способ, а в химере собрали как в Пентагоне-4096 все возможные режимы. Я же для игр комп делаю. От чего-то надо отказаться. Зачем делать комбайны и монстров, котрые могут все ? Надо, чтобы компьютер умел что-то одно, но хорошо.

AzAtom
09.03.2018, 16:40
Я предлагаю привычное программное рисование спрайтами и тайлами
А скорость? Не, для пошаговых игрушек с 2-3 двигающимися спрайтами это подойдёт, но что-то типа r-type или даже mario сделать будет практически нереально.

zx-kit
09.03.2018, 16:42
А скорость? Не, для пошаговых игрушек с 2-3 двигающимися спрайтами это подойдёт, но что-то типа r-type или даже mario сделать будет практически нереально.Скорость достигается за счет того, что фон не надо будет перерисовывать. Сдвиг то аппаратный. А спрайты Z80 нарисовать успеет.

barsik
09.03.2018, 16:59
8237, применённый в качестве блиттера для бедных, тратя 4 такта на байт, заменяет аппаратные ролики экрана по горизонтали и вертикали. ВТ37 на такте 3.5 МГЦ за время одного кадрового бланка сдвигает весь ZX-экран. А обычно динамичная часть экрана занимает лишь 2/3 экрана. Потому одновременно не надо и блиттер и аппаратные сдвиги. Проще применить 8237, да и с аппаратными сдвигами сложнее программировать, т.к это делает из линейного экрана нелинейный.

И если уж делать горизонтальный аппаратный сдвиг, то с кратностью в одну точку, как ещё в 1985 году было сделано в ОКЕАНЕ-240.2. А вообще, если так уж цените аппаратные сдвиги, то примените антикварный графический процессор NEC 7220 (наш аналог 1809ВГ4), там всё это есть и многое другое.

CLR
09.03.2018, 17:44
Заказной корпус с клавиатурой дороговато заказывать. А собрать в одном компьютере все типы клонов - это большая работа. Если все упаковать в FPGA, то останется только память и FPGA. Тогда можно будет в маленький корпус упаковать и сверху картридж. И без клавиатуры как у Денди и Сеги.

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

P.S. Кстати, если кто захочет минимальный корпус с картриджем без клавиатуры, и с графикой получше чем у спектрума - сейчас в каждом овощном продаются клоны Сеги МД за 2К - и софта там хоть попой жуй, ничего писать не надо :)

zx-kit
10.03.2018, 09:01
Не требуется (речь про атрибут на 8 точек), т.к при нужде можно поиметь 4 цвета точек на знакоместо, а при переделке ZX-игр, чтобы избавить их от клешинга, даже вредно. Речь же именно об игровом компьютере, а возможностей цвета ZX хватало. Мешал только клешинг.


Возможностей цвета в Спектруме не хватало. Спрайты Спектрума без проблем можно будет рисовать с аппаратным мультиколором.

Аппаратный мультиколор значительно улучшает цветовые возможности. Можно без клешинга рисовать горизонтальные полоски, выстрелы, делать красочные тайлы и спрайты, разноцветные шрифты и т.п. Можно посмотреть пример графических эффектов, которые будут возможны в деме Timmy (25 секунд в начале) для TIMEX 2068 (https://www.youtube.com/watch?v=PwIgyTzJdaY).
Больше дем не нашел.

При желании, если объединить все 4 плоскости, то можно сделать заставку, где получится 8 цветов на байт.

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

Denis Grachev написал несколько игр с использованием NIRVANA ENGINE. Немного про мультиколор тут (https://www.ime.usp.br/~einar/bifrost/).

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

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

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

bigral
10.03.2018, 09:10
Всетаки линейная адресация превратит спектрум в специалист. Аппаратный сдвиг, слои это тоже не про zx. ZX разрабатывался как добавление цветов к ZX81... а у того была философия голый z80 с минимальным видеоконтроллером. Так что выходит что идеальный спектрум это обычный 128-й только с быстрой памятью и процессором :)... Но под такое тяжело подготовить софт, так как нет стандарта на скорость. Если установить стандарт 14мгц z80 без торможения памятью и видеопроцессором, то можно без исключения все игры сделать плавными (первый кандидат на доработку - boulder dash). Стандарт назвать zx14.

zx-kit
10.03.2018, 11:34
Всетаки линейная адресация превратит спектрум в специалист. Аппаратный сдвиг, слои это тоже не про zx. ZX разрабатывался как добавление цветов к ZX81... а у того была философия голый z80 с минимальным видеоконтроллером. Так что выходит что идеальный спектрум это обычный 128-й только с быстрой памятью и процессором :)... Но под такое тяжело подготовить софт, так как нет стандарта на скорость. Если установить стандарт 14мгц z80 без торможения памятью и видеопроцессором, то можно без исключения все игры сделать плавными (первый кандидат на доработку - boulder dash). Стандарт назвать zx14.
Надо исправить то, что мешало писать динамичные и красочные игры. При любом изменении получается другой компьютер.

На форуме все компьютеры не оригинальные. Везде делают доработки. ZX-EVO, например, доработанный компьютер. И для него начали писать новые игры.

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

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

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

Приведу в поддержку моей концепции цитаты некоторых спектрумистов:

"... лучший способ избежать клэшинга причем дешевый и сердитый - это 2 или 3 экрана, и для каждого - свое собственное смещение в пикселах по x и y. 0-й экран перекрывается 1-м, 0-й и 1-й - 2-ым, и т.д. Тогда прокрутку или к примеру движение заднего плана (когда игровой объект все время в центре экрана, а движется фон) можно выполнять одной командой вывода в порт, и даже герцов добавлять не надо. И наоборот, можно чуть сдвигать экран со спрайтами, если используется неподвижная комната и движущиеся по нему спрайты."

опять 25. ЕСЛИ ВЫ СОБИРАЕТЕСЬ заставлять ПРОГРАММИРОВАТЬ ВИДЕОВЫВОД заново, то нафига заставлять кодера сдвигать спрайты ПРОГРАММНО перемещая байты и биты в экранной области??????? У вас отдельный девайс предлагается, здорово. Ну и добавьте в него счетчик сдвига относительно верхнего левого угла - для слоя заднего плана хотя бы. А дальше - хочет вася сдвигать, пусть сдвигает. Хочет быстрее чтобы пахало - меняет смещение в порту.
(Владимир Кладов, тут (http://zx-pk.ru/threads/1399-ideya-prostogo-rasshireniya-standartnogo-vidorezhima.html?p=24956&viewfull=1#post24956) и тут (http://zx-pk.ru/threads/1399-ideya-prostogo-rasshireniya-standartnogo-vidorezhima.html?p=28084&viewfull=1#post28084))

" 3.2 Оптимизация структуры растра.

Целью оптимизации структуры растра является ускорение растровых операций за счёт более рациональной его структуры. Результатом оптимизации должен быть растр удобный для видеопрограммирования при работе именно с восьмиразрядными процессорами. Реализовать это возможно за счёт линейной адресации экранной памяти и вариациями горизонтальной или вертикальной её раскладки. Для растра 384х256 наиболее оптимальна вертикальная раскладка, когда номера ячеек памяти растут по колонкам. В этом варианте, благодаря линейной адресации для перемещения адреса «по вертикали» не нужно громоздких проверок, достаточно элементарных команд INC и DEC, а перемещение по горизонтали осталось таким же простым, как и в оригинальной раскладке растра Спектрума."

(Black Cat, тут (http://zx.clan.su/forum/7-28-1))

Totem
10.03.2018, 13:05
Вот и дождались того момента, когда идеи "Чиорного Котэ" возвращаются.:v2_dizzy_biggrin2:

zx-kit
10.03.2018, 13:54
Вот цитаты еще из одного проекта идеального Спектрума:

"любой, кто программировал на Спекки,
скажет - ПАМЯТЬ ! НУЖНА ПАМЯТЬ !!!... Да !
Дополнительных 80К Чертовски нехватает,
чтоб размахнуться по-настоящему!Пускай Z80
такой слабый, но если есть много памяти,то
большинство проблем со скоростью CPU обхо-
димы! Естественно, скажешь ты - ну а что в
этом нового? Подожди, не спеши с выводами-
увидишь... Теперь обратим внимание на ПЗУ-
его мало кто трогает. Во-первых, страница
ПЗУ ВСЕГДА впечатана в нижние 16К. А что,
если убрать Это ограничение? Освобождаются
16К адресного пространства!"

"При использовании техники работы с
двумя видеообластями приходится выводить
графику на 7-ю страницу, где располагается
вторая видеообласть, но при этом графику,
спрайты невозможно держать в странице па-
мяти, так как иначе приходится на каждое,
скажем, считывание байта переключать 7-ю
страницу и страницу с графикой. Естествен-
но, это чрезвычайно тормозит и усложняет
работу программ,поэтому большинство спрай-
тов почти всегда располагаются в основной
памяти компьютера, а не на страницах.
Таким образом, начинает вырисовывать-
ся идея: а что,если можно было бы впечаты-
вать страницы не только в верхние 16К? От-
лично!!! Вспомним,что всего у нас 64К и их
можно подробить на четыре области по 16 Кб
каждая. Отведем каждой области (окну прое-
цирования)по своему собственному однобайт-
ному порту.Особо подчеркну - адреса портов
должны быть однобайтными!Ха!Таким образом,
записывая нужное значение в нужный порт мы
сможем иметь необходимую страницу в требу-
емом месте и в требуемое время ! И что са-
мое главное,работать сможем ОЧЕНЬ БЫСТРО И
МАКСИМАЛЬНО ЭФФЕКТИВНО РАСПРЕДЕЛЯТЬ ПАМЯТЬ
КОМПЬЮТЕРА!!!"

"Давайте
посмотрим на ошибки Синклера:Если бы Спек-
трум имел возможность подключать ОЗУ вмес-
то ПЗУ,тогда во-первых,можно было бы иметь
разные версии бейсика, а не одну и ту же с
1982 года - просто программистам было бы
ясно - не стоит использовать ПЗУ для напи-
сания своих собственных программ, т.к. оно
может быть изменено. Во-вторых, отпали бы
всякие теневые ПЗУ.В-третьих,можно было бы
эффективно использовать команды RST микро-
процессора Z80 и обходится самым обычным
первым режимом прерываний Z80. Была бы
возможность эффективно изменять сам бейсик
или его отдельные процедуры. И что самое
важное-появились бы дополнительные 16К па-
мяти, если бы бейсик для программы не тре-
бовался (что и бывает в 99. 99 % случаев)."

"Вот я потихоньку и подобрался к само-
му главному-расширению памяти.Вообще, пер-
вое, о чем думаешь,глядя на детища отечес-
твенных разработчиков - зачем так мудрить?
Складывается впечатление, что способ, коим
предлагается управлять всей дополнительной
памятью,придуман как раз специально для
того,чтоб программисты поломали свои голо-
вы. Зачем устраивать управление памятью из
двух портов? Я, вообще, понимаю, что так
гораздо легче построить аппаратную часть
компьютера, но никогда не стоит забывать -
только тот компьютер хорош, у которого все
его ресурсы удобно использовать програм-
мистам!!!"

"Теперь
у меня просто могучие возможности ! Теперь
я не мучаюсь, как раньше. Бывало, задумаю
что-нибудь, и ну давай мозговать, как бы
сделать так,чтоб в зазоре #5B00 #BFFF раз-
местить и код и графику,ведь охота с двумя
видеообластями все сделать. Показываешь
один экран, а сам знай себе,рисуешь на те-
невом! И главное,что ничего не моргает! Но
как бы я все раньше-то сделал? Ведь нельзя
же мне раньше было-то держать всю графику
и коды на страницах! А теперича можно!Знай
только записываю в один из четырех портов
код нужной страницы и пожалуйста - вот она
теперь здесь! Вот сейчас,пихну-ка я в ниж-
ние 16К страничку с кодом, ведь программка
-то у меня ох и здоровая,мегакод называет-
ся. А на следущие 16К врублю страничку со
вторым экранчиком..Эх! помню бывало раньше
там пожизни пятая страница была, чтоб ей
провалиться, а сейчас - чудо! могу врубить
что захочу! Ну а вот раньше, к примеру,
тут всегда вторая страничка торчала,а сей-
час я в аккурат ставлю здесь нужную,а нуж-
на мне с графикой страничка!"

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

(Alex Raider, тут (http://zxpress.ru/article.php?id=421))

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

Lethargeek
10.03.2018, 14:09
zst, не останавливайся, еще мрии 80-х и 70-х сюда тащи :v2_dizzy_punk:

zx-kit
10.03.2018, 14:14
zst, не останавливайся, еще мрии 80-х и 70-х сюда тащи :v2_dizzy_punk:
Тогда еще не было такого количества эмуляторов и клонов и люди мечтали о СУПЕРСПЕКТРУМЕ.

Lethargeek
10.03.2018, 15:05
Тогда еще не было такого количества эмуляторов и клонов и люди мечтали о СУПЕРСПЕКТРУМЕ.
тогда не было такой доступности информации, и мечтали на основе очень ограниченных аналогий

s_kosorev
10.03.2018, 18:47
Почитал описание TSConfig, по всей видимости, проектировали TSConfig по этим цитатам


Во-первых, страница
ПЗУ ВСЕГДА впечатана в нижние 16К. А что,
если убрать Это ограничение? Освобождаются
16К адресного пространства!"


Таким образом, начинает вырисовывать-
ся идея: а что,если можно было бы впечаты-
вать страницы не только в верхние 16К


Отведем каждой области (окну прое-
цирования)по своему собственному однобайт-
ному порту.Особо подчеркну - адреса портов
должны быть однобайтными!Ха!


Давайте
посмотрим на ошибки Синклера:Если бы Спек-
трум имел возможность подключать ОЗУ вмес-
то ПЗУ,тогда


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


И что самое
важное-появились бы дополнительные 16К па-
мяти, если бы бейсик для программы не тре-
бовался (что и бывает в 99. 99 % случаев).


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


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

zx-kit
10.03.2018, 18:58
Почитал описание TSConfig, по всей видимости, проектировали TSConfig по этим цитатам
Не совсем. Адреса портов выбора страниц просили однобайтные. А в TSconf надо записывать 2 байта в BC (http://hype.retroscene.org/blog/dev/181.html).

s_kosorev
10.03.2018, 19:23
Адреса портов выбора страниц просили однобайтные
Имелось ввиду что порт переключается записью в один порт а не несколько

Я понял именно так, и разница не больша

ld bc.xxxx
out (c),a

или
out (xx), a

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

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

К примеру в KAY Scorpion нужно более чем в один порт записывать данные, что бы переключать страницы

shurik-ua
11.03.2018, 06:25
Ещё чуть-чуть и вы ТС-конф родите )

CLR
11.03.2018, 07:05
Забавно, что тема называется «Идеальный Спектрум», а то, что тут пытаются «родить» - как раз таки «неспектрум».

zx-kit
11.03.2018, 07:35
Забавно, что тема называется «Идеальный Спектрум», а то, что тут пытаются «родить» - как раз таки «неспектрум».
Спектрум не идеален. Я хочу исправить его ошибки, недочеты, улучшить. Получим «Идеальный Спектрум», улучшенную модель Спектрума, один из возможных потомков, как и все друие клоны, но которые строились по другим концепциям и не исправляли недостатки Спектрума. Получим новый компьютер в котором что-то исправлено, что-то добавлено, а что-то убавлено по сравнению с базовым Спектрумом. Спектрум - это Спектрум. В нем ничего нельзя изменить чтобы он остался Спектрумом. У нас даже нет полной схемы Спектрума. Почти вся она в ULA, то есть в одноразовой ПЛИС.

И я проектирую Спектрум по концепции не сегодняшнего дня, а на основе того, о чем мечтали в конце прошлого века, но не могли тогда изменить. А раньше мечтали о принципе работы и возможностях, а не о красивом компактном корпусе. Это уже сделали в NEXT. У меня другая концепция. Но и сегодня предложенные мной улучшения нужны и полезны. Я собрал пожелания по улучшению, опыт нескольких людей за несколько лет работы на Спектруме и пробую сделать свой вариант идеального Спектрума. Но мои улучшения обоснованы, а в других клонах пытались сделать из Спектрума PC или Денди или собрать как можно больше графических режимов, способов дешифрации расширенной памяти, устройств ввода-вывода и т.п.

Мой Идеальный Спектрум предназначен для игр в стиле Спектрума, с цветами оригинального Спектрума. Поэтому в этом компьютере я не добавил палитру, USB клавиатуру, сеть, часы, SD, HDMI, SIMM, HDD, FDC и т.п. Оставил только то, что нужно для игр. Для моего Иделаьного Спектрума легко писать игры. Адреса портов однобайтовые, в каждое окно можно будет впечатать любую страницу любого типа памяти, простая линейная адресация экрана, легко сдвинуть экран на нужно количество точек и это делается без мерцаний, рывков и клешинга. Ну я об этом уже несколько раз писал.

Я за основу беру принцип работы игр на Спектруме, какие команды Z80 надо написать для выполнения требуемых операций для вывода графики, сколько это займет времени. То есть смотрю на Спектрум со стороны программиста. И уже не важно, на ПЛИС компьютер или на логике, с какого носителя загружена игра, механическая клавиатура или PS/2 или USB.

Eltaron
11.03.2018, 10:06
Для моего Иделаьного Спектрума легко писать игры. Адреса портов однобайтовые, в каждое окно можно будет впечатать любую страницу любого типа памяти, простая линейная адресация экрана, легко сдвинуть экран на нужно количество точек и это делается без мерцаний, рывков и клешинга.
Ага, то есть в "идеальном" режиме "избавленного от ошибок Спектрума" не будет ПЗУ и экран будет линейным? Я бы ещё предложил выкинуть Z80 (сколько можно тащить это старьё в новые клоны?). Лучше поставить хотя бы 8088.

zx-kit
11.03.2018, 10:10
Ага, то есть в "идеальном" режиме "избавленного от ошибок Спектрума" не будет ПЗУ и экран будет линейным? Я бы ещё предложил выкинуть Z80 (сколько можно тащить это старьё в новые клоны?). Лучше поставить хотя бы 8088.

Я разрабатываю идеальный Спектрум на Z80. Z80 - основа Спектрума. Лучше оставить частоту 3.5 MHz для совместимости, Можно поставить тумблер на 14 MHz, если такую частоту позволит ваш процессор. Но ПЗУ надо убрать. Оно занимает адресное пространство Z80. Для игр ПЗУ не нужно. Раньше там был BASIC. Но проще программу запустить сразу, без BASICа.

Вот в эмуляторе запускаем игру с помощью кнопки F3. ПЗУ уже не нужно. У нас будет Идеальный Спектрум. Ничего лишнего. Почитайте цитаты, приведенные выше. Там написано, что в 99.99% ПЗУ для игр не нужно !

Теперь вы можете записать на FLASH картридж свою программу.

У меня, как и у всех желающих, есть оригинальный ZX Spectrum Plus c ПЗУ и BASIC-ом и Speccy2010. Они для старых игр, а Идеальный Спектрум для новых или улучшенных старых игр.

msm
11.03.2018, 11:14
Так NEXT это тоже не спектрум :). И METEOR-128 аналогично, как и АТМ Турбо.

Софт под спектрум совместимые сейчас пишут исключительно из за спортивного интереса. Из интереса, что можно выжать из крайне ограниченной по ресурсам платформы. При этом де факто максимум там 128 килобайтная версия представляет спортивный интерес. Учитывая, что на просторах СССР какая то популярность была у АТМ турбо, многие тоже ностальгируют по тем временам и из спортивного интереса пишут под эту платформу.

У спектрума всегда был только один видеорежим. И экранная область в 6192 байта. И не предполагалось это менять. Хочешь больше цветов и разрешение, и прешься от z80 - пиши под Amstrad CPC. Под Gameboy Color наконец. Это тоже платформы с ограниченными ресурсами и тоже на z80.

Хочешь сделать что то крутое именно для спектрума, и железное? Подкину пару идей:
1) Устройство устранения клешинга. Подключается к видеовыходу, возможно к шине, и программными способами пытается определить, что такой то пиксель является фоном или движущимся спрайтом, и таким образом формирует новый видеосигнал без клешинга;
2) Устройство увеличения частоты кадров. Снова подключаемся к видеовыходу, возможно к шине, анализируем все это, и программными способами пытаемся достроить промедуточные кадры, когда спрайт или фон смещается сразу на 8 пикселей, а твое мегаустройство дорисовывает кадры, чтоб все смещалось на по 1 пикселю или еще медленнее
3) Устройство повышения четкости шрифтов. Подключаемся к видеовыходу. Распознается в реальном времени картинка, выявляются все те места, которые могут быть шрифтами. И перерисовываются на читабельные для человека, чтоб глаза не напрягались. Было бы полезно для редакторов вроде ZX Word, где символ 4 на 8 пикселей, для редакторов, которые пытальсь аж 80 символов в строке запихнуть, в результате чего там вообще 8 на 3 был размер одного символа
4) Устройство векторизации и сглаживания. Снова подключаемся к видеовыходу. Анализируется в реальном времени картинка. Выявляются те места, которые могут быть линиями. И рендерятся как линии высокого разрешения. В результате Elite, например, будет плавненькой и без рывков. Для Total Eclipse и т.д игрушек с эмуляцией текстур можно тоже распознавать полигоны и текстуры, и рендерить градациями серого.
5) Это скорее всего уже есть, но поддержка палитр. Снова подключаемся к видеовыходу. И заменяем оригинальные цвета на цвета из палитры.

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

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

zx-kit
11.03.2018, 11:25
Такое наверно смогут сделать в далеком будущем. Я пока планирую сделать простой METER-2020. Надеюсь успею к тому году. Как паказывает опыт время летит быстро.

AzAtom
11.03.2018, 13:43
Для игр ПЗУ не нужно. Раньше там был BASIC. Но проще программу запустить сразу, без BASICа.
Можно оставить 4, 8 или все 16 КБ в виде BIOS, содержащим базовые процедуры загрузки с ленты (обычный и турбо режим), загрузки с диска (FDD и HDD). Так же, она должна иметь возможность загрузить стандартный бейсик и вставить его в это окно 0-16 КБ, чтобы иметь возможность быть совместимым с уже имеющимся спектрумом. Игры могут использовать функции из этого BIOS, не изобретая велосипед. Ещё туда нужно разместить процедуры печати на экран и шрифт для той же цели. Так же, процедуры опроса клавиатуры. Хотя, опрос чаще делают самостоятельно, но кому-то может и пригодится. Ну и некий командный интерпретатор тоже не помешает.

zx-kit
11.03.2018, 14:23
Можно оставить 4, 8 или все 16 КБ в виде BIOS, содержащим базовые процедуры загрузки с ленты (обычный и турбо режим), загрузки с диска (FDD и HDD). Так же, она должна иметь возможность загрузить стандартный бейсик и вставить его в это окно 0-16 КБ, чтобы иметь возможность быть совместимым с уже имеющимся спектрумом. Игры могут использовать функции из этого BIOS, не изобретая велосипед. Ещё туда нужно разместить процедуры печати на экран и шрифт для той же цели. Так же, процедуры опроса клавиатуры. Хотя, опрос чаще делают самостоятельно, но кому-то может и пригодится. Ну и некий командный интерпретатор тоже не помешает.
Монитор как у Радио-86РК ?

zx-kit
11.03.2018, 14:47
Вместо набора подпрограмм в ПЗУ наверно лучше коллективно написать библиотеку подпрограмм с исходными кодами для работы с графикой, звуком, клавиатурой.

Lethargeek
11.03.2018, 15:33
Кажется, я понял идею - "Идеальный Спектрум" это такое, на котором ни в коем случае НЕ пойдут (да не осквернят же его!) НЕидеальные игры с НЕидеального (то бишь настоящего) Спектрума! :v2_dizzy_biggrin2:

Shiny
11.03.2018, 16:19
Зачем графические возможности? Есть немало компьютеров с неплохими характеристиками.

Бука
11.03.2018, 16:34
Для игр ПЗУ не нужно

Цитирую вас, тк лень искать изначальный пост.

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

omercury
11.03.2018, 17:26
Я бы ещё предложил выкинуть Z80
Я бы предложил ещё более радикальную идею - выкинуть заодно и всё остальное и заменить коньяком.


ZX-EVO, например, доработанный компьютер. И для него начали писать новые игры.
И сколько сотен тышь игрофф для него уже написано?
Пёс с ними тыщами, скока сотен?


Лучше оставить частоту 3.5 MHz для совместимости,
Ага, и кроме этого для совместимости не оставить вообще ничего....
zst, а не проще ли для совместимости оставить нелинейную адресацию физически и сделать линейную адресацию логически (или наоборот) ?
Ну и переключать это безобразие любимым тумблером. Исключительно для совместимости.... :)
Также мапить ПЗУ если надо и НЕ мапить, если не надо.
И заодно любую страницу мапить в любую область.
Ну да, TS-conf....
Тяжело признать... Да.....

zx-kit
11.03.2018, 18:30
Что вы нашли в ПЗУ такого ценного, чего нельзя записать в ОЗУ или картридж ? Да хоть все ПЗУ запишите в картридж. Компьютер же для игр. Для ПЗУ полно других моделей. Это раньше компьютер был один и старались в него добавить все что можно. Сейчас то зачем делать монстров ? Сейчас у каждого по нескольку Спектрумов под разные задачи. Надо оставить в новом клоне только необходимое, добавить графических возможностей и писать игры. А в другие клоны пусть собирают все возможное старое и новое железо.



Я бы предложил ещё более радикальную идею - выкинуть заодно и всё остальное и заменить коньяком.

Идея хорошая. Подходит для любого проекта.


И сколько сотен тышь игрофф для него уже написано?
Пёс с ними тыщами, скока сотен?

Есть наверно пару сотен уже. Никто ведь не сказал, что это НЕспектрум. Берут и пишут, кому нравится. И вам советую заняться написанием игр.


Ага, и кроме этого для совместимости не оставить вообще ничего....

Скорость нужно оставить только для старых игр, которые можно доработать. В основном для музыки для BEEPERa. А так я бы предложил 20 MHz.


zst, а не проще ли для совместимости оставить нелинейную адресацию физически и сделать линейную адресацию логически (или наоборот) ?
Ну и переключать это безобразие любимым тумблером. Исключительно для совместимости.... :)
Также мапить ПЗУ если надо и НЕ мапить, если не надо.
И заодно любую страницу мапить в любую область.

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

Вы видели экшн-камеру GO PRO или XIAOMI MI ? Оставили только самое необходимое для съемки, даже экрана нет. И все довольны. Кому надо камеру с индикатором покупают с индикатором. И у нас надо сделать также, а не лепить монстров из всех возможных режимов, интерфейсов и другого железа. Если железо для игр не особо нужно, то его убираем из схемы.

Для совместимости можно поставить тумблер 3.5/14 MHz для старых доработанных и новых / только для новых игр.

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

Долго обсуждаем - делать надо !

Totem
11.03.2018, 18:36
Старый - для обучения BASIC-у, Идеальный для игр
Это "парадокс Синклера", они делали комп для обучения, а сделали комп для игр, причем простой и дешевый.
С неплохим "чемоданчиком софта", который можно "рихтануть", до вполне играбельного.
Поду 1 пост обновлю.

CLR
11.03.2018, 18:43
Я вижу проблему даже не в том, что можно сделать "идеальный спектрум", его как раз сделать-то можно, квалификации у вас более, чем достаточно.
Куда бОльшая проблема состоит в том, чтобы убедить людей приобрести этот клон. Как это сделать? Есть идеи? Понятно, что его несомненно купят несколько яростных энтузиастов, соберут в кучу, запустят, поиграются месяц и дальше что? Забросят на шкаф к остальным клонам?
Окей, кто-нибудь их них напишет невероятно классную игру. Для нескольких других пользователей. А остальные будут сосать лапу? Возможно, кто-нибудь сделает эмулятор. И на этом скорее всего все заглохнет. Предложите свой вариант развития событий.

Lethargeek
11.03.2018, 18:45
Есть наверно пару сотен уже
...где-то в параллельной вселенной :rolleyes:


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


Берут и пишут, кому нравится
те, кому не только лишь все берут, мало кто может это пишут :D

zx-kit
11.03.2018, 18:47
Я вижу проблему даже не в том, что можно сделать "идеальный спектрум", его как раз сделать-то можно, квалификации у вас более, чем достаточно.
Куда бОльшая проблема состоит в том, чтобы убедить людей приобрести этот клон. Как это сделать? Есть идеи? Понятно, что его несомненно купят несколько яростных энтузиастов, соберут в кучу, запустят, поиграются месяц и дальше что? Забросят на шкаф к остальным клонам?
Окей, кто-нибудь их них напишет невероятно классную игру. Для нескольких других пользователей. А остальные будут сосать лапу? Возможно, кто-нибудь сделает эмулятор. И на этом скорее всего все заглохнет. Предложите свой вариант развития событий.
Да понял я, надо сделать хороший корпус с клавиатурой, тогда многие купят. А без корпуса, какой бы хороший клон не сделаешь, купят единицы.

CLR
11.03.2018, 18:56
Да понял я, надо сделать хороший корпус с клавиатурой, тогда многие купят. А без корпуса, какой бы хороший клон не сделаешь, купят единицы.

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

P.S. Я не пытаюсь злорадствовать, просто я реалист.

omercury
11.03.2018, 19:53
Предложите свой вариант развития событий.
Как наиболее вероятный, предлагаю такой вариант развития событий: - НИКТО НИЧЕГО не сделает, даже zst...

zst, подойдите к зеркалу и скажите, нет, пообещайте: - "я напишу к 2020 году для "идеального спектрума" 100500 игр!"
"Мамой клянусь!" (с)

...и видео в студию...

После этого можно обсудить и концепт. ;)



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

ZX_NOVOSIB
11.03.2018, 19:59
Лучшая рыба - это колбаса.
Лучший спектрум - это ... ?

omercury
11.03.2018, 20:29
Не знаю, к чему бы это, но данная тема напомнила мне очень давнюю историю: где-то в 80-х достался мне от военных (как оказалось на время) осциллограф С1-54.
По прямому назначению он на то время мне был не нужен, но я придумал ему замечательное применение - подключил к магнитофону и на его огромнейшем (13 см) по тем временам экране наблюдал изумительной красоты осциллограммы!

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

CLR
11.03.2018, 20:31
Зря вы смеетесь. У человека есть желание и возможности сделать нечто большее и лучшее, чем доступно на сегодня. Просто за своим романтизмом можно не заметить, что успех у этого проекта крайне призрачен.
Оригинальные спектрумы брали тем, что их мог себе позволить любой уважающий себя нищеброд с голой жопою, вооружившись в качестве монитора теплым ламповым телевизором, а в качестве накопителя - магнитофоном Весна.
Чтобы хоть как-то зашевелилось написание софта, эта новая платформа должна оказаться у ощутимого числа пользователей, далеко не каждый из которых - программист. Для этого возможны два пути: либо компьютер чертовски дешев, либо дьявольски мощен/универсален/многозадачен/etc.
Где то уникальное торговое предложение, за которым толпы синклеристов, спотыкаясь и падая бросятся скупать платформу - решительно непонятно.
Возможность более удобного написания "более лучших игор" - имхо недостаточно. Только для романтиков разве.

omercury
11.03.2018, 20:49
Зря вы смеетесь.

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

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

AzAtom
11.03.2018, 20:55
zst, может, лучше сделать конфиг с запланированными фишками для ZX-Evo?

omercury
11.03.2018, 21:11
zst, может, лучше сделать конфиг с запланированными фишками для ZX-Evo?

Для ЭВЫ ближайший процессор по цене 12 бакинских штучка;
Нужную ПЛИСину днём с огнём не сыщешь, да она ещё и мала была на момент разработки TS-Conf, не говоря про сегодня. Возможностей расширения уже не имеет;
Память слабодоставаемая (по загашникам онли) да ещё и 5-вольтовая;
Куча никому не нужных на данный момент интерфейсов, но зато с отсутствующими необходимыми.

Пора обновить.

Totem
11.03.2018, 21:16
Для ЭВЫ ближайший процессор по цене 12 бакинских штучка;
Нужную ПЛИСину днём с огнём не сыщешь, да она ещё и мала была на момент разработки TS-Conf, не говоря про сегодня. Возможностей расширения уже не имеет;
Память слабодоставаемая (по загашникам онли) да ещё и 5-вольтовая;
Куча никому не нужных на данный момент интерфейсов, но зато с отсутствующими необходимыми.

Пора обновить.

Нафига, там системный разъем есть. :)

omercury
11.03.2018, 21:22
Нафига, там системный разъем есть. :)

И куда (и кому) его фтыкать? )))
Уважаемый, чифтэки уже неактуальны и не модны. ;)
Либо так https://itc.ua/files/pics/chassis_productimage_gz-s1bps_big.jpg
Либо эдак http://www.inline-online.ru/img/goods/147302/55576.jpg

...если уж вожделенную клаву невообразимо дорого...

Eltaron
11.03.2018, 21:38
Есть наверно пару сотен уже. Никто ведь не сказал, что это НЕспектрум. Берут и пишут, кому нравится. И вам советую заняться написанием игр.

43 (включая конверсии и доисторические релизы под АТМ)
http://alonecoder.nedopc.com/zx/atmsoft.txt

Чисто под пентеву игр всего штук пять, как я понимаю. Это всё как раз та "чужая ошибка", на которой надо бы поучиться. Впрочем, если хочется учиться на своих - пожалуйста. Но стоит учесть, что пентев выпущено невероятное для современного спектрумизма количество (около 300 вроде), под неё есть замеательный EVO SDK. И всё равно игры практически не пишут, потому что терять 99% потенциальных пользователей ради сомнительного улучшения графики никто не хочет.

Сомнительного - потому что НЕТ на спектруме никакой проблемы с клэшингом. Клэшинг - есть, а проблемы - нет. Я даже когда вижу скриншоты Диззи с коммодора какого-нить, мне противно от того, что Диззи непрозрачный. Как Майкл Джексон отбеленный, ей-богу, детей только пугать. Клэшинг - это соль земли спектрумской. Есть клэшинг - есть спектрум. Нет клэшинга - нет спектрума.

Totem
11.03.2018, 21:49
Но стоит учесть, что пентев выпущено невероятное для современного спектрумизма количество (около 300 вроде),
Нормальная платформа, популярная.

Сомнительного - потому что НЕТ на спектруме никакой проблемы с клэшингом. Клэшинг - есть, а проблемы - нет. Я даже когда вижу скриншоты Диззи
это уже чисто на любителя, я уже с трудом могу смотреть на оригинальный Addams Family, одной из крутейших игр по графике и "дизигну уровней", как я раньше считал.

http://zx-pk.ru/threads/27710-zx-ulax.html?p=912751&viewfull=1#post912751

vlad
11.03.2018, 22:24
Для ЭВЫ ближайший процессор по цене 12 бакинских штучка;
Нужную ПЛИСину днём с огнём не сыщешь, да она ещё и мала была на момент разработки TS-Conf, не говоря про сегодня. Возможностей расширения уже не имеет;
Память слабодоставаемая (по загашникам онли) да ещё и 5-вольтовая;
Куча никому не нужных на данный момент интерфейсов, но зато с отсутствующими необходимыми.

Пора обновить.

Так уже идет бурление - ZX-Evolution Rev.D (обсуждение) (http://forum.tslabs.info/viewtopic.php?f=31&t=792)

s_kosorev
11.03.2018, 22:50
Сомнительного - потому что НЕТ на спектруме никакой проблемы с клэшингом. Клэшинг - есть, а проблемы - нет. Я даже когда вижу скриншоты Диззи с коммодора какого-нить, мне противно от того, что Диззи непрозрачный. Как Майкл Джексон отбеленный, ей-богу, детей только пугать. Клэшинг - это соль земли спектрумской. Есть клэшинг - есть спектрум. Нет клэшинга - нет спектрума.
Нужно подумать, как драйвера для NVIDIA доработать, что бы клешинг был, хочу Windows 10 с клешингом

omercury
12.03.2018, 00:44
Так уже идет бурление - ZX-Evolution Rev.D (обсуждение) (http://forum.tslabs.info/viewtopic.php?f=31&t=792)

Старый ацекс (уже сейчас полный подзавязку) остаётся. Ставит две SD-карты, но оставляет ВГ93, руками и ногами цепляется за 5-вольтовую логику...
Циклоны ему не 5v-tolerant видите ли. А что мешает включить питание 5-вольтовой части после конфига ПЛИС?
Странное поведение.

Интересно, догадается ли использовать вычислительные мощности АРМа?
Скажем, через функции ПЗУ. Всё-таки четвёртый кортекс с железным FPU. Васик бы "летал"...
Ну и другие плюшки типа второго ("бесплатного") ДМА.

Ой, ладно, это уже совсем другая история.

AzAtom
12.03.2018, 09:30
Не хотите аппаратный блитер, можно по другому сделать. Тем более, что в том варианте клешинг атрибутов между фоном и объектами остаётся.

Добавить слой для игровых объектов. Добавить 2 поля памяти по 16 кб (из РУ6, например). В одном поле лежит второй слой (второй экран), предназначенный для игровых объектов. Байт атрибутов на байт пикселей, что позволит сделать более симпатичные фигуры героев. А во втором поле памяти лежит маска, которая переключает между стандартным экраном спектрума (фон) и дополнительным слоем (объекты). Все адреса для отображения можно брать от счётчиков самого спектрума. Ускорение работы достигается за счёт отсутствия необходимости восстановления фона. Большой плюс - отсутствует клешинг атрибутов фона и объектов. Строки должны иметь последовательную адресацию.
Запись в эти поля можно осуществлять, установив соответствующий бит в выделенном порте. Можно оставить адреса дополнительного экрана и маски по прежним адресам экрана 4000, а можно переместить в адреса 0000, можно подумать, как будет удобнее.

Почему упоминаю РУ6? Думаю, если что-то улучшать, то есть смысл это делать именно на элементах тех лет.

barsik
12.03.2018, 09:39
AzAtom, если я правильно понял, это я и предлагал (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952843&viewfull=1#post952843) в начале темы. Точнее это отличается от того, что я предложил только тем, что цвет на экранный байт, а не на целый квадрат 8*8, как я считаю правильнее, т.к позволяет не менять графику (а где сейчас найдёшь художников?).

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

Ещё не упомянули о том, прозрачное ОЗУ делать (4 цикла чтения на видеобайт) или такое же как в Синклере с WAIT, когда 3 цикла чтения на видео байт (что на четверть понижает частоту ОЗУ).

На 565 РУ6 получится дорого, т.к плата резко увеличит размер, статика от кэшей 486-тых - вот панацея для экономии места на плате.

А можно просто в одном компьютере объединить два. Никак не связанные друг с другом, т.е никаких масок и сложений графики из разных плоскостей. Только или один режим или другой, получаемые на одном и том же видео-генераторе ZX. А разные плоскости (т.е ИМС ОЗУ) применим просто, чтобы избавиться от коммутаций, что с'экономит детали.

Одна экранная плоскость - обычный ZX (это чтобы была популярность изделия). А вторая экранная плоскость 320*256 c линейным экраном. Читается 80 байтов на строку (в ZX на строку читается 64 байта, но и экран уже). Имеем линейный экран 4 цвета на каждый пиксель и ещё добавляем 2 бита, чтобы получить 4 палитры, причём для каждого экранного байта. Как предложено вот здесь (http://zx-pk.ru/threads/28935-eshche-odin-klon-spetsialista-eureka.html?p=953990&viewfull=1#post953990) в конце поста. В итоге имеем 16 цветов на точку, компьютер для новых игр и минимальное железо, а на клешинг в ZX наплевать.

Eagle
12.03.2018, 10:35
zst в очередной раз хочет устроить лохотрон на продажах со своего помпезного сайта?

AzAtom
12.03.2018, 10:57
barsik, да, примерно так. Только я предлагаю атрибуты улучшить. В том предложении с выводом маски через порт немного не понятно получается. В основном для каждого байта маска разная, поэтому, её придётся обновлять для каждого байта спрайта, что в итоге выйдет даже медленнее, чем программно накладывать маску. По крайней мере, не быстрее. Быстрее будет только если много байтов маски будут одинаковые. А как это узнать, если их не считывать и сравнивать с предыдущим?

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

barsik
12.03.2018, 11:15
для каждого байта маска разная, поэтому, её придётся обновлять для каждого байта спрайта, что в итоге выйдет даже медленнее, чем программно накладывать маску.
Так маску надо не накладывать, а просто записывать в ОЗУ. В этом-то и сюжет, - программное маскирование объектов на фоне заменяется аппаратным. Если маску выводить через регистр, не только отпадет необходимость коммутировать банки, но и можно быстрее двигать по фону вертикальные линии и прямоугольники, а также есть выирыш для окон, - чтобы открыть окно для сообщения, мы заносим в регистр маски FF и очищаем окно в плоскости объектов (плоскость фона не изменяется, но не видна). Получается, в 2.5 раза быстрее, чем писать маску как в обычное ОЗУ, переключая банки для каждого байта. Для вывода спрайта читаем два байта, первый байт сразу кидаем в регистр маски, а второй пишем в экран. Регистр маски экономит время, т.к отпадает переключение банок.

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

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

AzAtom
12.03.2018, 13:46
Так маску надо не накладывать, а просто записывать в ОЗУ.
Я тоже это предлагаю, но без "читаем два байта, первый байт сразу кидаем в регистр маски, а второй пишем в экран.", а просто читаем байт спрайта и пишем его в экран. А байт маски автоматически читается и пишется по тем же адресам, только из банка маски.

Этот банк можно заполнять следующим образом. Ввести в какой-либо порт бит разрешения записи в банк маски. Разрешаем запись и заполняем свою память масками спрайтов. Одновременно они идут и в банк масок. Затем, запись в банк масок запрещается и память по тем же адресам заполняется уже самими спрайтами.

barsik
12.03.2018, 14:50
а просто читаем байт спрайта и пишем его в экран. А байт маски автоматически читается и пишется по тем же адресам
Не. Не вполне дошло о чем здесь речь. Непонятно, что значит "байт маски автоматически читается" при чтении спрайта. Куда читается и откуда? Неконкретно и непонятно написано. Пришлось додумывать, возможно нафантазировал неверно и речь была о другом.

Вроде бы Вы имеете ввиду, что плоскость маски распространяется не только на экран, но и по-крайней мере на участок ОЗУ для подготовки спрайтов. И можно заранее в этом неотображаемом ОЗУ заготовить спрайт с маской. Тогда при чтении байта графики из этого участка ОЗУ автоматически читается байт маски и заносится в регистр маски. И затем эта маска при записи графики автоматически перепишется из регистра маски в плоскость маски. Если речь об этом, то слишком громоздко, нужна простота.

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

AzAtom
12.03.2018, 15:20
barsik, попробую нарисовать свою идею псевдографикой.


[================ФФФФФФФ==================== =====================] - Память спектрума. Тут сидит экран, который является фоном.
/--------------|
|---------/ |
[ССССССС] | - экран для спрайтов.
| |
| |
[ММММММ====================================== ====] - Теневая память для масок.
|-------------------------|
| |
(с2) (спр1)

Когда мы копируем спрайт, то например, читаем байт из адреса (спр1) и пишем его по адресу (с2). В это же время одновременно с ним в памяти маски копируется байт из адреса (спр1) в адрес (с2) байт, который является маской байта пикселей спрайта, который мы сами копируем.

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

barsik
12.03.2018, 15:41
Этот рисунок ничего не поясняет, он бесполезен.



Когда мы копируем спрайт, то читаем байт из адреса (спр1) и пишем его по адресу (с2). В это же время одновременно с ним в памяти маски АППАРАТНО копируется байт из адреса (спр1) в адрес (с2) байт, который является маской байта пикселей спрайта, который мы сами копируем.

Это же, но более понятно я и изложил в предыдущем посте. Непонятно как маска в теневой плоскости возникнет в исходном месте где хранится спрайт, откуда он и переносится программно на экран.

А идея автоматического переноса второго байта (в данном случае цвета) одновремено с копированием графики не нова. Её в железе реализовал sherlock ещё в 1988 году в мелкосерийном компьютере "Радуга".


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

Eltaron
12.03.2018, 15:54
В общем, копируем 1 байт, а на самом деле железом копируется сразу 2 байта в 2 разных банках памяти.

Видеокарта на базе отдельной памяти из 3х микросхем SRAM 128K 70 ns в корпусе SOIC и микросхем счетчиков, регистров и мультиплексоров в корпусах DIP.
Дух старой школы, компьютеры размером в 400 корпусов мелкой логики... Романитика!
Идеальный спектрум будет размером в 1 кв. метр такими темпами. Мне кажется, что "идеальность" всё-таки должна как-то ограничиваться размерами табуретки, на которой спектрум будет стоять перед телевизором. Если хватает одной табуретки, то всё норм. А если требуется вторая, то уже как-то не идеально.

AzAtom
12.03.2018, 16:05
Непонятно как маска в теневой плоскости возникнет в исходном месте где хранится спрайт, откуда он и переносится программно на экран.

Здесь (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=954166&viewfull=1#post954166) написал. Ввести в какой-либо порт бит разрешения записи в банк маски. Разрешаем запись и заполняем свою память масками спрайтов. Одновременно они идут и в банк масок.
То есть, по адресам, где должны быть спрайты, сначала пишем маски спрайтов, потом запрещаем запись в банк масок и теперь уже по тем же адресам записываем сами спрайты. Таким образом, маски оказываются по нужным адресам в банке масок.

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

Eltaron, современный планшет удовлетворяет этим требованиям. :)

vlad
12.03.2018, 18:13
Еще надо сделать линейную адресацию. Увеличение младшего байта адреса в экранной области должно переходить к байту снизу. Тогда проще добавлять фрагменты, которые появляются при скроллинге. Для начала заполни 16 К экранной области с адреса 0000 кодом 0. Тогда при сдвиге будет появляться пустота. Ну и ждем видео циклического плавного сдвига какой-нибудь картнинки.


https://youtu.be/beH324PgYLQ

Lethargeek
12.03.2018, 20:02
Так маску надо не накладывать, а просто записывать в ОЗУ. В этом-то и сюжет, - программное маскирование объектов на фоне заменяется аппаратным. Если маску выводить через регистр, не только отпадет необходимость коммутировать банки, но и можно быстрее двигать по фону вертикальные линии и прямоугольники, а также есть выирыш для окон, - чтобы открыть окно для сообщения, мы заносим в регистр маски FF и очищаем окно в плоскости объектов (плоскость фона не изменяется, но не видна). Получается, в 2.5 раза быстрее, чем писать маску как в обычное ОЗУ, переключая банки для каждого байта. Для вывода спрайта читаем два байта, первый байт сразу кидаем в регистр маски, а второй пишем в экран. Регистр маски экономит время, т.к отпадает переключение банок.
Эээ, минуточку. Нельзя вот так вот просто взять и записать маску. Потому что при наложении (причём даже не попиксельном, а поадресном) двух спрайтов "будит бида". Маска верхнего уничтожит маску нижнего спрайта, и он окажется уродливо обрезанным по прямой. А вот чтобы этого избежать, нужен либо хитрый контроллер записи (чуть ли не на уровне EGA, а не один какой-то жалкий регистр на запись) с режимами объединения и очистки; либо плоскость маски должна быть доступна по чтению, и работать с ней приходится как обычно; либо надо выделять буфер в памяти под операции с масками, и "просто записывать" из него, что совсем не упростит и не ускорит игровой код.

barsik
12.03.2018, 20:37
Эээ, минуточку.... при наложении... двух спрайтов "будит бида". Маска верхнего уничтожит маску нижнего спрайта, и он окажется уродливо обрезанным по прямой
Из двух предыдущих постов ясно, что в этом посте речь идёт о самом оптимальном, самом простом варианте с одним базовым экраном ZX, в бесклешинговой игре используемым в качестве плоскости заднего вида, и всего одной плоскостью переднего вида, с маской автоматически записываемой из регистра маски в недоступную процессору плоскость.

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

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

На мой малокомпетентный взгляд, всё остальное обсуждаемое в этой теме (ну может быть, за исключением прямого экрана 320*256), это переливание из пустого в порожнее.

Потому что настолько сложная мощная конструкция не нужна, да это и не сделать, по крайней мере быстро. Лучше сделать полноценный клон Spectrum-128 с возможностью борьбы с клешингом и дополнительным линейным экраном 320*256, чем клон ZX-48К с улучшенным цветом, аппаратными роликами и с навороченным и никем не используемым менеджером памяти.

Lethargeek
12.03.2018, 21:05
Из двух предыдущих постов ясно, что в этом посте речь идёт о самом оптимальном, самом простом варианте с одним базовым экраном ZX, в бесклешинговой игре используемым в качестве плоскости заднего вида и всего одной плоскостью переднего вида, с маской автоматически записываемой из регистра маски в недоступную процессору плоскость.

Несколько плоскостей переднего плана, не вижу смысла даже обсуждать, о чем десяток страниц выше написал.
:v2_dizzy_facepalm: Еще раз: этот самый "оптимальный вариант с одной плоскостью" в таком виде НЕ ГОДИТСЯ для отображения спрайтов! То есть вообще, от слова совсем. И задник тут ни при чём.

AzAtom
12.03.2018, 21:11
Lethargeek, годится, если спрайты не будут наезжать друг на друга. Согласен, это будет какая-то лажа. Надо, чтобы могли наезжать. Но тут не только маску, но и сами спрайты надо как-то обрабатывать, иначе, то же лажа будет...

barsik
12.03.2018, 21:24
этот самый "оптимальный вариант с одной плоскостью" в таком виде НЕ ГОДИТСЯ для отображения спрайтов! То есть вообще, от слова совсем. И задник тут ни при чём.
Объясните почему этот вариант (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html?p=952843&viewfull=1#post952843) не годится. Тем более "от слова совсем". Я считаю, что по сюжету многоплосковости это оптимально минимальная концепция, решающая проблему клешинга при сохранении родной организации экрана.

А насчёт "задника". Я ведь ничего и не говорил плохого о плоскости заднего плана, которая по определению (ради совместимости, т.к на ней прогоняются ZX-игры) должна остаться стандартным экраном ZX.

Lethargeek
12.03.2018, 21:34
Объясните почему этот вариант не годится.
-

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

barsik
12.03.2018, 22:11
Потому что при наложении (причём даже не попиксельном, а поадресном) двух спрайтов "будит бида". Маска верхнего уничтожит маску нижнего спрайта, и он окажется уродливо обрезанным по прямой.
А зачем же программист имеющий всего одну плоскость для спрайтов будет тупо выводить спрайты один поверх другого. Естественно, чтобы один спрайт прошёл перед другим, как и в базовом ZX, придётся немного сложнее программировать, а не просто копировать.

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

Сначала покажите схему которая аппаратно реализует приоритеты масок для взаимного маскирования двух плоскостей. Любое решение имеет недостатки. 99% времени спрайты двигаются не закрывая друг друга. В ZX-играх пересечения спрайтов разве сильно вредят? А раз есть всё, что есть в ZX, то хуже уж точно не будет.

Lethargeek
12.03.2018, 22:54
А зачем же программист имеющий всего одну плоскость будет тупо выводить спрайты один поверх другого. Естественно, чтобы один спрайт прошёл перед другим, как и в базовом ZX, придётся немного сложнее программировать, а не просто копировать.
но не сложнее же, чем в оригинале, должно быть это


Тут несколько вариантов. Во-первых нижний спрайт можно просто не выводить (как будто он закрыт передним не частично, а целиком).
во-первых, головную боль можно лечить гильотиной :v2_dizzy_biggrin2:


Можно нижний спрайт временно вернуть на плоскость заднего фона, естественно с клешингом, пока верхний спрайт не пройдёт мимо. Т.е клешиг останется при пересечениях спрайтов.
шедеврально, то есть ради победы над клэшингом и упрощения программирования предлагается нагородить аппаратный огород, который клэшинга не побеждает, а программирование усложняет, аплодисменты! :v2_clap2: :v2_thumb:


Что только ради этого вводить третью (вторую переднюю) плоскость?
я вообще противник любых слоёв


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


Любое решение имеет недостатки.
не любое предложение есть решение


99% времени спрайты двигаются не закрывая друг друга.

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


В ZX-играх пересечения спрайтов разве сильно вредят?
в zx-играх спрайты обычно нецветные


А раз есть всё, что есть в ZX, то хуже уж точно не будет.
цель-то лучше сделать была заявлена

AzAtom
13.03.2018, 06:57
В ZX-играх пересечения спрайтов разве сильно вредят?
Думаю, прямоугольные артефакты на нижних спрайтах при таком наложении будут терпимы.

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

Кое что придумал. Для следующего кадра маску же всё равно очищать надо. Ввести режим записи в банк маски, чтобы записывались только установленные биты. Тогда в обычном режиме очищается маска, затем, в режиме установки битов копируются спрайты и их маски не гасят установленные биты других спрайтов. Технически можно реализовать, запрещая сигнал write там, где бит маски равен 0. Тогда, нижний спрайт тоже будет виден, если их правильно объединить на слое спрайтов.

barsik
13.03.2018, 08:04
Кое что придумал.... Ввести режим записи в банк маски, чтобы записывались только установленные биты. Тогда в обычном режиме очищается маска, затем, в режиме установки битов копируются спрайты и их маски не гасят установленные биты других спрайтов.
Это никак не решает проблему экранных искажений цветов, а лишь экономит несколько команд Z80, избавляя программиста от необходимости складывать маски по OR. Незачем всякую мелочь перекладывать на аппаратуру, иначе действительно число корпусов достигнет 400.

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

Проблема тут из-за ZX-цвета. Значит решение проблемы это изменение цвета плоскости спрайтов на попиксельный. Лучше всего на 4-х цветный, по принципу ОРИОНА (две плоскости, для каждого пикселя берём по биту из каждой плоскости). Это лучше, чем CGA, т.к позволит не менять графику. Добавив 2 бита из нечитаемой процессором теневой плоскости синхронно записываемой из двухбитного регистра палитры, получаем 4 палитры на каждый экранный байт. Это даёт 16 цветов на пиксель.

Shiny
13.03.2018, 08:46
блиттер нужен. Сравните с возможностями win32 BitBlt

barsik
13.03.2018, 09:02
блиттер нужен. Сравните с возможностями win32 BitBlt
В этой теме решают проблему клешинга, а не проблему скорости вывода на экран. А проблема скорости проще решается за счёт высокого такта процессора.

bigral
13.03.2018, 10:46
framebuffer очень дорогое дело для компа начала 80-х. Все разработчики пытались его уменьшить до минимума. Оно и понятно почему, потому что это снижает требования к частотам и ширине шин. Частоты можно считать ограниченными на уровне 14mhz в нашем случае. Каждые новые 8bit шины это еще 2 линейки РУ6 и пачка из 2? 4? 8? корпусов мультиплексоров. Так что "по большому счету" идея плоскостей (дополнительных framebuffer-ов) мне кажется изначально ущербной. Мы уже ее обсудили в теме про устранение клешинга как вариант "терпимой избыточности для легкой переделки игр", и по видимому концепция никому не понравилась изза того что игры будут такие же тормозные как и сейчас и даже более того.

Смотрим на классических победителей 8-bit - NES, C64, MSX2+, AMSTRAD CPC PLUS... (ну там в своем роде ПК8002). ВОТ ЭТО УРОВЕНЬ! Все что ниже него легко побеждается просто турбированным до 14mhz zx-128-ым.

AzAtom
13.03.2018, 11:01
Смотрим на классических победителей 8-bit
Ну так собственно, варианта 2: Либо аппаратные спрайты, либо накинуть памяти для дополнительных плоскостей. В обоих случаях корпусов прибавится сильно. Но спрайты можно реализовать в одной БИСине, что и было успешно сделано в том же NES, от чего он получил довольно приличную графику без тормозов и взлетел.

Третий вариант тоже можно рассмотреть: накинуть памяти для реализации независимых цветов для каждого пикселя, например, по 4 бита, это 24 КБ на экран. Ещё накинуть памяти для исходных спрайтов и ко всему этому добавить аппаратный блитер. Тогда и основная память в 48 КБ хватит практически для всех игр, ведь, кода и промежуточных переменных всегда гораздо меньше, чем графики.

Lethargeek
13.03.2018, 13:34
framebuffer очень дорогое дело для компа начала 80-х. Все разработчики пытались его уменьшить до минимума. Оно и понятно почему, потому что это снижает требования к частотам и ширине шин.
Всё к цене сводилось в конечном счёте (включая и косвенные расходы)


Частоты можно считать ограниченными на уровне 14mhz в нашем случае. Каждые новые 8bit шины это еще 2 линейки РУ6 и пачка из 2? 4? 8? корпусов мультиплексоров. Так что "по большому счету" идея плоскостей (дополнительных framebuffer-ов) мне кажется изначально ущербной.
А мне изначально ущербной кажется идея сейчас делать "удобный комп" на элементной базе 80-х


Мы уже ее обсудили в теме про устранение клешинга как вариант "терпимой избыточности для легкой переделки игр", и по видимому концепция никому не понравилась изза того что игры будут такие же тормозные как и сейчас и даже более того.
Самое реальное и дешёвое на уровне 80-х - познакоместный low-res 4x8 с выбором из 16 4-цветных палитр при ink=paper. Тут одной юлы, конечно, не хватит, но всё равно дешевле навороченного чипсета, а буфер, скорость и частоты не изменяются. В играх визуально похоже было бы на plus/4.


Смотрим на классических победителей 8-bit - NES, C64, MSX2+, AMSTRAD CPC PLUS... (ну там в своем роде ПК8002). ВОТ ЭТО УРОВЕНЬ! Все что ниже него легко побеждается просто турбированным до 14mhz zx-128-ым.
NES - консоль, там затраты "вынесены наружу", да и графика не такая уж и хорошая; а комод еще примитивнее. У MSX2 видеобуфер весьма нехилый, да и у амстрада с комодом приличные, притом далеко не на 14мгц.

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


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

vlad
13.03.2018, 14:14
Один экран вместо теневого и отображаемого.
Сделал две стандартные переключаемые экранные области 256х192 и добавил задний фон 256х192.


Нет скроллинга фона.
Добавил вертикальный скроллинг заднего фона.


Клешинг атрибутов при рисовании спрайтов.
Добавил режим 256с.

Планирую добавить простые спрайты 16х16 и можно будет попробовать сделать демку Xenon 2000.

AzAtom
13.03.2018, 16:01
А мне изначально ущербной кажется идея сейчас делать "удобный комп" на элементной базе 80-х
А с другой стороны, брать МК, который гораздо более мощный, чем 5 спектрумов вместе, и на нём делать какую-то примочку для спектрума это тоже как-то не здорОво. :)
Если же делать простой современный комп на современной элементной базе, то лучше сразу взять готовую малину, там и экран нормальный и куча контроллеров встроена, и не парить себе мозги.

Хотя, я приветствую программируемые плисины.

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

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

И никаких атрибутов и клешинга - программисты с ними достаточно помучились... А любители др... смотреть на клешинг атрибутов могут остаться на оригинальном спектруме.

Totem
13.03.2018, 16:11
А с другой стороны, брать МК, который гораздо более мощный, чем 5 спектрумов вместе, и на нём делать какую-то примочку для спектрума это тоже как-то не здорОво. :)
Если же делать простой современный комп на современной элементной базе, то лучше сразу взять готовую малину, там и экран нормальный и куча контроллеров встроена, и не парить себе мозги.

Хотя, я приветствую программируемые плисины.

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

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

И никаких атрибутов и клешинга - программисты с ними достаточно помучились... А любители др... смотреть на клешинг атрибутов могут остаться на оригинальном спектруме.

У вас вон сверху пилят аж 2х процах и в соседней ветке тоже, странно такие вещи писать.

AzAtom
13.03.2018, 16:13
Эх, разброд и шатание в стройных рядах спектрумистов... :( :)

Totem
13.03.2018, 16:24
Эх, разброд и шатание в стройных рядах спектрумистов... :( :)

Вот то, что делают остальные- это точно "разброд и шатание" , а у нас все, как раз сделано, чтобы избежать ненужных телодвижений.

vlad
13.03.2018, 16:31
Вот то, что делают остальные- это точно "разброд и шатание" , а у нас все, как раз сделано, чтобы избежать ненужных телодвижений.
:v2_dizzy_botan: ещё немного осталось подождать - сделано :v2_dizzy_grandfathe

Totem
13.03.2018, 16:37
:v2_dizzy_botan:

:v2_dizzy_priest:

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


ещё немного осталось подождать - сделано
Как раз тебе ждать долго, пилите демку скорее, ждем.

vlad
13.03.2018, 16:39
Как раз тебе ждать долго, пилите демку скорее, ждем.
Вы "а у нас все, как раз сделано, чтобы избежать ненужных телодвижений.", а мы так и быть - демку.

Totem
13.03.2018, 16:43
Вы "а у нас все, как раз сделано, чтобы избежать ненужных телодвижений.", а мы так и быть - демку.

Вырвал из контекста и довольный :v2_dizzy_biggrin2:

vlad
13.03.2018, 16:53
Вырвал из контекста и довольный :v2_dizzy_biggrin2:

http://igrytrollface.ru/game/assets/trollface-launch.jpg (http://igrytrollface.ru/game/trollface-launch.html)

zx-kit
13.03.2018, 17:49
Перед тем, как сделать окончательный вывод, что клешинг при совмещении спрайтов делает абсолютно несостоятельной всю идею с вынесением спрайтов в плоскость отделённую от фона, стОит проверить идею на эмуляторе и только тогда делать вывод.

Проблема тут из-за ZX-цвета. Значит решение проблемы это изменение цвета плоскости спрайтов на попиксельный. Лучше всего на 4-х цветный, по принципу ОРИОНА (две плоскости, для каждого пикселя берём по биту из каждой плоскости). Это лучше, чем CGA, т.к позволит не менять графику. Добавив 2 бита из нечитаемой процессором теневой плоскости синхронно записываемой из двухбитного регистра палитры, получаем 4 палитры на каждый экранный байт. Это даёт 16 цветов на пиксель.

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

Лучше оставить способ построения ZX-цвета с помощью атрибутов, чем менять способ. Иначе это уже точно не потомок Спектрума будет. Другие способы рисования можно в другом компьютере сделать. По этому способу есть задумки и по аппаратным тайлам и спрайтам. Но METEOR-128 - это потомок Спектрума, поэтому надо проектировать в рамках концепции без блиттеров, 256 цветов на точку, без отдельного цвета н и палитры. Все 4 плоскости надо сделать одинаковыми для простоты прораммирования и возможности разного использования. Можно сделать 3 плоскости фона и одну спрайтов. А можно сделать одну плоскость фона и 3 плоскости спрайтов.

Предлагаю начать с чистого листа. Нарисовать генератор 14 MHz, счетчик для получения 3.5 MHz, Z80, генератор телевизионной развертки и окна 256x192 точки, формирователь импульсов загрузки смещения в счетчики точек по-горизонтали и вертикали.

Затем 4 одинаковых плоскости спековской графики. В каждой плосткости 5 счетчиков К555ИЕ18 + 4 К555КП11 + 6 К555ИР23 + 2 К555ИР10 + 3 микросхемы статики по 32 Кбайта.

Из слоя маски можно будет читать. 1 - значит в этом месте плоскость прозрачная, 0 - значит в этом месте есть точка спрайта.

Каждую плоскость сделать на отдельной плате. Или весь компьютер сделать на FPGA и двух микросхемах статики 256Kx16bit без Z80.

vlad
13.03.2018, 18:10
Предлагаю начать с чистого листа. Нарисовать...

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


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

Lethargeek
13.03.2018, 18:11
Вот для этого я и предложил 4 плоскости спековской графики. Лучше пусть останется клешинг в спрайтах, чем клешинг на фоне. Лучше оставит способ построения ZX-цвета с помощью атрибутов, чем менять способ. Это уже точно не потомок Спектрума будет. Это можно в другом компьютере сделать. По этому способу есть задумки и по аппаратным тайлам и спрайтам. Но METEOR-128, это потомок Спектрума, поэтому надо проектировать в рамках концепции без блиттеров, 256 цветов на точку и палитры.
Вот где связь? На каком основании ты употребляешь слово "поэтому", предлагая собирать "потомка" из костылей?
Тогда как Спектрум - это минимальное количество костылей (в графике - только атрибуты, на этом всё).

vlad
13.03.2018, 18:25
zst, попробуй объяснить, что собираешься сделать. Попробуем быстро реализовать это в FPGA и проверить, будет ли это работать ), а дальше уже простым языком - пересчитав времянки решать, взлетит это или нет на мелкологике )

Totem
13.03.2018, 18:37
Или весь компьютер сделать на FPGA и двух микросхемах статики 256Kx16bit без Z80.
Иди бери ZX UNO

Lethargeek
13.03.2018, 18:38
zst, попробуй объяснить, что собираешься сделать. Попробуем быстро реализовать это в FPGA и проверить,
я смотрю, ты методичку не поменял :v2_dry:

AzAtom
13.03.2018, 18:39
Лучше оставить способ построения ZX-цвета с помощью атрибутов, чем менять способ.
Чем это будет лучше?


Иначе это уже точно не потомок Спектрума будет.
Почему потомок спектрума должен или обязан иметь такую же убогую организацию цвета и самого экрана?


Вот для этого я и предложил 4 плоскости спековской графики.
4 плоскости спековской (1 битной) графики + 3 слоя масок = 7 бит для чтения за 1 раз. Добавить сюда ещё 1 бит и получим те же человеческие 8 бит на пиксель с независимыми цветами для каждого пикселя. Ну а аппаратный блитер при таком раскладе уже само собой должен быть, иначе, со скоростью процессора z80 это будет не игра, а печальный слайд шоу.

CLR
13.03.2018, 18:49
zst, попробуй объяснить, что собираешься сделать. Попробуем быстро реализовать это в FPGA и проверить, будет ли это работать ), а дальше уже простым языком - пересчитав времянки решать, взлетит это или нет на мелкологике )

Старшина: получаем ломы и копаем яму 2х2 метра.
Солдат: а может, лучше лопатами?
Старшина: мне не нужно как лучше, мне нужно чтобы вы за***лись :)))

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

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

AzAtom
13.03.2018, 18:57
Хотя, можно же и без блитера обойтись, если сделать специальную раскладку битов на экране и теневое копирование. То есть, процессор копирует 1 бит из 8 пикселей картинки, а в это время железо копирует несколько бит для этих пикселей. Вот на картинке изобразил. По горизонтали байт, который копирует процессор, а вертикальная стопка - биты одного пикселя. Их же не обязательно должно быть 8. Например, может быть 6 или 9, соответственно, 6 или 9 банков памяти, тогда можно получить RGB222 или RGB333 для каждого пикселя на экране. Для пробы можно и 3 банками обойтись и сделать 3 бита на пиксель.
64612

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


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

Totem
13.03.2018, 19:21
Я не игрописатель, но не хотел бы связываться с кучей 1 битных плоскостей с клешингом атрибутов.
и не надо, сходи к нам на 1 страницу ZX ULAX и скажи честно нравится или нет.

krt17
13.03.2018, 19:32
Во всех подобных темах удивляет почему люди так ненавидящие спектрум сидят тут?
Ни у кого нет проблемы со спековским экраном, по сути спектрум это z80 и 6912, все. Клешинг идеален.

Lethargeek
13.03.2018, 19:55
люди так ненавидящие спектрум

- Гиви, ты памидоры любищь?
- Кющять - да, а так - нет...
.

Totem
13.03.2018, 19:57
Во всех подобных темах удивляет почему люди так ненавидящие спектрум сидят тут?
Ни у кого нет проблемы со спековским экраном, по сути спектрум это z80 и 6912, все. Клешинг идеален.
Список может сделаешь? вот сейчас абыдно даа.

msm
13.03.2018, 20:21
На деле:
1) Спектрум делает спектрумом именно организация экрана :). Ибо она уникальна. Де факто, так как оригинальный спектрум не подразумевал такого понятия, как видеокарта, как операционная система, как аппаратные абстракции и т.д, любая смена организации экрана это де факто новый компьютер. Если хочется другой организации - чем не устраивает Орион-128 на Z80?
2) Если брать типичный современный комп. На деле, с момента появления IBM PC прошло столько времени и все настолько круто поменялось, что фактически современные компы сложно назвать потомками IBM PC. Хоть и платформа развивалась эволюционно и плавно, и там изначально подразумевалась модульность и расширяемость, современные компы настолько отличаются от прародителей, что как то под вопросом, можно ли считать современный комп действительно потомком. Ибо уже там оригинальную MS DOS можно запустить только под эмулятором, как и соответствующий софт. И эмуляция 286-го де факто мало чем отличается от эмуляции хоть спектрума, хоть C64, хоть NES.
3) Относительно организации экрана. В настоящее время если комп не умеет хотя бы 1280×720, это разрешение не стоит рассматривать ибо смотрится это все реально ужасно. А хотелось бы даже не Full HD, а 4К разрешение, да еще и с HDR, то есть 24 бита цвета на пиксель уже не круто. Исключение - всякие карманные устройства, для них в принципе низкое разрешение не вызывает отторжения. Потому нет никакого смысла делать даже VGA режимы.Ибо они один черт хреново смотрятся, это один черт полумеры, это один черт смотрится так же фигово, как и 256 на 192. И при этом теряется так называемая теплая ламповость и спортивная составляющая. У меня, например, максимум был Пентагон 128. Ностальгирую по нему. Если что из нового на нем не пойдет, мне нет смысла ностальгировать. Ну максимум я могу понастольгировать по ATM Turbo 2+. Ибо я хотя бы в свое время видел эту машинку и о ней неимоверно в свое время мечтал :). Но уже менее интересно, ибо этой машинкой не обладал никогда, только у знакомых видел и облизывался. Могу поностальгировать по Радио 86 РК, ибо до сих пор обладатель (кстати, никому не нужна, готов кому подарить, выкидывать жалко :)? ). Даже по Орион 128 могу ностальгировать, ибо в свое время тоже неимоверно мечтал о таком :). Уже даже 386-е машины особо ностальгии не вызывают, хотя они на голову выше любых будущих потомков спектрума.

zx-kit
13.03.2018, 20:30
Могу поностальгировать по Радио 86 РК, ибо до сих пор обладатель (кстати, никому не нужна, готов кому подарить, выкидывать жалко :)? ).
Я бы взял. У меня когда-то был самодельный. Где-то у меня ПЗУ со знакогенератором для игры ZOO от Специалиста. Это я так графику у Радио-86РК пытался добавить. Потом разработал и сделал плату загружаемого знакогенератора на статике РУ10.

Мне нравится улучшать компьютеры.

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

Некоторые люди пытаются что-то улучшить и не стоит их за это осуждать.

shurik-ua
13.03.2018, 20:35
В настоящее время если комп не умеет хотя бы 1280×720, это разрешение не стоит рассматривать ибо смотрится это все реально ужасно.

а по моему неплохо смотрится даже при разрешении 320 х 224


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

https://en.wikipedia.org/wiki/Neo_Geo_(system)

AzAtom
13.03.2018, 20:50
Во всех подобных темах удивляет почему люди так ненавидящие спектрум сидят тут?
Почему это ненавидящие?
А вот меня удивляет, почему люди настолько ненавидят спектрум, что не хотят его никак улучшать?

Кажется, я начинаю понимать, почему "Жигули" выпускали более 40 лет с минимальными изменениями - иначе это будет уже не тот тёплый и ламповый автомобиль. :)

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


А хотелось бы даже не Full HD, а 4К разрешение,
Попахивает нездоровым видеофильством. Смотрю на full hd моник и не вижу отдельных пикселей, все фигуры гладкие - зачем ещё больше разрешение? При большом разрешении нужен (большой) огромный экран, а при большом экране надо сильно крутить головой.

zx-kit
13.03.2018, 21:12
Прячьте видео в спойлеры чтобы не тормозили загрузку страницы !

vlad
13.03.2018, 21:25
я смотрю, ты методичку не поменял :v2_dry:

Зачем менять, когда там всё просто и привычно для программиста и пользователя:

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

И главное, что это уже работает. Клешинг отсутствует, возможность на лету менять режим 256 цветов, добавился задний фон 256х192 256 цветов, планирую добавить спрайты и расширить звуковые возможности (DMA Sound 8 каналов и 2x SAA1099 12 голосов).
Что ещё надо?

Lethargeek
13.03.2018, 21:38
Зачем менять, когда там всё просто и привычно для программиста и пользователя:
Я не про "там", я про другую методичку - по разводу спектрумистов. Ты не меняешься.


И главное, что это уже работает. Клешинг отсутствует, возможность на лету менять режим 256 цветов, добавился задний фон 256х192 256 цветов, планирую добавить спрайты и расширить звуковые возможности (DMA Sound 8 каналов и 2x SAA1099 12 голосов).
Что ещё надо?
Много что - простота, удобство, скорость адаптации, блиттер, рисование на бордюре, полноцветная процедурная графика, много копий спрайта разными цветами без атрибутов...

vlad
13.03.2018, 21:45
Я не про "там", я про другую методичку - по разводу спектрумистов. Ты не меняешься.
Тут не догнал, объясни.

Totem
13.03.2018, 22:17
И я пытаюсь оставить атрибуты, хотя и разнести их по разным плоскостям, но мне это уже ставят в вину.
Уже "разнесли" в "SAM Coupe,Enterpise ", проще не будет.

Lethargeek
13.03.2018, 22:33
Тут не догнал, объясни.
ты реально хочешь, чтобы я тут объяснил всем твои повадки?

vlad
13.03.2018, 22:41
ты реально хочешь, чтобы я тут объяснил всем твои повадки?
Вот нам тут всем и объясни, что не так. Заодно и про ZXULAX поведай, чего таишь то?

Lethargeek
13.03.2018, 23:26
Вот нам тут всем и объясни, что не так.
Да всё так, ты действуешь по шаблону. Сначала предлагаешь "объясни, попробуем реализовать" (точно так же начинал и со мной), потом будешь игнорировать письма в личку, потом то, что понял из объяснений, и что показалось тебе полезным, тихо адаптируешь к своим поделкам (не лучшим образом). А потом заявишься гадить в тему к автору объяснений, хвастаясь, что у тебя уже всё якобы готово намного лучше.


Заодно и про ZXULAX поведай, чего таишь то?
Сам, всё сам. Привыкай решать сложные задачи своим умом.

vlad
14.03.2018, 00:19
Да всё так, ты действуешь по шаблону. Сначала предлагаешь "объясни, попробуем реализовать" (точно так же начинал и со мной), потом будешь игнорировать письма в личку, потом то, что понял из объяснений, и что показалось тебе полезным, тихо адаптируешь к своим поделкам (не лучшим образом). А потом заявишься гадить в тему к автору объяснений, хвастаясь, что у тебя уже всё якобы готово намного лучше.
Сегодня что-то из теории поддается здравому смыслу и практической реализации, а что-то так и останется здесь, возможно навсегда. Что-то получается хуже, что-то лучше.

https://www.youtube.com/watch?v=56yKzBDVA9g

Сам, всё сам. Привыкай решать сложные задачи своим умом.
Стараюсь так и делать. Чего и всем желаю.

bigral
14.03.2018, 00:57
Зачем менять, когда там всё просто и привычно для программиста и пользователя:

https://www.youtube.com/watch?v=oee7vwiIMJc
И главное, что это уже работает. Клешинг отсутствует, возможность на лету менять режим 256 цветов, добавился задний фон 256х192 256 цветов, планирую добавить спрайты и расширить звуковые возможности (DMA Sound 8 каналов и 2x SAA1099 12 голосов).
Что ещё надо?

Нужен минимальный смысл, понятный хотябы одному человеку кроме тебя. Обьясни нам в чем прикол 100500 спектрумов работающих параллельно внутрях FPGA? Оно вообще тебе самому не противно?

Spectramine
14.03.2018, 01:13
Нужен минимальный смысл, понятный хотябы одному человеку кроме тебя. Обьясни нам в чем прикол 100500 спектрумов работающих параллельно внутрях FPGA? Оно вообще тебе самому не противно?

Да нету там 100500 спектрумов. Это больше абстракция, 8 параллельных спектрумов, хотя одна из реализаций на DivGMX так и делалась, но изначально в эмуляторе Spec256 есть один дополнительный графический сокомпьютер, работающий по принципу "одна команда - много данных" над дополнительными графическими данными, по байту на каждый бит памяти Спектрума, соответственно, 1 байт памяти Спектрума - 8 байт графической памяти сокомпьютера. Он выполняет обычные команды Z80 из памяти Спектрума, но над данными из своей памяти, соответственно, регистры его графпроцессора 8байтовые вместо 8битных. Это позволяет довольно просто раскрасить многие монохромные игры, да и цветные сделать 256 цветными и без клэшинга. Самое приятное - код игры вообще не меняется, просто ищутся графические данные и раскрашиваются - на каждый бит один из 256 цветов. Это, с помощью соответствующих инструментов, может сделать даже непрограммист, чем эта схема и хороша.

SaNchez
14.03.2018, 02:00
На мой взгляд, Spec256 очень интересная концепция, которую я бы поддержал программно, но она ещё очень сырая. Лично мне хотелось бы не 3,5мгц, а 14, не 128к, а мегабайт, три ay, работу с образами tr-dos х 8, и физическое воплощение не в виде платки, а полноценного компа с хорошей клавиатурой в красивом корпусе.

drbars
14.03.2018, 03:53
SaNchez, на новой ревизии ZX-EVO которую сейчас проектирует Mick & TSL будет другая FPGA, большая. Зареквести опциональную поддержку режима.

AzAtom
14.03.2018, 04:44
сходи к нам на 1 страницу ZX ULAX и скажи честно нравится или нет
Однозначно нравится. Только так до конца и не понял, как это работает без переделки оригинальной игры.

SaNchez
14.03.2018, 07:58
SaNchez, на новой ревизии ZX-EVO которую сейчас проектирует Mick & TSL будет другая FPGA, большая. Зареквести опциональную поддержку режима.
А смысл:) Они наверняка проектируют супер-пупер плату для pc-корпуса, с кучей всего, и потому дорогую.

Насчёт мегабайта х 8 я погорячился, при наличии tr-dos х 8 хватит и 128к х 8. А вот частоту процессора хотелось-бы 14мгц, для плавности.

Lethargeek
14.03.2018, 09:53
изначально в эмуляторе Spec256 есть один дополнительный графический сокомпьютер, работающий по принципу "одна команда - много данных"
"много данных по разным адресам" в общем случае, так что в целом от "8 параллельных спектрумов" отличается ненамного