<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Disk Chocolate &#187; Adicionar nova tag</title>
	<atom:link href="http://diskchocolate.com/blog/tag/adicionar-nova-tag/feed/" rel="self" type="application/rss+xml" />
	<link>http://diskchocolate.com/blog</link>
	<description>Entregamos o melhor chocolate</description>
	<lastBuildDate>Mon, 23 Jan 2012 16:29:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[Tutorial] Desenvolvendo para o Nintendo DS, parte I &#8211; Instalando e Compilando</title>
		<link>http://diskchocolate.com/blog/2008/05/30/tutorial-desenvolvendo-para-o-nintendo-ds-parte-i-instalando-e-compilando/</link>
		<comments>http://diskchocolate.com/blog/2008/05/30/tutorial-desenvolvendo-para-o-nintendo-ds-parte-i-instalando-e-compilando/#comments</comments>
		<pubDate>Fri, 30 May 2008 20:56:13 +0000</pubDate>
		<dc:creator>Cindy Dalfovo</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[Adicionar nova tag]]></category>
		<category><![CDATA[desenvolver]]></category>
		<category><![CDATA[devkitpro]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[instalação]]></category>
		<category><![CDATA[nintendo ds]]></category>
		<category><![CDATA[palib]]></category>
		<category><![CDATA[programar]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.diskchocolate.com/blog/?p=206</guid>
		<description><![CDATA[Outras Partes do Tutorial: &#8211; Parte IIa &#8211; Entradas e Saídas &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 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 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Outras Partes do Tutorial:</strong></p>
<p>&#8211; <a href="http://www.diskchocolate.com/blog/2008/06/06/tutorial-desenvolvendo-para-o-nintendo-ds-parte-iia-entradas-e-saidas/">Parte IIa &#8211; Entradas e Saídas</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Bom, eu comecei a aprender a mexer com a <a href="http://www.palib.info/" target="_blank">biblioteca Palib</a> 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<a href="http://www.devkitpro.org/" target="_blank"> devkitPr</a>o 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.</p>
<p>Apenas continue lendo se você tem algum tipo de interesse por esse tipo de coisa nerd xD</p>
<p>[ad#ad-5]</p>
<p><span id="more-206"></span></p>
<p>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:<br />
- Como testar o seu programa<br />
- Como instalar a Palib e o devkitPro</p>
<p>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.</p>
<p>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:</p>
<p>- <a href="http://palib.info/downloads/Beta/PALib_CommunityUpdate_BETA-080203.7z" target="_blank">PAlib &#8220;Community Update&#8221;</a></p>
<p>- <a href="http://sourceforge.net/project/showfiles.php?group_id=114505&amp;package_id=160396&amp;release_id=593749">DevkitPro Updater 1.4</a></p>
<p>- <a href="http://sourceforge.net/project/showfiles.php?group_id=114505&amp;package_id=124207&amp;release_id=549080" target="_blank">DevkitArm release 21</a></p>
<p>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&#8230; de resto, basta dar próximo/próximo/próximo&#8230; nada de muito complicado aqui <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  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 &#8230;/documents and settings/&#8230; então não o instale lá também.</p>
<p>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. <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Agora só falta instalar o Palib &#8220;Community Update&#8221;. Caso você não tenha um descompactador .7z, você pode baixar o <a href="http://baixaki.ig.com.br/download/winrar.htm">Winrar</a> para descompactá-lo. Para instalá-lo, basta extraí-lo no diretório raiz do devkitPro, provavelmente c:/devkitPro.</p>
<p>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 -&gt; (windows xp: programas) -&gt; Painel de Controle -&gt; Sistema -&gt; (windows vista: configurações avançadas do sistema) -&gt; Avançado e clique no botão &#8220;variáveis de ambiente&#8221;.  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! <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>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&#8230; 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</p>
<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<a href="http://www.palib.info/wiki/doku.php?id=day1" target="_blank"> tutorial do Palib</a>, que é o que eu estou usando para aprender.</p>
<p>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.</p>
<p>[ad#ad-5]</p>
<p>Você pode abrir o projeto no Programmer&#8217;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:<strong> source </strong>possui seu código fonte, <strong>include</strong> possui os arquivos de cabeçalho e <strong>data</strong> possui os arquivos de imagens/sons/etc que você pode querer incluir no seu jogo. o <strong>Template.pnproj</strong> abre o projeto no Programmer&#8217;s Notepad,<strong> build.bat</strong> compila seu projeto e <strong>clean.bat </strong>essencialmente apaga o que foi criado pelo build.bat, para quando você quiser fazer uma pasta contendo apenas os arquivos fonte do seu projeto.</p>
<p>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:</p>
<pre lang='cpp'>
#include
//Include PAlib</code>

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;
}
</pre>
<p>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</p>
<p>Agora, antes de começar a programar, existem três bibliotecas que você deveria instalar com o PAlib para deixá-lo completo:</p>
<ul>
<li><a href="http://palib.info/downloads/Beta/external%20libs/external_efslib-1.2.7z">EFSlib</a> &#8211; 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.<a href="http://palib.info/downloads/Beta/external%20libs/external_efslib-1.2.7z"><br />
</a></li>
<li><a href="http://palib.info/downloads/Beta/external%20libs/external_mikmod-3.2.0-ds1.7z">MikMOD</a> &#8211; para tocar arquivos MOD<a href="http://palib.info/downloads/Beta/external%20libs/external_mikmod-3.2.0-ds1.7z"><br />
</a></li>
<li><a href="http://palib.info/downloads/Beta/external%20libs/external_liblobby-svn-2007-12-03.7z">LibLobby</a> &#8211;  permite que você use as funções Wireless do DS</li>
</ul>
<p>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</p>
<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</p>
<p>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.</p>
<p>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.</p>
<p>[ad#ad-5]</p>
<p>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:</p>
<pre lang='cpp'>
// Includes
#include
<pa9.h>        // 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;
}
</pre>
<p>Essencialmente a mesma coisa que o código do template padrão, mas incluindo a bilioteca efs e inicializando-a.</p>
<p>Se você for uma pessoa muito, muito preguiçosa&#8230; bom, desista desse hobby ingrato ;D Mas, enfim.. se você ficar com preguiça de seguir esses passos, <a href="http://www.diskchocolate.com/blog/wp-content/uploads/2008/05/palibtemplate_efs.rar">aqui</a> está a pasta prontinha, pronta para ser usada. Mas não pense que vai ser sempre assim mamão com açúcar, ok? ;D<br />
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 &#8220;Hello World!&#8221; por cima das escritas de &#8220;inicialização bem sucedida&#8221;&#8230; bonito, bonito&#8230; 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 <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ademais, recomendo o <a href="http://ndsbr.blogspot.com/search/label/Programa%C3%A7%C3%A3o" target="_blank">blog do Guilherme</a>, 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&#8230; ;p E o <a href="http://www.palib.info/wiki/" target="_blank">wiki do Palib</a>, que tem um tutorial bem completo e cheio de detalhes, bom para quem está começando a mexer com isso agora <img src='http://diskchocolate.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://diskchocolate.com/blog/2008/05/30/tutorial-desenvolvendo-para-o-nintendo-ds-parte-i-instalando-e-compilando/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

