sexta-feira, 2 de março de 2007

O primeiro programa - Hello World

Antes de começarmos a estudar as estruturas básicas de um programa, vamos fazer um programa simples, que só vai escrever "hello world" no centro da tela do DS.

Passos para começar um programa novo:
  1. copie todo o conteúdo da pasta "PAlibTemplate", que está na pasta onde foi instalado o devkitPro, para outra pasta (não trabalhe direto na pasta "PAlibTemplate" para não perder o template de programa novo). Vamos usar, no exemplo, "C:\ProgDS\helloworld".
  2. abra o arquivo "Template.pnproj" com o "programmers notepad" (é só dar dois clicks no arquivo que abre sozinho).
  3. na área "Projects", procure o arquivo "main.c"
  4. dê dois clicks em "main.c"
  5. na janela que abriu, programe.
Então vamos ao programa:
  • posicione o cursor na linha abaixo de PA_InitVBL(); e acima de while (1). Não posicione na linha que começa com // pois tudo o que vier depois de // será considerado comentário.
  • digite o seguinte:
    PA_InitText(1,2);
    PA_OutputSimpleText(1,9,11,"Hello World !");
  • salve o projeto
  • pressione ALT+2. Este passo irá zerar algum arquivo já compilado. Deve ser feito para evitar erros.
  • pressione ALT+1. Este passo é a compilação propriamente dita. Aqui são gerados os arquivos .nds, .ds.gba e .sc.nds.
  • passe o programa compilado para o flashcard e para o DS, ou rode em um emulador.

O que o programa faz?
  • PA_InitText(1,2); => inicializa o modo texto na tela 1 (a de cima é a 1, a de baixo é a 0), no nível de background 2.
  • PA_OutputSimpleText(1,9,11,"Hello World !"); => vai para a linha 11, coluna 9, da tela 1 e escreve "Hello World !". Estas coordenadas foram calculadas para mostrar o texto aproximadamente no centro da tela. A tela do DS tem 256x192 pixels. Cada caractere da PAlib ocupa um quadrado de 8x8 pixels. Então eu tenho 32 colunas (numeradas de 0 a 31) e 24 linhas (numeradas de 0 a 23). Como "Hello World !" ocupa 1 linha e 13 colunas, temos de sobra 23 linhas e 19 colunas. Dividindo cada valor por dois (para ter aproximadamente o mesmo número de espaços antes e depois do texto), posicionamos o texto na coluna 9 e na linha 11.

6 comentários:

Leonardo Zimbres disse...

Dá tela branca tanto no platform game2 quanto no hello world. Eu culparia a palib, mas lembro-me de ter rodado seu jogo de poker no meu supercard rumble,, Será que eu instalei algo errado? No final da instalação parecia que dava um problema, mas tudo sumia e se dava como concluído.

Leonardo Zimbres disse...

Só para constar, testei uma versão que deu certo, a do Diogo, do platformgame5 no meu supercard rumble, e não deu certo. Acho que é o rumble mesmo. Vou ver se compro um supercard diferente quando puder... Você me recomenda algum emulador para testar os arquivos?

Diogo disse...

Esse Tutorial ta muito bom...mal posso esperar pelos outros...continue assim..e tambem queria saber o nome de um emulador para testar os arquivos...porque é muito chato fica toda hora botando e tirando os arquivos no sd

Guilherme - Homebrew Maker disse...

Como eu falei no final do artigo das ferramentas (o do plataformgame5), o No$GBA está rodando bem legal os homebrews. É só usar o arquivo .ds.gba gerado pelo devkitpro.

Diogo disse...

O Palib tambem vem com um emulador p DeSmuME

Leonardo Zimbres disse...

De fato. Achei que ele só tinha uma tela, mas o seu emulador indicado mostra duas telas. Funcionou tudo (o plataform game e o hello world) por aqui.