Publicado por: miwi | maio 30, 2008

[Tutorial] Desenvolvendo para o Nintendo DS, parte I – Instalando e Compilando

Outras Partes do Tutorial:

Parte IIa – Entradas e Saídas

—————————

Bom, eu comecei a aprender a mexer com a biblioteca Palib na quarta-feira e, como eu sou uma pessoa muito legal, eu resolvi compartilhar meu conhecimento na forma de um tutorial. Mas, o que é essa tal de Palib? Trata-se de uma biblioteca para ajudá-lo a desenvolver programas para o Nintendo DS. Essa bilioteca é usada em conjunto com o devkitPro para facilitar o desenvolvimento de programas para o Nintendo DS sem que o desenvolvedor tenha de ter um conhecimento profundo da estrutura do Nintendo DS.

Apenas continue lendo se você tem algum tipo de interesse por esse tipo de coisa nerd xD

[ad#ad-5]

Dito isso, se você também tem interesse em desenvolver alguma coisa para o seu Nintendo DS, você tem que se preocupar com duas coisas num primeiro momento:
– Como testar o seu programa
– Como instalar a Palib e o devkitPro

Para testar o seu programa, você tem duas opções: passá-lo para o seu DS usando um flashcard/flashcart, ou usando um emulador. Existem VÁRIOS tutoriais a respeito disso por aí, e você provavelmente sabe ou conhece quem saiba fazer essas coisas, então eu não vou entrar em detalhes nesse quesito.

Para instalar o Palib e o devkitPro, você primeiro precisa baixá-los. Uau, essa última frase foi extremamente útil, ein? Bom, segue a lista com os programinhas que você deve baixar:

PAlib “Community Update”

DevkitPro Updater 1.4

DevkitArm release 21

Para instalá-los, comece pelo devkitPro Updater. Quando ele pedir quais componentes você quer instalar, deixe todos marcados, ou remova os referentes à instalação de kits para o PSP e para o Wii/GC… de resto, basta dar próximo/próximo/próximo… nada de muito complicado aqui 🙂 Mas um detalhe importante: se você for mudar o diretório no qual será instalado o programa, NÃO instale-o em um caminho que tenha espaços, como c:/Arquivos de Programa/devkitPro, porque senão não vai funcionar. E lembre-se que o caminho até o Desktop envolve …/documents and settings/… então não o instale lá também.

Depois disso, você precisa substituir uma pasta que foi instalada no diretório C:/devkitPro (considerando que você não tenha trocado o diretório de instalação), a devkitArm. Por que? Por que esse devkitArm se encontra na versão 23b, que NÃO é suportada pela PAlib. O que você pode fazer nesse caso? Faça um downgrade: mude o nome dessa pasta para devkitArm_23 ou qualquer coisa assim e descompacte o devkitArm release 21 que você baixou nessa pasta. Vai aparecer uma nova pasta devkitArm. 🙂

Agora só falta instalar o Palib “Community Update”. Caso você não tenha um descompactador .7z, você pode baixar o Winrar para descompactá-lo. Para instalá-lo, basta extraí-lo no diretório raiz do devkitPro, provavelmente c:/devkitPro.

Para terminar a instalação, você vai precisar criar uma variável de ambiente. Calma, é mais fácil do que parece! 8D Vá no menu Iniciar -> (windows xp: programas) -> Painel de Controle -> Sistema -> (windows vista: configurações avançadas do sistema) -> Avançado e clique no botão “variáveis de ambiente”. Crie uma nova variável de usuário chamada PAPATH e cujo valor é o caminho até a pasta do PAlib, no meu caso e no caso padrão, c:/devkitPro/PAlib/. Sem aspas ou qualquer coisa assim. Dê OK, ok, e pronto! 🙂

Mas, como saber se a instalação deu certo? Para testar, vá até um programa de exemplo, como o que pode ser encontrado em C:\devkitPro\PAlibExamples\Text\Normal\HelloWorld, e dê um duplo clique em build.bat. Se surgirem dois arquivos (um .nds e um .ds.gba) e uma pasta chamada build, deu tudo certo. Se alguma coisa deu errado… bom, podem ser várias coisas, mas dê uma revisada nas versões do programa. Tente desinstalar tudo e reinstalar exatamente do jeito descrito acima que deve dar certo. ;p

Essas instruções se referem ao Windows, mas se faltou alguma detalhe, ou se você for instalar em um linux/mac, você pode olhar no tutorial do Palib, que é o que eu estou usando para aprender.

Agora, vamos ver uma pasta muito importante, a PAlibTemplate. Lá está uma base que você irá usar para qualquer programa que você vá fazer, e serve para você não ter de se preocupar muito com os vários detalhes básicos de um programa para o DS.

[ad#ad-5]

Você pode abrir o projeto no Programmer’s Notepad (uma IDE simples inclusa no devkitPro) clicando duas vezes no Template.pnproj, ou editar o arquivo principal em source/main.c. As pastas são bastantes simples de serem compreendidas: source possui seu código fonte, include possui os arquivos de cabeçalho e data possui os arquivos de imagens/sons/etc que você pode querer incluir no seu jogo. o Template.pnproj abre o projeto no Programmer’s Notepad, build.bat compila seu projeto e clean.bat essencialmente apaga o que foi criado pelo build.bat, para quando você quiser fazer uma pasta contendo apenas os arquivos fonte do seu projeto.

Na próxima parte do tutorial nós vamos começar a mexer no código mas, apenas para o caso de você querer brincar um pouco, aqui vai o código de um texto que é praticamente igual ao do template, mas que mostra um texto simples na tela:

#include
//Include PAlib

int main(void)
{
PA_Init();     //inicializa a biblioteca principal
PA_InitVBL(); // Inicializa o Vertical Blanking

//Diz para usar o texto na tela 1, no fundo de número 2
PA_InitText(1,2);

//Imprime o texto na tela 1, na coordenada 1,1
PA_OutputSimpleText(1,1,1,"Hello World !");

while(1)
{
//Laço infinito
PA_WaitForVBL();
}

return 0;
}

O código é bastante simples e os poucos comentários já são suficientes para compreender sua estrutura básica, então não entrarei em maiores detalhes nessa parte do tutorial ;D

Agora, antes de começar a programar, existem três bibliotecas que você deveria instalar com o PAlib para deixá-lo completo:

  • EFSlib – para ser usado quando o programa ficar com mais de 4MB, para acessar um sistema de arquivos (por exemplo, um aplicativo que deixe você visualizar os arquivos do seu microSD), ou quando o programa for estourar a RAM do ds ou a de vídeo.
  • MikMOD – para tocar arquivos MOD
  • LibLobby – permite que você use as funções Wireless do DS

Como usar cada uma dessas funções será visto mais tarde, até porque, você tem que fazer algumas alterações no makefile de acordo com o que você for usar, já que você não pode ter wireless e comunicação direta entre dois DS ao mesmo tempo, por exemplo. Pelo menos não ainda ;p

Agora, vamos apenas instalar essas bibliotecas. Para instalar a MikMOD e a LibLobby é muito simples: basta descompactar na pasta raiz do devkitPro. Pronto? É, só isso =D

Para instalar a EFSlib, no entanto, é um pouco mais trabalhoso (mas não muito, relaxa ;D): primeiro, copie a pasta C:\devkitPro\PAlibExamples\FAT\EFS_Lib para o diretório raiz do devkitpro e renomei-a para algo como PalibTemplate_EFS ou qualquer coisa parecida.

Agora, descompacte a EFSlib que você baixou, e copie os dois arquivos da pasta source (efs_lib.c e efs_lib.h) para a pasta source do seu PalibTemplate_EFS. Depois, copie o arquivo efs.exe para dentro da pasta PalibTemplate_EFS.

[ad#ad-5]

Ufa, tudo tranquilo até aqui? Agora, limpe o conteúdo da pasta efsroot, já que são arquivos usados no exemplo e que você não irá precisar. Depois, copie o main.c do template padrão (em PAlibTemplate/source para dentro da pasta source do seu PAlibTemplate. Agora falta pouco! Só falta você inserir algumas linhas no seu main.c, para que ele fique como o código-fonte abaixo:

// Includes
#include         // Include for PAlib

#include "efs_lib.h"    // Include for EFS lib

int main()
{
// init PA_Lib
PA_Init();
PA_InitVBL();

PA_InitText(1, 0);
PA_InitText(0, 0);

// init libfat
if(fatInitDefault()) {
PA_OutputText(1, 0, 0, "FAT init ok");
PA_OutputText(1, 0, 1, "Please wait, searching NDS...");

// init EFS lib
if(EFS_Init()) {
PA_OutputText(1, 0, 1, "EFS init ok                   ");
PA_OutputText(1, 0, 2, "found NDS path:\n%s", efs_path);

} else {
PA_OutputText(1, 0, 1, "EFS init error!");
}
} else {
PA_OutputText(1, 0, 0, "FAT init error!");
}

PA_OutputSimpleText(1,1,1,"Hello World !");

while(1)
{
PA_WaitForVBL();
}

return 0;
}

Essencialmente a mesma coisa que o código do template padrão, mas incluindo a bilioteca efs e inicializando-a.

Se você for uma pessoa muito, muito preguiçosa… bom, desista desse hobby ingrato ;D Mas, enfim.. se você ficar com preguiça de seguir esses passos, aqui está a pasta prontinha, pronta para ser usada. Mas não pense que vai ser sempre assim mamão com açúcar, ok? ;D
Se você for testar o seu programa (num emulador ou colocando-o num flashcard), você vai perceber que ele é, assim, MUITO emocionante: ele mostra na tela superior que as bibliotecas foram inicializadas corretamente e se você colocou para mostrar o texto do Hello World, vai aparecer um “Hello World!” por cima das escritas de “inicialização bem sucedida”… bonito, bonito… como eu ainda não descobri uma função simples que simplesmente reinicie as telas, por hora vamos deixar assim mesmo. Qualquer coisa eu atualizo esse post mais tarde 🙂

Ademais, recomendo o blog do Guilherme, que é um dos caras que mais entende de homebrews para o NDS no Brasil, provavelmente. Bom, pelo menos é o cara que sana as dúvidas de todo mundo na comunidade da Nintendo DS Brasil no Orkut… ;p E o wiki do Palib, que tem um tutorial bem completo e cheio de detalhes, bom para quem está começando a mexer com isso agora 🙂

Anúncios

Responses

  1. Eu não entendo nada disso xD
    A única coisa que sei é fazer um “Olá Mundo!” hahaha. Ah e algumas matrizes e só… 😛

    Mas depois de ler o seu tutotrial deu uma vontade de testar xD

  2. Muito massa esse artigo, se não o melhor do disk chocolate!
    Eu ja mexi com Gameboy Advanced uma epoca, mais não consegui fazer muita coisa, principalmente porque eu não usava nenhuma lib e não sabia quase nada (se hoje eu não sei quase nada imagina antes xD)
    Até hoje eu prometi um port da wintermoon para o nintendo ds e psp, mais para minha sorte a SDL já tem port para essas plataformas (provavelmente usa a PAlib para NDS)
    Bom mesmo, parabéns 😀

  3. […] [Tutorial] Desenvolvendo para o Nintendo DS, parte I – Instalando e Compilando | Disk Chocolate: junho 6th, 2008 at 1:00 pm […]

  4. [Tutorial] Desenvolvendo para o Nintendo DS, parte I – Instalando e Compila…

    Aprenda a programar para o Nintendo DS, parte I: instalando e compilando seu primeiro programa….

  5. Anda ficando muito bom o tutorial, continue assim! Agora que ando com tempo, vou ler mais o seu site! Já botei o seu Feed no meu Google Reader.

    Até mais.

  6. […] Instalando e Compilando […]

  7. cara eu queria saber com esse seu tutorial eu consigo desenvolver games para o nds !?


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Categorias

%d blogueiros gostam disto: