Цитата Сообщение от Andrew771 Посмотреть сообщение
буду делать.
Зеркалирование байта сделать несложно и не торомзно.
Цитата Сообщение от denpopov Посмотреть сообщение
Одна табличка в 256 байт, и ты в шоколаде
Воистину, в Саботере я это оптимизировал так (в A - номер тайла, тайл выводится в буфер PaintedChar):
Код:
	ld l,a
	ld h,#00
	add hl,hl
	add hl,hl
	add hl,hl
	ld de,Game.Sprites.Saboteur - #08  ; tile number was incremented
	add hl,de
	ex de,hl
	ld bc,PaintedChar
	ld h,high MaskTable
	ld iyl,#08
.out_saboteur_loop:	
	ld a,(de)
	ld l,a
	dec h
.saboteur_mirroring_command:
	ld l,(hl)
	inc h
	ld a,(bc)
	and (hl)
	or l
	ld (bc),a
	inc bc
	inc de
	dec iyl
	jp nz,.out_saboteur_loop
Там тока еще и автомаскирование применяется, табличка зеркалирования находится перед табличкой маскирования, зеркалирование отключается засылкой nop'а в .saboteur_mirroring_command.
А вот отзеркалить тайлы при выводе спрайта сложнее. Особенно, если спрайт частично может выходить за границы экрана. Надо либо в обратном порядке идти по тайломапу, либо по тайловому слою. Поскольку в Саботере эта процедура занимается четырьмя вещами одновременно (заполняет слой маски, копирует тайлы из фона в буфер, предотвращает вывод тайла поверх непреодолимого препятствия и, собственно, копирует тайлмап в нужный слой), ее переписывание я отложил до 128-й версии.