User Tag List

Страница 8 из 53 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 526

Тема: Новый принцип устранения клешинга

  1. #71

    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    95
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    поабавило, z80 это единственный активный компонент в системе и при этом его нагрузка рассматривается как "надуманная"
    Понятно, что имея экранной памяти в 2,4,8 раз больше, можно нагрузить z80 по самые помидоры. Но, для того чтобы устранить клэшинг в существующих играх это просто не нужно. Клэшинг устраняется из-за того, что разные спрайтовые слои выводятся в разные экранные плоскости. Объем же данных, которые надо перелопатить процессору, практически не изменяется.

    Цитата Сообщение от Reobne Посмотреть сообщение
    Как назвать новый стандарт?
    Не знаю. Мне собственно безразлично.
    Цитата Сообщение от Reobne Посмотреть сообщение
    Какие порты управления, с что они делают.
    Один порт - номер плоскости, которая смаппирована в адреса $4000-$5aff, нижняя плоскость, которая спековский экран, имеет номер 0, устанавливается по сбросу. Можно сделать бит 7 - отключение плоскостей 1 и выше, но если при записи в 0ю плоскость остальные будут очищаться, то это не нужно.
    Цитата Сообщение от Reobne Посмотреть сообщение
    Что делать со вторым экраном для Spectrum128К?
    Ничего специального. Он будет иметь такую же структуру и управление от того же порта.

    Это все мелочи. Есть вопросы потруднее.. Сколько плоскостей потребуется. Чем их больше, тем сложнее конструкция. Можно ли сделать спрайтовые плоскости теневыми, т.е. недоступными для чтения? Нужны ли отдельные плоскости для спрайтовых масок? Какова должна быть структура спрайтовых слоев, может есть вариант лучше, чем спековский экран с прозрачным PAPER?

  2. #72

    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,198
    Спасибо Благодарностей отдано 
    40
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    103 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Клэшинг устраняется из-за того, что разные спрайтовые слои выводятся в разные экранные плоскости.
    Вы описываете видеопроцессор а-ля, NES. В противном случае:
    Цитата Сообщение от inozemcew Посмотреть сообщение
    имея экранной памяти в 2,4,8 раз больше
    упрёмся в быстродействие шины для передачи данных, или:
    Цитата Сообщение от inozemcew Посмотреть сообщение
    можно нагрузить z80 по самые помидоры
    конвертируя и пересылая, или детектируя, что вот это спрайт должен лежать в другой "слое" с такими-то атрибутами и отображаться так-то и так-то.

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

    Короче, ждем у барака.
    Последний раз редактировалось null_device; 15.08.2016 в 16:03.
    Когда есть, но не знаешь где - это все равно, что нету.

  3. #73

    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,131
    Спасибо Благодарностей отдано 
    55
    Спасибо Благодарностей получено 
    257
    Поблагодарили
    195 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно, что имея экранной памяти в 2,4,8 раз больше, можно нагрузить z80 по самые помидоры. Но, для того чтобы устранить клэшинг в существующих играх это просто не нужно. Клэшинг устраняется из-за того, что разные спрайтовые слои выводятся в разные экранные плоскости. Объем же данных, которые надо перелопатить процессору, практически не изменяется.
    я наверное неочень понимаю идею, тут лучше действительно расписать в виде блоксхемы какой что бы понятно стало что имеется в виду

  4. #74

    Регистрация
    07.10.2006
    Сообщений
    1,731
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Цвет спрайта не управляется OUTом. В каждом слое есть своя область атрибутов. Только PAPER у верхних слоев прозрачен. А INK и определяет цвет спрайта. Для монохромных спрайтов все очень просто. Достаточно нужный слой заранее залить необходимым цветом INK, и тогда при выводе в этот слой спрайт сразу же будет окрашен в нужный цвет.
    .
    А как вы будете заливать нужный слой цветом? Я и предлагаю - для монохромных игр задавать цвет спрайта (или слоя) через OUT в другой порт. Если так, как предлагаете вы, это процессору надо, кроме OUT по переключению слоя, ещё как-то заливать нужный слой цветом INK (а программисту - ещё куда-то втиснуть эту заливку в код программы) . А так - выдал в порт INK выводимого спрайта перед сменой слоя, и видеокарта дальше сама знает, что спрайт выводится с этим INK, и заполняет им атрибуты спрайта автоматом, при выводе процессором пиксельной части спрайта (которая для монохромных игр им только и выводится, без атрибутной части). То есть, кроме порта переключения слоя, ещё вводится порт управления атрибутом спрайта, и вместо одного OUT на вывод спрайта - два. (А нулевое, например, значение в порту атрибута означает, что атрибут пишется в слой не видеокартой из порта атрибута, а программой при выводе цветного спрайта).

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

    Цитата Сообщение от BYTEMAN Посмотреть сообщение


    ​Сорян, не выдержал)))
    Во-первых, не всем насрать, вот топикстартеру не насрать. А остальным - тихо удивляться, как в одной голове сочетается идея избавления от спектрум-клэшинга и озабоченность "как с помощью его видеорежима на экране будут показываться страшные вещи - особо жестокие убийства, гомосексуализм и половые извращения, педофилия..." Лично я решил считать это особо тонким троллингом, моя психика отказывается принимать это всерьёз.
    Последний раз редактировалось Spectramine; 15.08.2016 в 16:28.

  5. #75

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Да нет, все просто, просто не хватает силы мысли осознать что пытается довести "товарищ".
    ОФФтоп. Значит я суперстар...

  6. #76

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имхо реализация проста, можно и 16 бит обойтись, виртуальной работать с пакетами по 64бит, единственное частота должна быть в 8 раз выше частоты памяти спектрума, если использовать sdram 16 бит, в итоге получится что то около 50мгц

  7. #76
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #77

    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    95
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Название:	sloi1.PNG 
Просмотров:	357 
Размер:	11.1 Кб 
ID:	57867
    Регистр атрибута, сдвиговый регистр, и мультиплексор, который в зависимости от значения текущего бита выбирает какую часть атрибута, INK или PAPER выдавать на видеовыход.

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

Название:	sloi4.jpg 
Просмотров:	419 
Размер:	24.8 Кб 
ID:	57868

    Или какая еще другая блок-схема нужна?

  9. #78

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #79

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть одна бредовая мысль - а что если сделать видеокарту по следующему принципу:
    1. Предварительно загружаем в некотором виде в девайс фрагменты спрайтов и цвета для них. Эта информация хранится внутри видеокарты
    2. Перед отрисовкой кадра видеокарты анализирует изображение, ищет в нём обозначенные спрайты и раскрашивает их перед отображением.
    3. Информация о спрайтах конкретной игры и их раскраске предварительно загружается отдельной программой, код игры не трогается вообще.

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

  11. #80

    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    95
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    А как вы будете заливать нужный слой цветом?
    Элементарно

    out <порт управления>,1
    ld hl,$5800
    ld de,$5801
    ld bc,$2fff
    ld (hl),6 ; INK = 6, BRIGHT=0, PAPER без разницы, он прозрачный, из под него просвечивают нижние слои.
    ldir
    out <порт управления>,0

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

    Цитата Сообщение от weiv Посмотреть сообщение
    при выводе цветного спрайта
    А что такое "цветной спрайт?" Это тот же монохромный, но только после его вывода в соответствующую область атрибутов пишется соответствующие атрибуты. Но когда спрайт попадает в другую плоскость, его атрибуты пишутся тоже в эту плоскость и не затирают атрибуты фона. Заметьте "цветной спрайт" != "многоцветный спрайт". Многоцветные спрайты в спектрумовских играх - это совсем-совсем другая песня. Без перерисовки графики это совсем никак и даже близко не ставится целью данной разработки.

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

    Цитата Сообщение от Trol73 Посмотреть сообщение
    Есть одна бредовая мысль - а что если сделать видеокарту по следующему принципу:
    Можете попробовать. Что получится можно примерно посмотреть здесь.
    ИМХО, повторить такое в железе будет не просто, да и перерисовать графику - тоже не два байта переслать.

Страница 8 из 53 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 43
    Последнее: 03.10.2015, 07:09
  2. принцип переключения адресных страниц в ПЗУ
    от Руслан в разделе Несортированное железо
    Ответов: 11
    Последнее: 10.04.2013, 16:50
  3. AY принцип формирования сигнала.
    от Руслан в разделе Звук
    Ответов: 5
    Последнее: 29.03.2013, 17:08
  4. Принцип работы M1 на Scorpion
    от TmK в разделе Программирование
    Ответов: 8
    Последнее: 17.08.2009, 15:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •