Page Principale

Note: — O-neill 26/03/2009 00:00 j’ai réécris et réorganisé toute cette page qui commençait à se faire vieille J’ai aussi constaté que la section Mac OS X n’était pas traduite: Avis aux Amateurs?

Note: — Sam101 30/06/2009 14:46La partie installation, notamment sous GNU/Linux, est pas à jour (Pour les dernières builds compatibles avec la r25-r26 notamment), je vais ré-écrire ça bientot.

Note: — Matkilsa 20/02/2010 15:46 Ajout d’un script d’installation automatique, ainsi que des scripts de compilation et de nettoyage sous GNU/Linux.

Jour 1 - Installer un Environnement de Développement (IDE)

Ici nous allons donner les instructions détaillées pour installer PAlib sur Windows, incluant le paramétrage Visual C++ 2008 Express Edition. Nous allons également voir comment procéder pour Linux et Mac OS X. Nous conseillons fortement à tous les utilisateurs de lire la section Les mystères de PATemplate, quelque soit votre système d’exploitation.

Bonne chance!

devkitPro? C'est un programme?

Une fréquente erreur faite par les utilisateurs est de croire qu’ils installent ‘devkitPro’. devkitPro n’est pas un programme mais une marque. On n’écrit pas de lettres avec Microsoft, on n’édite pas ses photos avec Adobe, c’est la même chose pour devkitPro.

Installer PAlib pour Windows

Etape 1: Installer la suite d'outils et les librairies

La première chose que vous devez faire pour débuter et de telecharger la dernière version de devkitARM et les librairies qui vont avec, fournies par devkitPro. C’est le noyau de presque tous les homebrew sur DS, et ça fournit les fonctions basiques d’accès au hardware de la DS. Par chance, il existe un programme facile à utiliser appelé devkitPro Updater, qui permet d’installer le package complet en quelques clics.

Télécharger devkitPro Updater 1.5.0

Une fois téléchargé et ouvert, un texte d’installation basique devrait apparaitre. Vous n’avez pas besoin de modifier grand chose ici, mais, si vous voulez, vous pouvez choisir de supprimer vos fichiers téléchargés. Cliquez simplement jusqu’à arriver à une fenêtre ressemblant à ça:

PAlib quant à lui requiert 8 de ces composants, mais vous pouvez tous les installer si vous le souhaitez. Les composants nécessaires sont:

  • minimal system

[à la suite de ‘devkitARM’ ]

  • devkitARM
  • libnds
  • libfat-nds
  • maxmodds
  • dswifilib
  • nds default arm7
  • filesystem

Il est également recommandé d’installer ‘nds examples’ (exemples pour libnds) et ‘Programmer’s Notepad’ (un IDE basique), même si ils n’affectent pas nécessairement le fonctionnement de PAlib.

Une fois que vous avez choisi vos options, passez à la page suivante, qui va vous permettre de choisir où vous voulez installer les outils et les librairies - basiquement votre section de développement DS.Placez ça où vous voulez - ça ne joue pas sur la compilation, tant que vous ne le placez pas dans un répertoire qui contient des espaces (ex : ‘C:/NintendoDS/devkitPro’ serait bon, mais ‘C:/Nintendo DS/devkitPro’ posera des problèmes de compilation)

L’updater/installer va alors commencer à télécharger et installer les packages requis. Quelques boites de dialogue devraient apparaitre, affichant ‘Extracting…’ avec une barre de status, mais pas la peine de s’en préoccuper - l’installation ne nécessite rien de plus.


Etape 2: Installer PAlib

Une fois l’installation des outils et des librairies terminée, c’est le moment de télécharger et d’installer PAlib. Premièrement, nous aurons besoin de télécharger la dernière archive PAlib, qui peut être trouvée là :

PAlib

La dernière version de PAlib comprend un installer qui range tout seul les fichier à leur place. Si vous choisissez une version plus ancienne, vous aurez besoin de décompresser l’archive et d’ordonner les dossiers manuellement dans un dossier PAlib créé dans votre dossier devkitPro de cette manière :

  …/devkitPro/PAlib/lib/…
  …/devkitPro/PAlib/template/…
  …/devkitPro/PAlib/examples/…
  …/devkitPro/PAlib/…

Fini ! Vous avez correctement mis en place un environnement de développement d’homebrew pour DS, et vous êtes presque prêt pour développer. Maintenant, tout ce que nous avons à faire est de paramétrer un IDE et de compiler un exemple.

Scorpeus 10/07/2009 12:44

fincs 10/07/2009 16:38

Janj 10/07/2009 02:36

Utiliser Visual C++ .NET comme IDE

Si vous avez Visual C++ installé, il est possible de l’utiliser comme IDE pour vos projets utilisant la PAlib. Pour cela il faut le configurer afin qu’il utilise le build.bat pour compiler à la place de son compilateur. Il doit être possible de faire la même chose avec VC6, seuls les noms des options/menus serons différents.

Creez un projet Visual qui contient vos fichiers .h et .cpp. (ou .c).

Ensuite allez dans les menu “Outils→Options→Projet→Répértoires des VC++”, selectionnez la combo box “Fichiers executables” et ajoutez le chemin vers le répertoire qui contient le “make.exe” du DevKitPro.

FIXME il me semble qu’il manque un passage entre la première étape et la seconde....

Ensuite, selectionnez vos fichiers source (vous pouvez en selectionner plusieurs à la fois dans un même répértoire) puis clic-droit, vous devez alors selectionner l’option “exclude from build” (ou “Exclus de la génération” en Français) SAUF votre fichier main.cpp (ou .c), nous verrons plus loin pourquoi.

Voici le moment d’aller dans les options du projet (bouton droit sur le nom du projet, attention pas celui de la solution!) et là il y a plusieurs options à régler:

Premierement on veut que visual connaisse le chemin des include de la PAlib pour avoir la coloration syntaxique, le Goto definition et visual assist qui fonctionnent. Allez dans la partie “C/C++→Général”. On ajoute ici les path vers les fichiers .h de la PAlib selon là où vous les avez installés. Par exemple chez moi, j’ai mis:

  • C:\devkitPro\PAlib\include\nds
  • C:\devkitPro\PAlib\include\nds\arm7
  • C:\devkitPro\PAlib\include\nds\arm9
  • C:\devkitPro\PAlib\include\nds\netinet
  • C:\devkitPro\PAlib\include\nds\sys

Ensuite il faut aller dans la partie “C/C++→Préprocesseur” et rajouter une symbole (mettez VC7 comme moi si vous voulez pas reflechir). Ce symbole va permettre de faire croire à Visual qu’on compile effectivement quelquechose alors qu’on en veux que l’utiliser comme IDE et compiler avec notre batch.

Puis, dans “Evenement de génération→Evenements avant génération” il faut mettre le nom du batch que vous utilisez pour compiler. Si .vcproj est dans le même répértoire que le “build.bat” (recommandé) alors il n’y a pas de chemin a entrer.

C’est pas fini! Comme je l’ai dit il faut que visual aie quelquechose à compiler, ainsi modifiez votre main.cpp (.c) en utilisant la definition VC7 dont a parlé plus haut. Le code modifié donne :

#ifdef VC7
int main(void)	
{
  return 0; 
}
#else
#include "main.h"
int main(void)	
{
  // Votre vrai code de main
  // ...
}
#endif

L’idée : Visual qui a défini le symbole VC7 va compiler le “faux” main puis va lancer le batch “build.bat”. Le problème est qu’il ne recompile que les fichiers modifiés et donc si vous modifiez un autre fichier que le main alors votre programme ne sera pas mis à jour. La solution : utilisez la commande “Rebuild All” (”Régénerer”) à la place de “Build” (”Générer”), ce ne sera pas plus lent car le batch fait un “clean” de toutes façons et ignore sur quel bouton vous avez cliqué dans visual.

Voilà, vous pouvez tester si ça marche en cliquant sur votre projet et en faisait un Rebuild.

C’est bon? Bon il est alors temps d’inclure la PAlib dans notre solution. Faites une copie de votre fichier .vcproj du répértoire où vous aviez votre “build.bat” dans le répértoire qui contient le “Install.bat” (Chez moi : C:\devkitPro\PAlib). Renommez-le au passage. Ajoutez-le à votre solution dans visual studio. Retirez les fichiers qu’il contient du projet et faites y glisser à la place les .h et les .c de la PAlib.

Il faut ensuite retourner dans “Evenement de génération→Evenements avant génération” de ce nouveau projet et remplacer “Build.bat” par “Install.bat”

Et c’est tout! maintenent vous pourrez en 2 clics compiler soit la PAlib, soit votre projet DS perso qui l’utilise sans sortir de visual. Pour pousser encore plus le truc, vous pouvez rajouter une ligne à la fin du batch (d’où le “Build2.bat” sur mes screenshots) pour copier automatiquement le(s) fichier(s) nds sur votre lecteur de carte.

Si vous rencontrez d’autres problèmes lors de l’installation de visual c++ express, je vous conseille fortement de visionner ce petit tutoriel (Vidéo) très complet.

 

* PARTIE 1

* PARTIE 2

* PARTIE 3

benualdo 07/05/2009 22:00

Utiliser Code::Blocks comme IDE

Compilez votre projet avec Code::Blocks

Comme dans la partie traitant de Visual C++, voici une technique pour pouvoir utiliser Code::Blocks comme IDE.

Pour commencer, il faut régler Code:Blocks pour qu’il puisse compiler avec PAlib. Pour cela, lancez Code::Blocks (avec ou sans projet crée), puis allez dans le menu “Tools” (dans la version anglaise), puis cliquez sur “Configure tools...”.

A ce moment là, Code::Blocks va vous ouvrir une boite de dialogue (On peut voir que mes outils sont déjà réglés) :

Pressez “Add”. Maintenant, vous devez configurer votre outils comme suit :

Maintenant vous pouvez faire “Ok”. Là, vous venez de créer un outil vous permettant de, par un simple clic dans le menu “Tools”, compiler votre projet.

Pour que ça fonctionne, il y a 3 conditions : que dans le répertoire de votre projet, il y est TOUJOURS les fichiers suivant :

¤ build.bat : c’est celui fourni par défaut dans les exemples de PAlib.

¤ clean.bat : idem.

¤ makefile : c’est le fichier qui dit qu’est-ce qui doit être compilé (Voir la partie en traitant sur ce site).

Émuler votre programme avec No$GBA à partir de Code::Blocks

Vous en avez marre, à chaque fois que vous compiler un projet, d’aller jusqu’à votre débugger puis ensuite de donner le nom du fichier à emuler ? Voici comment faire pour faire tout ça en un seul clic avec Code::Blocks (Ici, je fais le test uniquement avec No$GBA. Il est sûrement possible de faire fonctionner les autres émulateurs de la même manière, à quelques modifications près).

Il faut procéder comme dans le partie précédente : créez un nouvel outil (voir ci-dessus), puis configurez-le comme suit :

Voici les modifications à apporter :

Dans le champ “Exécutable”, vous devez mettre le chemin d’accès à votre émulateur. Si ce chemin contient des ‘$’ (comme moi), remplacez-les par ‘$$’.

Maintenant, vous pouvez faire “Ok”, votre projet est configuré correctement. Comme dans la partie précédente, il y a une condition :

¤ Le nom de votre projet, celui visible à gauche (par défaut) dans Code::Blocks, doit être EXACTEMENT le même que celui du répertoire dans lequel ce situe votre projet, sinon No$GBA ne trouvera pas votre fichier.

darkelfe 29/12/2008 12:45

Sous Linux

Pré-requis

Tout d’abord, pour pouvoir mener à bien la compilation de PAlib, vous devez avoir installé sur votre système “make”. Pour cela, utilisez le gestionaire de paquets de votre distribution pour l’installer sur votre système (Installez build-essential sous Debian et ses derivés (notamment Ubuntu)

Téléchargement et installation de devkitpro

Tout d’abord, il vous faut récupérer la dernière version de DevkitARM, de la libnds, de la libfat, de dswifi mais également aussi de Maxmod.

Créez un nouveau repertoire nommé “devkitpro” dans votre dossier personnel (/home/Nom d’utilisateur). Créez dans ce repertoire un repertoire nommé “libnds”, et extrayez le contenu de l’archive de libnds, dswifi, libfat et Maxmod.

Extrayez ensuite le contenu de l’archive de devkitARM dans la racine du dossier “devkitpro”

Téléchargez la dernière community build de PAlib ici (090621 à l’écriture de cet article) et extrayez son contenu dans un dossier “PAlib” que vous aurez préallablement crée dans le dossier devkitpro.

Votre arborescence devrait ressembler à ceci:

/
|--home
	|--<login>	
		|--devkitpro
			|-devkitARM
			|-libnds
			|-PAlib

Variables d'environnement

Vous devez ensuite definir trois variables d’environement pour devkitpro et PAlib :

Editez le fichier /etc/environment en root (sudo gedit /etc/environment sous Ubuntu par exemple) et ajoutez y ces trois lignes:

DEVKITPRO="/home/<login>/devkitpro"
DEVKITARM="/home/<login>/devkitpro/devkitARM"
PAPATH="/home/<login>/devkitpro/PAlib"

Appliquez les changement avec la commande “source /etc/environment”. Généralement, vous aurez à redemarrer votre ordinateur pour que les changements soient pris en compte.

Recompilation de PAlib

Pour éviter les problèmes, vous devez ensuite recompiler PAlib, pour cela rendez vous dans le repertoire de PAlib via un terminal, et entrez la commande “make”

Utiliser gedit comme IDE

Pour utiliser gedit comme IDE, Vous devez activer le Greffon “Outils externes” (Menu Éditions⇒Préférences⇒Onglet Greffons)

Pour éviter tout problème dans le futur, nous allons créer notre propre raccourcis pour compiler et pour lancer l’émulateur

Allez dans (Menu Outils⇒Outils externes), Cliquez sur Nouveau pour créer un nouvel outils que vous nommerez “Émulateur”, assignez-lui un raccourcis clavier, dans la boîte Command(s), insérez la commande:

cd $GEDIT_CURRENT_DOCUMENT_DIR
cd ..
[le chemin vers votre émulateur (ex: desmume)]

Cliquez sur Nouveau pour créer un nouvel outils que vous nommerez “Compiler NDS”, assignez-lui un raccourcis clavier, dans la boîte Command(s), insérez la commande:

cd $GEDIT_CURRENT_DOCUMENT_DIR
cd ..
make clean
make

Installation automatique

Cette phase n’est pas la suite du chapitre de l’installation sous Linux, mais une autre possibilité pour l’installé automatiquement. Toutefois les outils de compilation comme Make dont il est question plus haut sont toutefois indispensables et ne sont pas proposés dans ce script, donc lisez aussi la première partie de l’installation sous Linux.

Pour cela on va créer un script shell, ou vous le voulez ;)

#! /bin/bash
 
#
# PAlib Linux Installation Script by Rapfnny (www.bob-omb.net - irc.bob-omb.net) 08/10/2009
# Traduit par Matkilsa le 19/02/2010
#
 
echo
echo 'Script permettant l installation de Palib et ces composants sur la plateforme Linux.'
echo
echo 'Script de Rapfnny, traduit en francais par Matkilsa, les liens ont été modifiée.'
echo ''
echo 'Appuyer sur la touche Entrer pour continuer.'
read
 
#
# devkitPro Directory
#
 
echo ''
echo 'Changement du répertoire, direction : ' $HOME '...'
cd $HOME
 
echo ''
echo 'Création du répertoire pour devkitPro :' $HOME'/devkitpro ...'
mkdir devkitPro
 
#
# DevKitARM
#
cd $HOME/devkitPro
 
echo ''
echo 'Téléchargement de devKitARM...'
wget http://downloads.sourceforge.net/project/devkitpro/devkitARM/previous/devkitARM%20release%2026/devkitARM_r26-i686-linux.tar.bz2
 
echo ''
echo 'Décompression de devKitARM...'
bunzip2 devkitARM_r26-i686-linux.tar.bz2
tar xvf devkitARM_r26-i686-linux.tar
rm devkitARM_r26-i686-linux.tar
 
#
# LibNDS
#
 
cd $HOME/devkitPro
mkdir libnds
cd libnds
 
echo ''
echo 'Téléchargement de la LibNDS...'
wget http://downloads.sourceforge.net/project/devkitpro/libnds/previous/libnds%201.3.8/libnds-1.3.8.tar.bz2
 
echo ''
echo 'Décompression de la LibNDS...'
bunzip2 libnds-1.3.8.tar.bz2
tar xvf libnds-1.3.8.tar
rm libnds-1.3.8.tar
 
#
# dsWifi
#
 
cd $HOME/devkitPro/libnds
 
echo ''
echo 'Téléchargement de dsWifi...'
wget http://downloads.sourceforge.net/project/devkitpro/dswifi/previous/dswifi%200.3.10/dswifi-0.3.10.tar.bz2
 
echo ''
echo 'Décompression de dsWifi...'
bunzip2 dswifi-0.3.10.tar.bz2
tar xvf dswifi-0.3.10.tar
rm dswifi-0.3.10.tar
 
#
# libFAT
#
 
cd $HOME/devkitPro/libnds
 
echo ''
echo 'Téléchargement de libFAT...'
wget http://downloads.sourceforge.net/project/devkitpro/libfat/previous/libfat%201.0.4/libfat-nds-1.0.4.tar.bz2
 
echo ''
echo 'Décompression de libFAT...'
bunzip2 libfat-nds-1.0.4.tar.bz2
tar xvf libfat-nds-1.0.4.tar
rm libfat-nds-1.0.4.tar
 
#
# PAlib
#
 
cd $HOME/devkitPro
 
echo ''
echo 'Téléchargement de PAlib...'
mkdir PAlib
cd $HOME/devkitPro/PAlib
wget http://www.programix.info/other_downloads/PAlib090801.7z
 
echo ''
echo 'Décompression de PAlib...'
7z x PAlib090801.7z
 
rm PAlib090801.7z
 
#
# Paths
#
 
echo ''
echo 'L installation de PAlib est terminée'
echo 'Toutefois les valeurs suivante doivent etre inscrite dans le fichier ~/.bashrc'
echo ''
echo 'export DEVKITPRO=~/devkitPro'
echo 'export DEVKITARM=$DEVKITPRO/devkitARM'
echo 'export PAPATH=$DEVKITPRO/PAlib/lib'
echo ''
echo 'Appuyer sur la touche Entrer pour continuer.'
read
 
gedit ~/.bashrc
 
source ~/.bashrc

Ce script à été crée par Rapffny(script original disponible sur le wiki anglais) et modifiée et traduit par Matkilsa.

Lancez le via le terminal, le script téléchargera PAlib090801, devkitArm R26, libnds, dswifi, libFAT. Si vous voulez d’autres versions des libs ou de PAlib à vous de changez les urls dans le script, rien de bien compliqué :).

Il entrera aussi les variables d’envirronement.

Par contre de ce coté la une petite erreur est possible, donc verifiez les après car la ligne

DEVKITPRO=~/devkitPro

Peut se transformer en

DEVKITPRO=~/devkitpro

Si c’est le cas modifié la ligne pour remmetre le P de pro en majuscules ou alors modifié le nom de votre dossier en “devkitpro”

# clean make clean

echo echo ‘End of cleaning.’ echo echo ‘Press Enter to continue.’ read </code>

Vous pouvez le rendre executable, mais si vous êtes un utilisateur de Linux vous savez comment faire :)

Mac OS X

La section Mac est ajoutée le 12/19/2006 par http://v8media.com, utilisant Mac OS X 10.4.8

Installation de l'Apple's Developer Tools (Xcode)

Certaines machines récentes sont fournies avec l’outil de développement sur les disques d’installation, ou parfois, sur des disques séparés. Si vous venez juste d’acheter votre Mac, installez le disque.

Sinon, le mieux est de regarder sur le site d’Apple pour récupérer les outils de développement les plus récents. L’adresse à utiliser pour cela est la suivante http://developer.apple.com/tools/. Vous aurez besoin de vous enregistrer, mais cette démarche est gratuite. Profitez-en pour faire un tour des logiciels proposés, car il y a de nombreux outils très pratiques pour la programmation, le script ou même pour la création de vidéo sur le Mac.

Lorsque vous aurez installé le kit, vous aurez un répertoire “Developer” à la racine de votre disque dur. De nombreuses lignes de commande auront aussi été ajoutées à votre Mac OS, dont la plus importante, la commande ‘make’.

Installer les variables d'environnement Mac

FIXME

There seem to be many ways to do this, and it seems to depend partly on which “shell” you have installed or selected I use the Mac OS X default for 10.4, which is bash. To find out which shell you use, open the Terminal program (from Applications/Utilities) and then select the “Terminal” menu item and select “Window Settings”. Make sure the top drop-down item “Shell” is selected. In that screen, you should see the 2nd line saying Shell: . If it’s bash, here’s how to set your “environment paths”.

If you are using something other than bash, you either know what you are doing, or will need to find a tutorial to set up your environent paths for your shell.

Environment Paths are just paths in your operating system that you or a program define to let yourself or a program do something more easily. For example, say that everyday you have to log in to another machine using the terminal using ssh to check a university email. The first step would be to log in to the server, probably using a program called ssh. Here’s what a command for that might look like: “ssh -i firstname.lastname@server.university.com”. If you are doing this from your own machine, you can simplify this by making what is called an alias. your alias for this example might simply be “unimail” or something of the sort. Far easier to remember. We do this in a hidden file in your home directory called .bash_profile.

1) To create the file, or open the file if it already exists, open a new terminal window. 2) type in (without the quotes) “pico .bash_profile”. Now you should see a blank screen and some text a the bottom starting with: Get Help, Exit, WriteOut . . . You are in a program called Pico. All control is via the keyboard, your mouse won’t help you here. 3) copy and paste these next two lines:

export DEVKITARM=/opt/local/devkitPro/devkitARM/

export DEVKITPRO=/opt/local/devkitPro/

4) Hold the “control” key, and then press the “x” key, this sends the Exit command to the program. It asks if you want to save, so press the “y” button. It then comes up with a screen asking what the name of the document should be, we gave it a name when we made the command to open Pico, so just hit the “return” key. 5) There is no step 5.

Installation du DevKitARM, de la libnds, et du dswifi

FIXME

Disclaimer: I have not gotten a dswifi app to compile yet, I’m filling in what I know how to do so that someone who knows this part well will have an easy time of updating this with the correct information. Thanks ahead of time to whoever fills this information in!

Download the current version of devkitARM (It was at 19b as of 12/19/2006). This includes devkitARM and libnds. Here’s the link: http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207&release_id=434282. This is processor specfic. If you have an Apple PPC machine, download the osx version, if you have an Intel machine, download the Intel version. One is a .dmg, the other is a .zip, both contain double-clickable package files. Go ahead and install these.

This link includes dswifi, which you should download the latest version of. Probably version 0.3b. At some point, it will be part of the devkits and you won’t need it separately, for now, you need to grab it. http://sourceforge.net/project/showfiles.php?group_id=114505. Just download the compiled version, you won’t need the source files.

There is a lack of information out there as to what to do with these wifi files. The most succinct description I’ve seen so far is to put them into the devkitPro folder (/opt/local/devkitPro/). Ok, but named what or in which specific directory? Right now I’ve got three copies to cover the possible names and none seem to work. I saw a reference to naming them “ldswifi”, but like I said, I haven’t gotten this part working. It could be down to proper naming, but could be that the files need to be elsewhere.

There are also examples listed “nds examples 20060817”. Download those, or a newer version if one exists. Now we start getting to issues. It seems like the libs we just installed aren’t fully aware of the capabilities of the OS, and don’t seem to be able to deal with spaces in the names of files. As long as you put the example files and any others that you are working on directly into the “Users/MyUserName/Documents” or in a folder with no spaces and with project names with no spaces, you will have no issues. I found it easier to put the stuff in a folder in the root of my hard drive. So I have “ianDS”, and “libnds_examples_20060817” as two folders in the root of my main drive.

After you place these files, we can test out some compiling. Here’s a step-by-step easy way to do this.

1) Have one Terminal window open, and one Finder window where you can see the example file you want to try compiling. I’m using this file: /libnds_examples_20060817/Graphics/2D/256_color_bmp/. What you want to be able to see is the draggable folder name of the project.

2) Type “cd " into the terminal. That’s a space after c, and d. 3) Drag the folder of the project you want to work on to the Terminal and let it go. It copied the whole path in there so you don’t have to do it your self or find your way there using shell commands. 4) type “make”

You should see something like this in your terminal window:

v8media.com_permanent_palib.info_wiki_compile_terminal_make.jpg

The important part there is where it says “built” near the bottom. As opposed to “Error”.

You should also see that your folder filled up a bit so it looks like this (if you are using column mode):

v8media.com_permanent_palib.info_wiki_compile_after.jpg

Woohoo! If you see this, you’ve just compiled multiple copies of a program. These can run on your flashed Nintendo DS or in emulators. For instructions on specific cards, look here, which is back up the page in the Windows section Putting the homebrew on the DS. If you are going to be doing much coding, I suggest using an emulator most of the time as this will be far faster than swapping cards, moving files, and unplugging and plugging cables every time you compile. Maybe just toss it onto actual hardware when you get something that you wonder how it looks for real or is complex enough that it may work differently than on an emulator.

One other thing you can do here while you still have the Terminal window open: type “make clean” and hit return. This should get rid of the files that were created during your “make” expedition. This can help you make sure that any errors you might get were not from extra files in your project.

PAlib

Il ne reste plus qu’a installé PAlib http://palib.info/forum/modules/PDdownloads/.

Prenez la dernière version stable, au format Zip

Le plus simple serait ici de prendre les cinq dossiers dans le dossier PAlib et de les déplacez vers /opt/local/devkitPro/ avec le reste.

Autres logiciels

FIXME

A piece of software that can be quite helpful on newer Apple Intel machines is WINE. WINE stands for WINE Is Not an Emulator. Since the newer Apple machines already have Intel chips, you don’t need an emulator to be able to run Windows programs, what you need is an environment to run those programs. Download from here: http://darwine.opendarwin.org/download.php. That’s an easy download and install, but you do need to have X11 installed, which you can find here: http://www.apple.com/downloads/macosx/apple/x11formacosx.html.

Some programs will need a Windows DLL file in order to run. If this is the case, you’ve got to find the DLL, maybe copy it from a Windows machine you have access to. Once you have it, just put it in the same folder with the program that you are trying to run. Start off simple and try with the sample programs that come with Darwine before you try something else.

Since the only programs you really need to run on the Windows side of things will most likely be the graphics conversion programs, being able to open them in a window instead of in a whole operating system is ideal. The program that comes with PAlib seems to work ok. You should find it here on your computer after installing PAlib: “/opt/local/devkitPro/PAlib/Tools/PAGfx/PAGC Frontend.exe”.

If you are running a less recent Apple machine with some sort of PPC chip (G3-G5) what you will want is a copy of QEMU. The Mac OS X version is called just “Q”. You can find this here: http://www.kju-app.org/kju/. If you are familiar with Virtual PC, you will find this to be pretty similar. Including that you will need a copy of Windows 98, 2000, or XP in order to use it.

Unfortunately, I have yet to get Darwine to run PAGfx, so I am currently using Parallels, which is a paid product. But worth not having to boot into Windows if all you are using is some tiny utility program. http://www.parallels.com/en/products/workstation/mac/. If you get Darwine to run some of these utilities, please post your success.

Another piece of useful software is GraphicConverter from LemkeSoft http://www.lemkesoft.com/. You can apparently use this to convert images to the format for the GBA and DS. If you know how to do this, please edit this and add the settings you use.

With the release of PAGfx-Linux, MacOSX users now have the oportunity to use the PAGfx command line version without a problem. All you have to do is to install ‘mono’ (http://www.mono-project.com/Main_Page), automake 1.10 and autoconf. Autoconf can be installed using apt-get tool (very useful, install it if you haven’t yet), but automake has to be installed manually (apt-get only finds up to 1.9 version), however the instructions can be found easily googleing a bit. Then follow the instructions on the README file in PAGfx-Linux folder to install PAGfx. Once everything is installed you only have to put all your graphics on one folder, create the PAGfx.ini file (see sprites tutorial) and go to that folder on the terminal and type ‘pagfx’.

Configuration sans fil

Vous serez heureux de voir que les cartes Airport d’Apple peuvent être utilisé pour parler directement avec le DS

Instructions disponible ici :http://www.macosxhints.com/article.php?story=20051119155606277.

Tester son Code

Tester sur un Émulateur

Actuellement, il n’y a pas énormément d’émulateurs. Je conseille d’utiliser presque exclusivement No$GBA, c’est le plus fidèle au rendu de la DS

  • No$GBA [Windows], le meilleur émulateur NDS de très très loin (contrairement à ce que son nom semble indiquer). Il gère parfaitement presque tout ce qui concerne la 2D, avec les effets de transparence et tout, et une bonne partie de la 3D est à présent supportée caca.
  • DeSmuMe [Windows] [Linux], créé par YopYop. Il a été abandonné par son auteur puis repris par d’autres programmeurs. La version actuelle est la seule à proposer la configuration des touches! Linux: Actuellement dispo dans les dépôts Ubuntu.
  • iDeaS [Windows] [Linux] est l’autre excellent émulateur à tester! Il était le premier à supporter la 3D et le son.
  • Dualis [Windows] , fonctionne pas trop mal pour plein de choses, mais ne reflète pas ce qu’on aura sur DS (un code qui marche sous Dualis peut ne pas passer sur DS!). La version actuelle commence à dater.
  • DSEMU [Windows] , fera probablement un grand retour avec ses nouvelles fonctionnalités de plugins, mais je ne l’utilise pas pour le moment.

Sur la DS

Pour tester votre code sur votre Nintendo DS, il vous suffit de copier le bon exécutable dans la mémoire (interne ou externe) de votre linker. Si vous n’avez pas de linker, vous pouvez voir un petit comparatif des différents linkers existants ici

Démarrage en Douceur...

Voici un tutoriel très rapide sur la compilation...

Les mystères de PATemplate

Premièrement, ouvrez le dossier PAlibTemplate. J’expliquerai son fonctionnement un peu plus tard... vous pouvez constater qu’il contient quelques fichiers, et 3 dossiers.

Description de Template

je viens juste de penser à une question, qui m’a déja été posée avant :D .... Qu’est ce qu’un template ? Je le sais ! On pourrait dire qu’un template est un élément qui offre une séparation de la ‘form’ ou de la structure et de son contenu (wikipedia inside...). En d’autres termes, c’est une structure organisée qui contient tous les fichiers de développement, pour un projet donné. A l’intérieur, vous pourrez donc trouver le code en C, les sprites, les backgrounds, les sons, etc...

Concernant les répertoires :

  • source → contient la partie la plus importante : le code source qui est en fait le code exécutif (fichiers .c ou .cpp)
  • include → contiendra les fichiers d’en-têtes (headers), qui sont des sortes d’aides/informations à propos des fichiers source (fichiers .h)
  • data → sera utilisé plus tard pour les sons par exemple

Concernant les fichiers :

  • Makefile → fichier important mais compliqué, il explique comment compiler le programme, ne vous inquiétez pas pour ça
  • logo.bmp and logo_wifi.bmp → fichiers images utilisés quand on envoie la rom via wifi, pas beaucoup d’importance
  • build.bat → fichier important, utilisé pour construire → compiler, créer la rom
  • clean.bat → quand vous voulez diffuser le code source, ou quand vous avez fini de coder, clean.bat enlève tous les fichiers de compilation et la rom. Ca rend la taille totale de projet plus petite... Simplement, ça enlève tous les fichiers créés par build.bat
  • project.vhw → celui ci est cool, il ouvre le projet entier sous VisualHam, l’éditeur qu’on va utiliser...

Le code principal de Template

Maintenant, soit vous ouvrez template.pnproj soit vous allez dans source/ et vous ouvrez main.c. Comme son nom le suggère, main.c est le fichier du programme principal. Il contient les éléments qui seront chargés par défaut quand la rom démarre. Le main.c “template” contient tous les éléments basiques dont on a besoin pour faire tourner la PAlib. Si vous compiliez et lanciez la rom dans un émulateur ou sur DS, ça ne ferait rien, mis à part afficher 2 écrans blancs. Voici ce que vous voyez quand vous ouvrez pour la première fois main.c

// Includes
#include <PA9.h>       // Include for PA_Lib
 
// Function: main()
int main(int argc, char ** argv)
{
	PA_Init();    // Initializes PA_Lib
	PA_InitVBL(); // Initializes a standard VBL
	
	// Infinite loop to keep the program running
	while (1)
	{
		PA_WaitForVBL();
	}
	
	return 0;
} // End of main()

Etude du Code !

Si vous connaissez déja la programmation en C, c’est surement déja très clair pour vous. Pour les autres, ça ne l’est surement pas, donc je vais détailler tout ligne par ligne, même s’il y a déja des commentaires...

// Includes 
 

Simple : // signifie que le texte qui suit est un commentaire... Quand on met //, on dit au compilateur de ne pas compiler ce qui suit... on peut donc écrire n’importe quel texte en commentaire ! Cette ligne est ici seulement pour dire qu’on peut placer ici les fichiers à inclure (images, etc...)

#include <PA9.h> 
 

Cela signifie : merci d’inclure la PAlib dans mon code, je vais en avoir besoin ! Si on ne met pas ça, les fonctions de la PAlib ne seront pas reconnues et on aura des erreurs. Le concept d’utiliser des includes deviendra très important plus tard car les includes sont utilisés pour ajouter des fichiers de graphismes, d’autres codes importants et plus encore.

int main(int argc, char ** argv)

Cela peut sembler mystérieux, mais vous l’aurez dans tous les projets : c’est le début de votre programme, où tout commence. Ne cherchez pas à comprendre ce que le (int argc, char * argv) signifie, oubliez le car vous ne l’utiliserez jamais :) Retenez que tout ce qui est au-delà du ‘{’ sera le code d’exécution!

PA_Init();    // Initialise PA_Lib
PA_InitVBL(); // Init de la VBL 
 

Ces 2 lignes seront présentes dans chaque projet utilisant PAlib. - La première est une initialisation générale. Elle prépare votre programme pour utiliser les sprites, les arrière-plans, le texte, tout ce qu’il faut. Oublier cette ligne empêchera PALIB de fonctionner. - La seconde ligne, avec le VBL, peut être modifié par des utilisateurs expérimentés. Grossièrement, le VBL permet de synchroniser le programme avec l’écran, à 60 images par seconde. Si vous n’initialisez pas le VBL, l’un ou l’autre de vos programmes travaillera plus rapidement (ex : 100000 images par seconde, ce qui est injouable) ou rien du tout (plantera à la première image). Mettez toujours ces deux commandes dans votre programme.

// Boucle infinie pour laisser tourner le programme
	while (1){

La commande While exécute le code qui suit, entre parenthèses {}, tant que le résultat de la commande en paramètre (ici, c’est 1) diffère de 0. Ici, c’est toujours 1, donc essentiellement c’est une boucle qui tournera pour toujours. À quoi bon ? Et bien, si vous n’avez pas une telle boucle, chaque ligne de code serait exécutée juste seule une fois et ensuite le programme sortirait, n’affichant plus rien. Cela permet au programme de tourner infiniment, ou du moins jusqu’à l’appui sur le bouton Power. Le concept est que dans chaque passe, le programme calculera et affichera tout ce qu’il a besoin pour la prochaine fois, ensuite il recommencera.

PA_WaitForVBL();

Cette dernière commande synchronise la boucle infinie “while” avec le rafraichissement de l’écran (60 fps = images par seconde ). Si vous ne la mettez pas, le programme fonctionnera, comme évoqué auparavant, BEAUCOUP PLUS RAPIDEMENT que le rafraichissement écran.

	}
	
	return 0;
} // Fin du main()

Voila c’est le code final, toujours là, toujours comme cela, ne vous donnez pas la peine d’y toucher, laissez le seul :p comme cela.

Maintenant que vous connaissez tout de cette partie, continuez et testez comment afficher du texte!

Micheal Bach 30/11/2005 09:37

while(1)
	{
		//Boucle infinie
	}
return 0;
}

Comme vous pouvez le voir, la plupart du code est très semblable, si non exactement, au modèle précedent. Essentiellement, 2 lignes ont été ajoutées :

PA_InitText(1,2); //Indique que l'on écrit dans l'écran 1 sur l'arrière-plans (background) 2
PA_OutputSimpleText(1,1,1,"Salut le Monde !");  //Ecrit le texte sur l'écran 1 à la coordonnée 1,1

Le premier est utilisé pour initialiser le texte, en chargeant la police de caractère du texte dans la mémoire vidéo de la DS. Si cela n’a pas été fait, le texte sera illisible... il ressemblerait à l’écriture, mais chaque lettre sera remplacée par un dessin aléatoire... pas top;) PA_InitText prend 2 arguments : l’écran (0 pour l’écran du bas, 1 pour l’écran supérieur) et l’arrière-plan(background) à utiliser (0 pour la plus haute couche, 1 pour le suivant, 2 et 3 pour le plus bas...).

PA_OutputSimpleText (1,1,1, “Salut Monde!”), comme le nom vous l’indique, affiche un texte simple sur l’écran, si l’arrière-plan a été initialisé avec InitText... (à ce point du tutorial, vous vous êtes probablement rendus compte que toutes les fonctions de PALIB commencent par PA_ ...) La fonction de texte a 4 arguments :

  • Ecran(0-1)
  • (X) ‘tile’ ( tuile en français ) Horizontale de départ, de 0 à 31. Chaque ‘tile’ est un carré de 8×8 pixels, donc le ‘tile’ 0 est à la position 0 pixel, le ‘tile’ 1 à la position 8 pixels, etc...
  • Position de tile verticale, même comme horizontal...
  • Le texte... ce texte commence et fini par un “, le compilateur C le reconnaît de cette façon...

Une fois que vous l’avez compris, appuyez juste F6 pour compiler et lancer dans DualiS, ou F7 pour compiler et lancer dans DeSmuME! Appuyer sur F5 fait une compilation normale sans charger la rom (peut être utilisé pour compiler et pour l’envoyer ensuite vers votre DS...)

FAQ - Installation et Compilation

Q1. J’obtiens l’erreur suivante quand j’essaye de compiler un exemple : ‘make’ is not recognized as an internal or external command, operable program or batch file.

  • S1: Je suppose qu’il y a une chance que devkitPro n’a pas été installé correctement, ou que quelques progiciels (MSys) ne sont pas installés... Essayez de le réinstaller et de voir s’il résolve votre problème. Souvenez-vous, l’installation exige aussi la modification de variables d’environnement. Aussi si vous avez déplacé n’importe quels dossiers de n’importe quelle sorte après le téléchargement, cela ne fonctionnera pas et vous obtiendrez une erreur. Re-installez s’il vous plaît dans un répertoire (c:/devkitpro de préférence) et ne le déplacez pas!
  • S1’: Installer devkitProUpdater version 1.3.1 & PAlib290606.exe : les build dans PalibExamples se font presque tous correctement. (mrb,30/08/2006)
  • S1”: Si vous êtes sous linux les outils de compilation ne sont pas installés tout simplement, suivant votre distribution installez les (build-tools sur ubuntu sinon d’office avec les ditro basées sur les sources genre Gentoo)

Q2. J’obtiens l’erreur suivante quand j’essaye de compiler un exemple : “Devkitpro has reached an internal error, it must shut down” ou quelque chose de ce genre.

  • Pas certain de la cause, mais voici ce que vous pouvez faire. Assurez-vous que vous avez le dernier installateur Devkitpro que vous pouvez obtenir et choisir “Download only, don’t install”. Une fois que vous avez fait cela, lancez à nouveau le programme et choisissez “Download and install”. Il ne téléchargera pas les fichiers, donc pas d’inquiétude. Si cela ne fonctionne toujours pas, vous pouvez éxécuter manuellement individuellement chaque .exe que vous avez téléchargé.

Q3. DevKitARM release 21 n’est plus disponible sur le lien spécifié, où puis-je le trouver?

⇒ Bah non, ça y est plus...

Prochain → Jour 2 - Apprentissage du C

Mollusk 28/11/2005 00:43

 
day1.txt · Dernière modification: 06/07/2010 23:24 par 93.121.158.127
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki