User Tag List

Результаты опроса: Нужно ли улучшать графические возможности компьютера для облегчения написания игр ?

Голосовавшие
110. Вы ещё не участвовали в этом опросе
  • Да

    58 52.73%
  • Нет

    52 47.27%
Показано с 1 по 10 из 714

Тема: Идеальный Спектрум

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

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Предлагаю реализовать давно витающую в воздухе идею о двух слоях спековской графики + слое маски, предложенную многими
    Это самая реальная из идей по новоделу ZX без клешинга, что обсуждаются тут в последние месяцы. Потому, что это реализуется просто и практически без вторжений в базовую схему клона ZX. Да и гораздо полезнее для игр, чем вводить 8 битов на цвет одной точки.

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

    Второй параллельный экран вводится с той же самой организацией графики и цвета как и оригинальный. Но в этом втором экране имеется ещё один слой, работающий только на запись. Это слой маски. Биты в маске определяют из какой плоскости выводить соответствующую экранную точку. Если бит в 0, то на экран выводится точка из плоскости заднего плана. А если 1, то из плоскости переднего плана. Благодаря этому исчезает клешинг, т.к в одном квадратике 8*8 можно иметь уже не 2 цвета, а 4.

    Причём экран маски даже не требуется включать в адресное пространство. Используется идея А.Волкова по автозаписи в другую плоскость из специального регистра маски при выполнении записи в экранное ОЗУ графики.

    Тогда для того, чтобы вывести один байт спрайта, сначала в регистр маски записывается маска, которая содержит единицы в битах соответствующих телу спрайта. А затем сама графика записывается в экранный буфер графики ZX-Spectrum, и при этом, маска автоматически переписывается из регистра в плоскость маски по нужному адресу.

    Т.о требуется переключать две экранные страницы в окне размером 8 кб с адреса 4000. Делая доступным в этом окне, то плоскость заднего плана, то плоскость переднего плана. А архитектура расширяется всего на 2 порта на вывод - порт маски и однобитовый порт переключения 2-х плоскостей экрана.

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

    Кроме того, можно использовать маску не как средство раскраски спрайтов без клешинга, а как средство выбрать биты, в которых нужны два других цвета. Тогда спрайт выводится на обе плоскости, что позволяет на цветном фоне без графики двигать 3-х цветный спрайт.

    Интересно, что коммутация режимов не нужна, - чтобы получить полный оригинал ZX по экрану, достаточно обнулить регистр цвета, что и делается по сбросу.

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

    Цитата Сообщение от zst Посмотреть сообщение
    Два экрана. На одном строим изображение, другой в это время отображается
    Это легко сделать, но не особо нужно. Таких игр для Spectrum-48К нет. Для борьбы с мерцанием программисты успевают выводить на экран во время гашения. Если поднять скорость Z80, то успеют тем более.

    Цитата Сообщение от zst Посмотреть сообщение
    Линейная адресация экранных байтов как в Орионе и Специалисте
    Вряд-ли это необходимо, а при переделке ZX-игр, чтобы избавить их от клешинга, даже вредно.

    Цитата Сообщение от zst Посмотреть сообщение
    Атрибуты на каждые 8 точек как в Орионе
    Не требуется, т.к при нужде можно поиметь 4 цвета точек на знакоместо, а при переделке ZX-игр, чтобы избавить их от клешинга, даже вредно. Речь же именно об игровом компьютере, а возможностей цвета ZX хватало. Мешал только клешинг.

    Цитата Сообщение от zst Посмотреть сообщение
    Слой фона в ходилках и леталках будет аппаратно сдвигаться
    Зачем усложнять? Проблему быстрого сдвига экрана решает удвоение клока Z80, что намного разумнее, чем вводить кучу сумматоров и усложнять себе программирование. Даже без всяких наворотов получится много деталей, зачем же ещё усложнять ради одной игры леталки-стрелялки, которая скорее всего и не появится.

    Цитата Сообщение от zst Посмотреть сообщение
    Возможно это будет уже не Спектрум, а другой, лучший компьютер
    Главное, чтобы он остался простым и 100% совместимым.
    Последний раз редактировалось barsik; 04.03.2018 в 13:09.

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

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

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

Похожие темы

  1. Ответов: 4
    Последнее: 15.05.2017, 15:32
  2. Ответов: 18
    Последнее: 12.03.2016, 14:15
  3. Ответов: 69
    Последнее: 13.06.2012, 10:33
  4. GO! на спектрум!
    от bigral в разделе Программирование
    Ответов: 1
    Последнее: 11.01.2012, 09:44
  5. Спектрум и Я
    от Black_Cat в разделе Разный софт
    Ответов: 0
    Последнее: 05.08.2007, 21:00

Ваши права

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