User Tag List

Показано с 1 по 10 из 526

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Ну то есть раскрасишь, но надо к спрайтам добавлять информацию о цвете, изменять процедуру вывода, в общем, возни намного больше. upd. ...хотя,тогда можно к Out на переключение слоя добавить Out на управление цветом спрайта)
    Цвет спрайта не управляется OUTом. В каждом слое есть своя область атрибутов. Только PAPER у верхних слоев прозрачен. А INK и определяет цвет спрайта. Для монохромных спрайтов все очень просто. Достаточно нужный слой заранее залить необходимым цветом INK, и тогда при выводе в этот слой спрайт сразу же будет окрашен в нужный цвет.

    Цитата Сообщение от null_device Посмотреть сообщение
    А теперь, представим, что нужен еще подвижный (или неподвижный - не суть) элемент, которые надо отобразить в то же знакоместо, что и фиолетового человечка, но он имеет цвет, отличный от представленных на экране (например - желтого)? Нужен еще один слой!
    Ваша проблема в том, что вы отталкиваетесь от неких абстрактных понятий, а не от конкретных спектрумовских игр. Посмотрите на типичную игру - сколько спрайтовых слоев вы там найдете? Герой, предметы, враги - вот практически и все.

    Цитата Сообщение от Reobne Посмотреть сообщение
    Ладно, не надо уже в четвёртый раз всё по новой объяснять. Кому надо, тот и в первый раз всё понял. Надо дальше двигаться. Придумать адреса портов.
    Та не.. Объяснять таки надо. Народ начинает понимать идею, но до конструктивной критики (ради чего я сюда собственно и запостился) дело еще не дошло. А недостатки в предложеной схеме таки имеются. Не надуманные, типа "как z80 справится?" или "нет 16 цветов на точку", а таки реальные.

    Цитата Сообщение от null_device Посмотреть сообщение
    не функциональную, а структурную схему - как все это должно работать.
    Вы уверены, что это вам поможет понять суть предложенной идеи? Чего-то я сомневаюсь, что структурная схема этому поможет. А то не очень хочется заниматься бесполезным рисованием.

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

  3. #2

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,338
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    inozemcew, нужно решать нюансы.
    Как назвать новый стандарт?
    Какие порты управления, с что они делают.
    При переключении страницы рисования какое окно переключается?
    (Например конкретно с $4000 по $5AFF, или для упрощения аппаратуры с $4000 по $5FFF, или ещё как-то. Что делать со вторым экраном для Spectrum128К?)

    Я конкретно спрашиваю. Если сам не хочешь об этом подумать, так и скажи, подумаем вместе.

  4. #3

    Регистрация
    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. #4

    Регистрация
    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 Посмотреть сообщение
    Есть одна бредовая мысль - а что если сделать видеокарту по следующему принципу:
    Можете попробовать. Что получится можно примерно посмотреть здесь.
    ИМХО, повторить такое в железе будет не просто, да и перерисовать графику - тоже не два байта переслать.

  6. #5

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Та не.. Объяснять таки надо. Народ начинает понимать идею, но до конструктивной критики (ради чего я сюда собственно и запостился) дело еще не дошло.
    Думаю, самый большой недостаток системы - частичное устранение (спрайты 8х8 всё ещё одноцветные) не самого большого недостатка применением огромного количества памяти и повышенным требованием к быстродействию.

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

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

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Можно даже просто взять 4-8 битовых планов и обычную палитру, и затем заполнив эту палитру специальным образом, получить псевдополупрозрачные слои. Именно так это делается на "Векторе". Плюс еще там 16-256 цветов на точку и т.д. и т.п.
    Так вы и предлагаете по сути нечто похожее на векторовскую реализацию. Там тоже при разбивке на слои получается по 1 цвету на однобитный слой. Но там немного проще оперировать со слоями. Разве что, самый нижний слой будет уступать по количеству цветов вашей реализации.

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

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

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

  7. #6

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

    По умолчанию

    Цитата Сообщение от Hacker VBI Посмотреть сообщение
    красивые картинки. сам рисуешь?
    Ага, балуюсь помаленьку. Есть еще немного вариаций на тему "что было бы, если бы битпланов было бы 2" , только не знаю куда стоит выкладывать.


    Цитата Сообщение от AzAtom Посмотреть сообщение
    Это позволяет задавать цвет для каждых 8 горизонтальных точек, но избавиться от вертикального клешинга атрибута,
    Если бы такой способ задания атрибута знакоместа был бы в спектруме изначально - никаких проблем. Но увы, весь софт написан под экран с атрибутами в $5800-$5aff, так что метаться поздно.

    Цитата Сообщение от AzAtom Посмотреть сообщение
    спрайт с человеком или катящейся бочкой будет прозрачен там, где не надо. Как быть с этим?
    Уже говорилось - регистр маски. Причем только для игр в которых спрайты с масками. Остальные остаются, как есть. Впрочем, на с64 и MSX hi-res спрайты тоже без маски. Можно сравнить.

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Для этого нужно подвинуть некий код,
    Двигать ничего не нужно. Заменить вызов старой процедуры вызовом новой из которой потом сделать JP в старую - не требует перемещения никакого кода.

  8. #7

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Двигать ничего не нужно. Заменить вызов старой процедуры вызовом новой из которой потом сделать JP в старую - не требует перемещения никакого кода.
    Тогда можно цвет и через порт задавать, не делая несколько плоскостей, как выше написал. Разве что, можно сделать одну плоскость на фон и одну на все спрайты с прозрачным цветом. Будет задаваться цвет и прежней процедурой выводиться однобитная картинка, получая нужный цвет.

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

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

Эту тему просматривают: 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

Ваши права

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