User Tag List

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

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

  1. #71
    Member
    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    86
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    13 сообщений
    Mentioned
    0 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
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,110
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    87
    Поблагодарили
    71 сообщений
    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
    Veteran Аватар для Raydac
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,129
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    233
    Поблагодарили
    183 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #74
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    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
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    832
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    111 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #76
    Master Аватар для s_kosorev
    Регистрация
    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
    Member
    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    86
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

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

    По умолчанию

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

  10. #79
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    351
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  11. #80
    Member
    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    86
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    13 сообщений
    Mentioned
    0 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

Ваши права

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