User Tag List

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

Тема: Идея простого расширения стандартного видорежима

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

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

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2. "ФОНОВЫЙ" И "ПРОЗРАЧНЫЙ" ЭКРАНЫ

    Не секрет, что основная проблема стандартного Спековского экрана - пресловутый
    "атрибутный клэшинг" (не все же можно сделать по типу Savage и AMC, а монохромная
    графика как-то немного начала надоедать в начале XXI века). Где-то этот поганый
    эффект почти не раздражает (где спрайты маленькие - как у Диззей), где-то - просто
    выводит из себя. Идея состоит в том, чтобы от него наконец-то избавиться путем
    циничной расправы над многострадальным никому не нужным признаком FLASH и жесткой
    специализации двух имеющихся у Спектрума экранов.

    Над FLASH'ем уже не раз издевались пытливые синклеристы - достаточно вспомнить так
    называемые "доработки" FLASH-color и BRIGHT2. Все это не было стандартизовано,
    по-разному переключалось (а то и вообще не переключалось), а толку было немного.
    Все-таки действовать надо осторожнее, и обязательно с оглядкой на существующий софт.

    Что если второй экран сделать фоном, а основной - чем-то вроде прозрачной пленки, на
    которой будут изображаться "спрайты" (так раньше мультфильмы делали). Теперь бит
    FLASH будет обозначать прозрачность PAPER в данном знакоместе. На самом деле FLASH
    можно оставить почти как есть, что хорошо для старых программ, а для наших целей
    использовать только "бессмысленные" значения атрибута, у которых при включенном FLASH
    INK=PAPER. То есть в этом случае для каждого байта графики нулевые биты - прозрачные
    (отображается фон), а единичные - этот самый цвет INK=PAPER. Особый случай - когда
    FLASH=1, BRIGHT=1, INK=PAPER=0 (то есть "ярко-черный" цвет) - здесь лучше считать все
    знакоместо прозрачным, чтобы спрайты не стирать ручками, тратя время. А при запуске
    старых программ в 99% случаев ничего и заметно не будет, даже если этот режим вообще
    не выключается.

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

    Вспомним также, что признак FLASH использовался разве что в старых "48-киловых"
    программах, а на втором экране и подавно оказался не нужен (лично я видел только
    одну интру, где FLASH мешался на фоне multicolor'ной картинки). На втором экране
    FLASH заменим на упомянутый BRIGHT2 - для плотно закрашенного ФОНА это важно.
    Здесь есть нюанс - если считать, что FLASH (теперь BRIGHT2) и простой BRIGHT,
    равные 0, означают пониженную яркость, а 1 - повышенную, то можно использовать
    ранее невидимый "ярко-черный" цвет, но совместимость со старым софтом пострадает.
    Иначе лучше считать, что BRIGHT2=1 означает, что яркость PAPER НЕ СОВПАДАЕТ с
    яркостью INK, равной обычному BRIGHT.

    Очень легко сделать быстрый знакоместный скролл (и вертикальный, и горизонтальный)
    всем известными методами извращений со стеком - спрайты-то стирать не надо. Даешь
    фреймовые скрольные игрушки на Спеке! Да и плавно тоже прокручивать будет проще.

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


    3. СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ

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

    Совместимость с 48-киловыми программами почти 100%. Всякие X-колоры/моргалки и
    прочие гигаскрины как работали, так и будут работать. Если крайне редко и будут
    наблюдаться мелкие глюки, так только графические, а не программные. Но главное!
    Уже существующий софт (игрушки прежде всего очень легко переделывается под новые
    возможности (48-е - вообще элементарно для тех, кто ломать умеет, большинство
    изначально 128-х - тоже). Я уж не говорю, что если кто-нибудь что-то новое пишет,
    то очень легко сделать сразу две версии - обычную 128-ю и расширенную. Так что
    без софта данные примочки, будь они реализованы в железе, точно не останутся - уж
    курочить игрушки у нас в стране научились давно, почему бы и не сделать что-то
    более полезное, нежели всякие интры для дисковок и cheats. Да и чего ждать-то?
    Почему бы не...


    ЭМУЛЯЦИЯ

    ...встроить поддержку вышеописанного (надеюсь, не полного бреда в эмулятор?
    Глядишь, и софт появится раньше, чем железяка. Я понимаю, конечно, что матерый
    спектрумист ехидно ухмыльнется на эти слова, дескать, этот софт будет не под
    железо, а под конкретные глюки конкретного эмулятора. С учетверенными атрибутами
    оно может и так, но если предположить, что включаться будет через один порт
    уже описанным способом, то потом софт легко исправить. Хотя, конечно, невредно бы
    сначала выслушать мнение товарищей железячников - как бы оно могло быть реализовано.
    А вот насчет фона со спрайтами - ну какие там могут быть глюки? Прога будет просто
    подразумевать, что "бессмысленные" атрибуты с включенным FLASH работают именно
    таким образом, и что этот режим в момент загрузки включен (если он даже навечно
    включен - большой беды не будет). Особо мнительные могут пока не трогать BRIGHT2.
    Я же говорю, основная идея была - простота написания и переделки софта.

    Засим заканчиваю (наконец-то!). Благодарю нашедших в себе силы дочитать до конца.
    Буду очень рад увидетьть серьезные отклики и мнения профессионалов. Только ногами
    сразу не бейте.

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

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

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

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

Похожие темы

  1. Ответов: 44
    Последнее: 19.04.2005, 20:52

Ваши права

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