Я описал уже дважды.
Вид для печати
Я описал уже дважды.
https://d.radikal.ru/d05/2105/96/ee711a9b8756.png
Плюс к ускорению кемстон маус курсора, написал и х2 speed ускорение клавиатурной мышки. Чтобы юзер себе ни в чём не отказывал. Фулл комплект. :cool_std:
В принципе, ща небольшой рефакторинг сделаю и можно приступать к началу экспериментов со спрайтованием юнитов с точностью до пикселя.
Оттестировал вывод по таблицам. Тестил на спрайте 2х2 знакоместа с маской.
Скорость отрисовки 1 байта с его маской = 232t.
Весь спрайт выкидывается на экран за 7421t прямой, 7463t зеркальный.
Не знаю пока, много это или мало. Если память не изменяет у Алония после кидания стэком было около 280t.
Плюсы метода:
- он есть и работает :biggrin:
- есть клиппинг по правому и нижнему краю (любое мануальное значение),
- есть миррор на лету,
- всегда константное время вывода.
Минусы метода:
- так как рисуется сверху-вниз, появляется проблема отрисовки спрайта выходящего за верхний предел экрана, его тупо невозможно нарисовать, ибо координата Y вывода начинается с 0 (у Алония в Аллодах было рисование, начиная с ног персонажа и там нет этого трабла),
- нехилые таблицы, требующие размещения по красивому адресу. Учитывая вывод OR/XOR имеем 4096 таблицу прямого вывода + 4096 таблицу миррор вывода. Это КАПЕЦ КАК ПЛОХО, ибо нужно иметь эти таблицы в нижней памяти, и получается на программу условно ноль места.
По поводу необходимости функции миррора: прикинул, "отражённой" основной графики будет более 12000. Отсюда, заменить их на 4096 видится целесообразным.
- - - Добавлено - - -
Не в курсе, у Медноногова какой способ вывода? По таблицам или сдвигом в регистрах? Или ветвлением на подпроцедуры?
Код:MACRO OnPage nPage
ld a,nPage
call OpenRamPage
ENDM
Значит таблицами Медного можно обогнать раза в два.
- - - Добавлено - - -
Первый спрайт выведен процедурой с точностью до пикселя:
https://b.radikal.ru/b02/2105/87/713a3c5e7e08.png
Чуть не опух подбирать как же должны выглядеть маска и спрайт... Но всё же осилил.
Медный будет опрокинут с пьедестала и точка :cool_std:
Ввёл в меню пунктик, позволяющий мануально отрубить искусственно введённую паузу в анимацию юнитов, что позволит посмотреть работу программы на максимальной скорости:
https://b.radikal.ru/b19/2105/25/8bf6f03fc22d.png
- - - Добавлено - - -
P,S,: Конкретно это меню на русском капец как не смотрится. Пробовал. Посему, инглиш.
Пока ты все рисуешь вот так.
https://zx-pk.ru/attachment.php?atta...1&d=1620742203
Медноногова тебе не переплюнуть.
Вложение 75391