Я могу похвастаться только своими спрайтами в Рива рейде, вот их генератор
https://github.com/svofski/incursion...makesprites.py
И пример того, что он делает
https://github.com/svofski/incursion...aster/ship.inc
Он идет зигзагом, загружает данные lxi и записывает в экран через push. Там нету перекрытий, поэтому получилось здорово сэкономить.
Для XOR разве только
mov a, m \\ xri xyz \\ mov m, a \\ inr l ; 8 + 8 + 8 + 8 = 32, или 64 на два байта
Или попробовать парами?
lxi b, xyz \\ mov a, m \\ xra c \\ mov m, a \\ inr l \\ mov a, m \\ xra b \\ mov m, a \\ inr l ;; 12 + 8 + 4 + 8 + 8 + 8 + 4 + 8 + 8 = 68
получается хуже, но если вместо lxi будет pop, получается, что не надо инлайнить данные и код. В общем с xor-ом похоже много не выгадаешь за счет такого разворачивания.
Еще идея - у нас 4 плоскости. Если три плоскости сделать одним цветом, можно три спрайта перекрывать "аппаратно". Вопрос к логике игры, сможет ли она группировать перекрывающиеся спрайты так, чтобы они были в разных плоскостях? Если да, то круто и можно упростить отрисовку спрайтов до простого затирания. Эффект не обязательно должен быть всегда идеально выполнен. Если что-то частично перетрется, но это исчезнет с глаз долой за 20мс, ну и ладно.
- - - Добавлено - - -
P.S. ivagor меня опередил. То, что у нас получились одинаковые примеры говорит о том, что может быть точно один из нас прав.




Ответить с цитированием