Я описал уже дважды.
Я описал уже дважды.
Плюс к ускорению кемстон маус курсора, написал и х2 speed ускорение клавиатурной мышки. Чтобы юзер себе ни в чём не отказывал. Фулл комплект.
В принципе, ща небольшой рефакторинг сделаю и можно приступать к началу экспериментов со спрайтованием юнитов с точностью до пикселя.
Oleg N. Cher(10.05.2021)
Оттестировал вывод по таблицам. Тестил на спрайте 2х2 знакоместа с маской.
Скорость отрисовки 1 байта с его маской = 232t.
Весь спрайт выкидывается на экран за 7421t прямой, 7463t зеркальный.
Не знаю пока, много это или мало. Если память не изменяет у Алония после кидания стэком было около 280t.
Плюсы метода:
- он есть и работает![]()
- есть клиппинг по правому и нижнему краю (любое мануальное значение),
- есть миррор на лету,
- всегда константное время вывода.
Минусы метода:
- так как рисуется сверху-вниз, появляется проблема отрисовки спрайта выходящего за верхний предел экрана, его тупо невозможно нарисовать, ибо координата Y вывода начинается с 0 (у Алония в Аллодах было рисование, начиная с ног персонажа и там нет этого трабла),
- нехилые таблицы, требующие размещения по красивому адресу. Учитывая вывод OR/XOR имеем 4096 таблицу прямого вывода + 4096 таблицу миррор вывода. Это КАПЕЦ КАК ПЛОХО, ибо нужно иметь эти таблицы в нижней памяти, и получается на программу условно ноль места.
По поводу необходимости функции миррора: прикинул, "отражённой" основной графики будет более 12000. Отсюда, заменить их на 4096 видится целесообразным.
- - - Добавлено - - -
Не в курсе, у Медноногова какой способ вывода? По таблицам или сдвигом в регистрах? Или ветвлением на подпроцедуры?
Последний раз редактировалось DragonsLord; 11.05.2021 в 11:50.
Код:MACRO OnPage nPage ld a,nPage call OpenRamPage ENDM
DragonsLord(11.05.2021)
Значит таблицами Медного можно обогнать раза в два.
- - - Добавлено - - -
Первый спрайт выведен процедурой с точностью до пикселя:
Чуть не опух подбирать как же должны выглядеть маска и спрайт... Но всё же осилил.
Медный будет опрокинут с пьедестала и точка
Ввёл в меню пунктик, позволяющий мануально отрубить искусственно введённую паузу в анимацию юнитов, что позволит посмотреть работу программы на максимальной скорости:
- - - Добавлено - - -
P,S,: Конкретно это меню на русском капец как не смотрится. Пробовал. Посему, инглиш.
Последний раз редактировалось DragonsLord; 11.05.2021 в 14:05.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)