Aller au menu - Aller au contenu

Icône Avant propos

Avatar
Avatar
Mise à jour : 14/10/2009
Difficulté : Facile Facile
282 visites depuis 7 jours, classé 354/786
Vous vous doutiez sûrement que les outils nécessaires à la programmation sur DS ne se trouvaient pas déjà sur votre ordinateur et qu'il ne suffisait pas de dire abracadabra pour que vous puissiez utiliser vos programmes sur votre DS :p . C'est pourquoi dans ce chapitre nous allons vous expliquer en détail ce dont vous avez besoin.

Vous n'apprendrez donc "rien" dans ce chapitre mais ne vous inquiétez pas ça arrivera plus vite que vous ne le pensez :-° .
Sommaire du tutoriel :
Icône du chapitre
Sommaire Chapitre suivant

Parlons hardware

À ce stade-ci deux chemins qui s'offrent à vous :
  • vous programmez des applications et jeux pour Nintendo DS mais vous ne les utilisez que sur votre PC avec un émulateur ;
  • ou alors vous décidez de mettre vos programmes directement dans votre DS pour pouvoir les utiliser partout :) .


Le deuxième choix semble le plus intéressant, cela va de soi ! Toutefois, renseignez-vous sur son utilisation, car vous pouvez rapidement tomber dans l'illégalité. Voilà pourquoi nous n'expliquerons pas ici comment fonctionne un linker (tel que la R4, M3, etc.).

En choisissant la sage voie, vous ne pourrez jamais tester la gestion des fichiers, ni le Wifi dans vos programmes.


C'était juste à titre d'information, rien de plus. ;)

Installation des outils nécessaires

Bien ! Après vous avoir expliqué les deux possibilités qui s'offraient à vous, il est enfin temps d'installer PAlib et tout le nécessaire pour enfin programmer pour notre chère NDS. En avant :pirate: !

Pour ce faire, nous allons utiliser un auxiliaire de programmation utilisant le BATCH pour sa compilation. Il est donc important d'avoir un ordinateur sous WINDOWS. Pour les utilisateurs de Linux, ne vous inquiétez pas, on va arriver à votre cas ;) ! Pour ceux qui utilisent autre chose, il faudra, bien entendu, vous adapter au tutoriel.

L'auxiliaire de programmation



Nous utiliserons DevkitPro pour ce tutoriel. Téléchargez la dernière version (à l'heure où j'écris ces lignes c'est la version 1.5.0).

La bibliothèque : PALib



Pour information, PA veut dire Programmer's Arsenal et Lib veut dire Library (qui signifie "bibliothèque") tout simplement. Il nous sera très utile : c'est la bibliothèque que nous utiliserons pour la programmation sur DS. Télécharger PALib.
Actuellement c'est la version la plus récente est la 100707, selon le site elle serait maintenue jusqu'à ce qu'un autre développeur reprenne le projet...
Ce tutoriel a été conçu au départ avec la version 080823 que vous pourrez télécharger ici, puis a été repris avec la 100707, donc il se peut qu'il y ait des incohérences voire des codes qui ne compilent pas...


L'installation



Ça y est, nous allons enfin installer les éléments nous permettant de programmer !
Si vous êtes sous Vista, faites clic droit->propriété->Windows Xp (service pack 2) pour chaque installateur.


Tout d'abord lancez l'installateur devkitpro pour qu'il aille rechercher les fichiers nécessaires à l'installation.
Lors de celle-ci vous pouvez laisser le chemin par défaut (C:\devkitPro ; ce qui est conseillé si vous n'êtes pas très à l'aise avec les changements de répertoire et de variables d'environnement qui risquent d'arriver), et au choix des composants à installer vous pouvez ne cocher que les cases correspondant à la DS (si vous avez peur de faire une bêtise, laissez tout coché ce n'est pas gênant :) ).
Vous devez impérativement laisser cochées "PAlib", "Examples", "Other tools", "shortcuts". Vous pouvez cocher la doc. Les émulateurs sont facultatifs puisque nous allons télécharger un émulateur plus tard, VisualHAM est un IDE, mais nous ne l'utiliserons pas. Et il est toujours bon d'avoir des bibliothèques supplémentaires, je vous recommande de cocher "Additional Libs".

Si vous avez téléchargé DevkitArm 20, alors remplacez la nouvelle version par l'ancienne (présente dans votre dossier devkitpro).


Ensuite il faut installer .Net framework pour que PAlib fonctionne correctement, il se peut qu'il soit déjà installé sur votre ordinateur, mais si vous hésitez téléchargez-le ici et (ré)installez-le ! Ne vous inquiétez pas si vous avez une erreur disant qu'il n'a pas pu l'installer, la raison est souvent qu'il est déjà installé.

Il nous reste plus que PALib ! Installez-la dans le même le dossier devkitpro, c'est très important.
Si vous utilisez une version ultérieure à 080823 vous serez confrontés à une archive et non à un installateur. Par conséquent vous devrez tout décompresser dans le dossier C:\devkitPro\PAlib (au besoin, créez ce sous-dossier).


Pour vérifier que tout a bien été installé rendez-vous dans C:\devkitPro\palib\examples\Text\Normal, choisissez un dossier (HelloWorld par exemple) et double cliquez sur build.bat. Une fenêtre de console devrait apparaître (le projet HelloWorld se compile en fait), s'il n'y a pas d'erreur vous devriez trouver un fichier HelloWorld.nds et HelloWorld.ds.gba dans le répertoire :) !

En cas d'erreur semblable à celle-ci vers la fin du texte affiché par build.bat :

Citation
make[1]: *** [/c/devkitPro/palib/examples/Text/Normal/HelloWorld/HelloWorld.elf]
Error 1
make: *** [build] Error 2

Il vous faudra remplacer DevkitArm que vous avez par un DevkitARM antérieur.

Si vous avez une erreur qui s'apparente à celle-ci :

Citation
arm-eabi-gcc.exe: CreateProcess: No such file or directory

Il faudra modifier la valeur de la variable Path. Pour y accéder sous Vista, faites Démarrer -> Panneau de configuration -> Système -> Paramètres Système Avancés (colonne à gauche). Cliquez sur le bouton "Variable d'environnement", puis sur "PATH" et "Modifier...". Une fenêtre apparaîtra et, à la fin du texte éditable, mettez un point-virgule et ajoutez ce code :
Citation

C:\devkitPro\devkitARM\arm-eabi\bin;C:\devkitpro\devkitARM\bin;\msys\bin;c:\devkitpro\msys\bin;c:\devkitpro\devkitarm;C:\devkitPro\devkitARM\libexec\gcc\arm-eabi\4.1.1;

Vous pouvez remplacer C:\ par le chemin jusqu'à devkitpro (exemple : C:\bidule\).

Si votre compilateur se met à vous injurier comme ce n'est pas permis, c'est peut-être que la libnds ne correspond pas à PALib. Il faudra donc la changer en remplaçant le dossier "libnds" de devkitpro par le contenu de libnds (si le lien est mort vous pouvez recomposer le dossier à l'aide de : libnds, le dossier ; libfat, à ajouter dans le même dossier et dswifi, toujours dans le même dossier).

Il se peut que la compilation se fasse avec beaucoup de warnings, ignorez-les.

Si vous avez un autre type d'erreur, recommencez l'installation à zéro, ou cherchez sur le Web une solution (n'oubliez pas les forums du site) :) .


L'émulateur



Un émulateur est une application servant à visualiser un jeu (de DS ou autre). Il vous servira beaucoup pour tester vos jeux, c'est plus pratique que de prendre chaque fois sa DS :p . Sauf comme expliqué plus tôt, les émulateurs ne gèrent pas / gèrent mal les fichiers et le Wifi.

Nous vous conseillons un excellent émulateur : No$GBA que vous pouvez télécharger ici (plus bas choisissez "Download windows version" et non DOS).

Sinon pour votre gouverne sachez qu'il en existe pleins d'autres : PicoDriveDS, Spec DS, DeSmuMe, DSEMU, SnezziDS, GeoSIDeaS, Dualis, NDS NeoPop, etc.

Malgré le nombre d'émulateurs, nous vous conseillons no$gba qui est actuellement l'un des émulateurs DS (et GBA) les plus performants.

L'éditeur



Il est évident qu'il nous en faut un. Et bien que Bloc-Note pourrait suffire, pour une meilleure lisibilité du code (on parlera d'indentation et de coloration syntaxique du code), nous vous conseillons d'utiliser un éditeur plus évolué. En premier choix, nous vous proposons Notepad++ (version zip) / Notepad++ (version installateur, plus complet que le zip).
Toutefois vous pouvez continuer sous votre IDE préféré si ça vous chante, de toute façon nous ne compilerons pas avec eux, mais comme dit plus haut avec un fichier .bat. Si vous prenez un IDE, pensez bien à changer de Makefile !

Tiens d'ailleurs ça me fait penser qu'il est enfin temps de se jeter dans le vif du sujet, allons-y ! :pirate:

Création d'un projet

Juste avant de nous lancer dans la programmation nous devons créer un projet ! Voici les étapes (très simples) :

  • pour commencer, créez un dossier "projets" dans le répertoire de devkitpro ;
  • ensuite, dans ce dossier, créez un dossier NomDeMonProjet (ne mettez pas d'espace) ;
  • puis allez dans le dossier palib/template et copiez son contenu à l'exception des dossiers data, include et source ;
  • retournez dans votre dossier et collez ces fichiers ;
  • rajoutez-y un dossier nommé "source" (il est important de garder le nom "source" sinon, au moment de la compilation, votre fichier source ne sera pas trouvé o_O ).


Et voilà, il ne vous restera plus qu'à renouveler cette action pour créer un nouveau projet !
A partir de là il suffit de créer un fichier main.c (ou .cpp si vous programmez en C++) dans le dossier source.

Comment compiler un projet ?

Il faut lancer build.bat (en double-cliquant dessus, ça suffit). Tiens en parlant de programme, ça vous dirait qu'on s'y mette ? Alors allons-y !! :D

Et sous Linux ?

L'installation


Téléchargez le devkitpro pour Linux (tout est réuni dans un gros fichier).
Décompressez-le dans votre dossier personnel (soit /home/nomdutilisateur/) : Code : Console
tar -jxvf devkitpro-pour-linux.tar.bz2

Normalement, le chemin vers le devkitpro est donc /home/NOMDUTILISATEUR/devkitpro/. Allez donc dans ce dossier et décompressez-y les fichiers devkitARM-r21-linux.tar.bz2 et PAlib.tar.bz2 comme nous venons de le faire.
Code : Console
tar -jxvf devkitARM-r21-linux.tar.bz2
tar -jxvf PAlib.tar.bz2
Vous devriez avoir cette arboresence :
Code : Autre
1
2
3
4
5
6
7
8
/
|--home
        |--NOMDUTILISATEUR        
                |--devkitpro
                        |-devkitARM
                        |-libnds
                        |-Other Libs
                        |-PAlib

Modifiez maintenant le fichier .bashrc (situé dans votre dossier personnel) en y ajoutant les 3 lignes suivantes : Code : Bash
1
2
3
export DEVKITPRO=/home/NOMDUTILISATEUR/devkitpro 
export DEVKITARM=$DEVKITPRO/devkitARM
export PAPATH=$DEVKITPRO/PAlib/lib

N'oubliez pas d'adapter la première ligne en fonction de votre nom d'utilisateur !


Exécutez la commande suivante dans un terminal pour appliquer les changements : Code : Console
source .bashrc

Pour vérifier que les changements ont été appliqués, exécutez ensuite cette commande :
Code : Console
env | grep PAPATH

Si vous voyez quelque chose s'afficher à l'écran (un chemin, comme PAPATH=/home/rayman3640/devkitpro/PAlib/lib
), alors les changements ont été appliqués. Sinon, redémarrez votre terminal et réessayez.

Maintenant, il ne reste plus qu'à tester ! Le mieux est de compiler un exemple.
Allez dans le dossier du devkitpro, puis dans /PAlib/examples/Text/Normal/HelloWorld.
Exécutez cette commande : Code : Console
make

Vous pouvez obtenir ceci : Code : Console
bash: make : commande introuvable

Cela signifie que make n'est pas installé. Pour l'installer, exécutez donc cette commande avant de réessayer :
Code : Console
sudo apt-get install build-essential


Si vous obtenez quelque chose comme ceci après avoir exécuté make (noté que j'ai légèrement raccourci le code) : Code : Console
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/home/rayman3640/devkitpro/PAlib/lib/lib -Wl 
Nintendo DS rom tool 1.36 - Oct 23 2007 23:03:47
by Rafael Vuijk, Dave Murphy, Alexei Karpenko
built ... HelloWorld.ds.gba
dsbuild 1.21 - Oct 23 2007
using default loader

Alors vous avez réussi ! :)

L'émulateur


Sous Linux, le choix d'émulateurs est un peu plus réduit. Je vous recommande desMuMe, car il en existe une version pour Linux. Sur certaines distributions, il est possible de l'installer via un dépôt (c'est le cas notamment d'Ubuntu). Si votre distribution utilise des paquets DEB, essayez comme ceci : Code : Console
apt-get install desmume

Si votre distribution utilisez des paquets RPM, essayez ceci : Code : Console
yum install desmume

Sinon, allez dans le dossier du devkitpro puis dans /PAlib/emulators/desmume-linux et exécutez ces commandes pour installer desMuMe :
Code : Console
chmod +x desmume-gtk-0.7.0.x86.package

Code : Console
./desmume-gtk-0.7.0.x86.package


Enfin, il est possible d'utiliser no$gba (qui se trouve dans le dossier /PAlib/emulators/no$gba/ avec Wine en faisant :
Code : Console
wine no\$gba.exe


Vous pouvez même essayer d'utiliser les autres émulateurs du dossier avec Wine, mais desMuMe et no$gba sont meilleurs ;) .

Un grand merci à Rastagong d'avoir complété notre tutoriel :) !
Nous voilà fin prêts pour attaquer la programmation :lol: !
Sommaire Chapitre suivant

Partager

91 commentaires pour "Avant propos"
Note moyenne : 3.57 / 4 (65 votes)
Pseudo Commentaire
Hors ligne snake_48 # Posté le 19/08/2011 à 18:02:36
Il me manque un bit.
Avatar

Études : INSA Lyon

C'est normal si tu n'as rien dans ton main.c, tu ne peux pas avoir de main...

Programmez sur votre Wii ! | Programmez sur votre Nintendo DS ! | Charger des fichiers .OBJ | Introduction au scripting avec Python
Création d'un moteur physique (en cours)
Code Lyoko Strategy Game Coder
Langages connus : AS3, Batch, C, C++, HTML, Java, Javascript, PHP, Python.
Programme sur : PC, Nintendo DS, Wii.
o----}=========>
 
Hors ligne antiBW # Posté le 11/09/2011 à 20:31:53
l'ordi est la clé de tout
Avatar

Ville : Arques
Pays : France métropolitaine

Bonjour,

quand je fait compiler "Hello World" ça me donne cela :
Image utilisateur

On peut m'aider s'il vous plait ?

Je suis un geek fier de l'être ! :soleil: :p
Voici mon plus grand secret : Secret (cliquez pour afficher)
La curiosité est un vilain défaut ! :colere: Je t'ai eu !! :lol:

Image utilisateur
Image utilisateur
 
Hors ligne Whiskas # Posté le 11/09/2011 à 22:57:31
Avatar

La dernière version de devkitPro semble ne plus être compatible avec PAlib.

Cependant la dernière version de PAlib indique fonctionner avec la r31 de devkitARM téléchargeable ici.

Edit : Apparemment remplacer simplement devkitARM ne suffit pas, je viens de voir que des zéros ont fait des packs contenant des configurations compatibles, j'ai pas encore testé cependant.

Le pack de MéoL@y
Pack de Kymry
Hors ligne Tinei # Posté le 04/03/2012 à 17:44:06
...
Avatar

...
Hors ligne lion.viv # Posté le 11/03/2012 à 18:43:45
Avatar

Avis : Très bon

C'est un très bon tutoriel. :) :soleil:

Voir tous les commentaires