Apresento uma forma de transferir desenho para o TK90X e fazer uma pequena animação.
Fonte: Kandi patterns |
Além da Hatsune Miku, é possível encontrar vários outros padrões deste tipo neste site. Primeiro o modelo acima é impresso em tamanho grande, de forma a permitir fazer anotações à lápis. Em seguida, digita-se num editor de textos um padrão que codifica cada quadrícula. No caso, foi usado o gedit que possui excelentes recursos.
Células pretas foram marcadas como K, ciano como C, magenta como M, verde como G, azul como B, branco como V e branco brilhante como W. As células transparentes foram marcadas como T. As cores são aproximadas para as que são disponíveis no TK90X. Outra coisa interessante é que a ferramenta de busca do gedit marca de amarelo os padrões pesquisados; na figura acima, quando se pesquisou a letra K, o contorno preto da Miku ficou evidente.
Células pretas foram marcadas como K, ciano como C, magenta como M, verde como G, azul como B, branco como V e branco brilhante como W. As células transparentes foram marcadas como T. As cores são aproximadas para as que são disponíveis no TK90X. Outra coisa interessante é que a ferramenta de busca do gedit marca de amarelo os padrões pesquisados; na figura acima, quando se pesquisou a letra K, o contorno preto da Miku ficou evidente.
A transferência é manual e trabalhosa, mas se for comparar com os artesanatos apresentados no site mencionado, não dá para reclamar. É bom anotar no modelo impresso, cada linha ou coluna que já foi digitada. Vale a pena preservar o arquivo assim produzido, para manipulações futuras. Sendo assim, é aconselhável criar uma nova cópia antes de passar para o passo seguinte.
O desenho codificado é transformado numa sequência de bytes através da função de substituição do editor de textos. Os valores dos bytes foram escolhidos para refletir os atributos de cores do TK90X, exceto a cor transparente (T) que ficou com o valor 128. Os demais códigos ficaram: K=0 (ink e paper 0), C=45 (ink e paper 5), M=27 (ink e paper 3), G=36 (ink e paper 4), V=63 (ink e paper 7), W=127 (ink e paper 7 com bright 1) e B=9 (ink e paper 1). Na hora de fazer as substituições, não se deve esquecer de finalizar cada valor numérico com uma vírgula.
Ao final, divide-se a sequência dos valores em várias linhas. Cada linha deve iniciar-se com a diretiva DEFB do assembler e as vírgulas do final devem ser removidas.
O desenho codificado é transformado numa sequência de bytes através da função de substituição do editor de textos. Os valores dos bytes foram escolhidos para refletir os atributos de cores do TK90X, exceto a cor transparente (T) que ficou com o valor 128. Os demais códigos ficaram: K=0 (ink e paper 0), C=45 (ink e paper 5), M=27 (ink e paper 3), G=36 (ink e paper 4), V=63 (ink e paper 7), W=127 (ink e paper 7 com bright 1) e B=9 (ink e paper 1). Na hora de fazer as substituições, não se deve esquecer de finalizar cada valor numérico com uma vírgula.
Ao final, divide-se a sequência dos valores em várias linhas. Cada linha deve iniciar-se com a diretiva DEFB do assembler e as vírgulas do final devem ser removidas.
Depois de montado com um assembler (pasmo, por exemplo), obtém se um arquivo binário que pode ser incluído em um emulador. O programa assembly abaixo faz a animação do sprite preparado:
O resultado pode ser visto no vídeo abaixo:
Apesar da resolução dos atributos de cores ser baixa (24×32), tem a vantagem de dispor das cores com mais liberdade, o que não ocorre se trabalhar com bitmap em que pixels vizinhos tem que ter mesmos atributos.
ORG 32768
LD HL,Miku
LD DE,30
Mainloop0
LD B,9
Mainloop1
CALL APrtScr
ADD HL,DE
DJNZ Mainloop1
PUSH HL
LD HL,0
OR A
SBC HL,DE
EX DE,HL
POP HL
ADD HL,DE
XOR A
IN A,(254)
CPL
AND 011111
JR Z,Mainloop0
RET
;
APrtScr
PUSH BC
PUSH DE
PUSH HL
LD B,5
Delay
HALT
DJNZ Delay
LD DE,22528
LD B,0
Loop0
LD C,0
Loop1
LD A,(HL)
BIT 7,A
JR Z,Jump0
LD A,(IY+14)
Jump0
LD (DE),A
INC HL
INC DE
INC C
LD A,C
CP 30
JR NZ,Loop1
INC DE
INC DE
INC B
LD A,B
CP 24
JR NZ,Loop0
POP HL
POP DE
POP BC
RET
;
Miku
;
INCLUDE "4373-Hatsune_Miku_Sprite_Fuse_Bead.asm"
O resultado pode ser visto no vídeo abaixo:
Apesar da resolução dos atributos de cores ser baixa (24×32), tem a vantagem de dispor das cores com mais liberdade, o que não ocorre se trabalhar com bitmap em que pixels vizinhos tem que ter mesmos atributos.
Nenhum comentário:
Postar um comentário
Seu comentário é bem vindo, mas peço que use este espaço adequadamente.