User Tag List

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

Тема: Новый графический режим для игр

Древовидный режим

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

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Изучив режимы ZX-EVO, можно сделать такие выводы:
    • Они используют страницы ОЗУ, которые используются в модели 128K - это плохо.
    • Они могут включать страницы графики в любое окно по 16К - это хорошо.
    • Последовательность байтов и битов сложная - это плохо.
    • Экраны или их части располагаются с адреса, отличного от 0 - это плохо.
    • Возможна палитра 16->64 цвета - это хорошо.

    Что можно улучшить - упростить и ускорить ?:

    • Графику расположить с 0 адреса - это упростит и ускорит определения адреса в ОЗУ экрана.
    • Использовать другие страницы свыше 8 страниц режима 128K. Это позволит дорабатывать старые игры.
    • Адресацию сделать непрерываной. Это упростит копирование спрайтов.
    • Биты атрибутов сгруппировать по 4.
    • Дополнительные экраны тоже размещать с адреса 0.
    • Фон рисовать в нижнем слое, а спрайты в верхнем. Это устранит клешинг атрибутов.

    Давайте сделаем новый режим 256x192 NEWATTR CONTINUOUS 2 LAYERS+SELECTOR:

    Для работы с графикой в новых режимах будем временно отключать ПЗУ компьютера. Для этого в шине ZX-BUS есть специальный сигнал.
    Будет два основных слоя - нижний и верхний, а также вспомогательный слой-селектор. Основные слои похожи на обычные экраны ZX Spectrum, но с оптимизированной адресацией. Слой селектор показывает, из какого слоя отображать точку на экране TV/VGA. 0 - из нижнего, 1 - из верхнего.
    Адресация байтов у всех слоев одинаковая. Экран можно представить состоящим из 32х24 клеток размером 8х8 пикселов. У каждой клетки цвет задается байтом NEWATTR. Биты D7-D4 задают цвет единичного пиксела COLOR1, а биты D3-D0 задают цвет нулевого пиксела COLOR0.

    Адрес HL в области пикселов по координатам X,Y клетки можно определить так: H=X, L=Y*8 (сдвиг влево три раза).
    Адрес HL в области атрибутов по координатам X,Y клетки можно определить так: H=X, L=Y+192 (OR $00C0).
    Нужный экран временно подставляется в окно с 0 адреса. Для этого в специальный порт записывается номер страницы.

    Чем новый режим лучше стандартного:
    • Линейная адресация с 0 адреса упрощает и ускоряет вычисление адреса в области пикселов и атрибутов.
    • При копировании блока размером более 8 байтов по-вертикали нет необходимости контролировать переход в другой сектор (треть) экрана, что делалось для старого экрана.
    • Возможность ускорения копирования спрайтов с помощью новых комбинаций команд Z80 (змейкой и т.п.).
    • Атрибуты задают независимую яркость цветов для 0 и 1 пикселов.
    • Нет клешинга атрибутов при движении спрайтов, так как их можно отображать в верхнем слое.
    • Не надо сохранять и восстанавливать фон при движении спрайта.
    • Использвание дополнительных страниц вне основного ОЗУ позволяет дорабатывать старые игры, использующие все 8 страниц 128 К.
    Последний раз редактировалось zx-kit; 23.07.2015 в 06:16.
    "L-256"

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

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

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

Похожие темы

  1. Ответов: 18
    Последнее: 11.04.2021, 10:54
  2. графический редактор
    от yur в разделе Вектор
    Ответов: 1
    Последнее: 08.11.2012, 13:01
  3. графический режим на Атари
    от goblinish в разделе Atari
    Ответов: 3
    Последнее: 06.01.2012, 11:19
  4. графический софт для 48 К
    от goglus в разделе Софт
    Ответов: 6
    Последнее: 02.08.2006, 15:33

Ваши права

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