Meus artigos anteriores falam sobre como iniciar a programação para dândi em assembler. Aprendemos como desenhar sprites e background, também discutimos brevemente o que são uma tabela de atributos e uma tabela de nomes, também descobrimos como ler um controlador. Nesses artigos usei o chr do jogo super mario bros 2 porque não era um artista, mas ainda para criar um jogo tive que procurar ferramentas que me ajudassem a criar os meus gráficos para o jogo. Abaixo do corte estão as etapas de desenvolvimento gráfico.
Demorei muito para encontrar uma ferramenta para o linux criar uma tabela de nomes, depois de um tempo até comecei a escrever a minha própria em php. A ideia era simples e já estava quase concluída. É possível converter uma imagem bmp ou png por pixel a pixel. Da esquerda para a direita 128 pixels e da parte superior para a inferior 256 linhas. Em seguida, determinamos a cor de cada pixel, podendo haver apenas 4 deles e, dependendo da cor, configuramos os bits apropriados, cada pixel no arquivo chr é descrito por 2 bits, de acordo com o seguinte princípio:
cor 0 = 00 = 00000000
cor 1 = 01 = 00000001
cor 2 = 10 = 00000010
cor 3 = 11 = 00000011
Ou seja, esses 2 bits são apenas os 2 últimos bits do número de sequência de cores. Nesse caso, a cor 0 em sprites é uma cor transparente. No fundo, esta é a cor de fundo.
chr 2 , 128 128 . 1- ( ), 2- ( , ). , , node.js img2chr
$ npm install -g img2chr
2- 1- ( png), 2- chr
img2chr test.png test.chr
chr .
FCEUX
, FCEUX Windows, wine. , nametable attribute table .
, . 128256 8 , .
. .
, , , . , .
, , , . .
. . , , .
img2png test.png t.chr
. PPU $2004
Y -
X -
LDA #100 ; A 100
STA $2004 ; Y $2004
LDA #$01 ; 1 (0- , 1- )
STA $2004 ;
LDA #%00010110 ;
STA $2004
LDA #100 ; x
STA $2004
E meu sprite foi exibido na tela. Isso não poderia deixar de se alegrar. Depois disso, trouxe todos os sprites para desenhar o herói, saíram 10 deles, claro que é um número muito grande de sprites, já que podemos atingir as limitações do prefixo, por exemplo, 64 sprites na tela em ao mesmo tempo, mas falaremos sobre isso nos próximos artigos.
Artigos anteriores: