Продолжаем скоростную оптимизацию базовых игровых процедур:
Задача, экстремально быстро расчитать адрес атрибутов. Без таблиц.
Входные параметры: Есть Х (0..255), Y (0..192).
Можно ли быстрее чем 77 тактов?
Продолжаем скоростную оптимизацию базовых игровых процедур:
Задача, экстремально быстро расчитать адрес атрибутов. Без таблиц.
Входные параметры: Есть Х (0..255), Y (0..192).
Можно ли быстрее чем 77 тактов?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
22528+(Y and 248)*4+X/8
другое дело, как сдвигать влево или вправо.
Последний раз редактировалось research; 13.08.2013 в 13:23.
Куплю в СПб 5.25" Robotron или Teac
я набросал, но получилось 95 тактов. оптимизировать можно, но получатся те же 77 тактов, в лучшем случае. Вместо двубайтовых сложений в лоб - использовать однобайтовые (вместо 22528 добавлять только #58 к старшему байту и т.п.)
upd. чуть оптимизировал, вышло 80, без инициализаци (пару регистров надо занулить). у тебя 77 с инициализацией? Тогда сяду #58(00) делить на 4, чтобы потом умножить на 4 и сэкономить
upd2:
вот что вышло, может и заработает
;вход: a=X , l=Y
rra:rra:rra;12
and 224;7 смещение по х
ld h,#58/4 ;7
add hl,hl:add hl,hl;30
add a,l: ld l,a :adc a,h: ld h,a ;16
;/72
upd.3 - выше косяк - не обрезал Y три младших бита, был взволнован
;вход: a=X , l=Y
rra:rra:rra;12
and 224;7 смещение по х
ld h,#58/4 ;7
add hl,hl:add hl,hl;30
add a,l: and 31: ld l,a :adc a,h: ld h,a ;23
;/79
показывай свою
Последний раз редактировалось research; 13.08.2013 в 14:08.
Куплю в СПб 5.25" Robotron или Teac
rra rra rra and 31 ;19 тактов
через RR - 24
вообще, с пикселями возиться без таблиц - неблагодарное дело. тем более с атрибутом каждого пикселя, а не 8х8=64. Получается до 64 х 77 тактов лишней работы, вместо 1х77
Куплю в СПб 5.25" Robotron или Teac
гы, я и забыл, что RLC жрет 4 такта, тока мозгов посчитать как у тебя Y=191 считается мне не хватило. Но, интуитивно чувствую, что твой и мой методы можно объединить
Куплю в СПб 5.25" Robotron или Teac
Эту мозголомную часть, я долго мучал Но результатом пока не удовлетворён.
---------- Post added at 17:54 ---------- Previous post was at 17:48 ----------
Это наводит на мысль, что может Y/8 через экранные таблицы вытащить...
---------- Post added at 19:08 ---------- Previous post was at 17:54 ----------
Последний раз редактировалось drbars; 13.08.2013 в 18:29.
ты определись с верхним уровнем, зачем каждый пиксель мучить, если нужно ставить атрибуты лишь последнему.
Куплю в СПб 5.25" Robotron или Teac
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)