PDA

Voir la version complète : [NDS][Tutorial] Developpement NDS sous Linux : Installation


Tiwaz
30/07/2008, 12h05
devkitpro et ses lib sous Linux
Part 1 : Installation

Voilà, j'ai vu ici et là quelques demandes sur devkitpro et Linux. Et comme je me suis remis très récemment (ce matin en fait) à la programmation DS, je me suis dit qu'il serait intéressant d'en faire profiter tout le monde.

J'ai donc remis à jour mon script d'installation, que je vous livre ici. (script mis à jour depuis http://playeradvance.org/forum/showthread.php?t=13264)
Il vous suffit donc de télécharger le fichier devkp.txt en pièce jointe.

Edit : la PAlib utilisant une compression 7z, il faut que votre distribution puisse le décompresser. [apt-get install p7zip / pacman -S p7zip / yum p7zip]

Sous Ubuntu-like (sudo et toussa), voici la démarche à suivre:
mv devkp.txt devkp.sh
chmod +x devkp.sh
sudo ./devkp.sh

Ensuite, il est intéressant d'intégrer les chemins correctement. Pour ça, il suffit de faire:
head -5 devkp.sh|tail -3 >> ~/.bashrc
source ~/.bashrc

Le problème, c'est que certaines distributions (ubuntu, au hasard), vous fournissent des .bashrc déjà fait, et qui s'arrête rapidement avant d'avoir lu la totalité du script.
C'est pourquoi il faudra mieux utiliser la commande suivante:
head -5 devkp.sh|tail -3 && cat ~/.bashrc > ~/.bashrc
source ~/.bashrc

Voilà, maintenant, vous avez un environnement de programmation installé sous Linux. Il est possible de modifier le script, en particulier la ligne suivante:

export DEVKITPRO=/opt/devkitpro

pour choisir son répertoire d'installation. En effet, il est tout à fait possible d'installer le kit de développement dans son répertoire HOME, et de ce fait, ne pas avoir besoin de sudo & compagnie.

Petit résumé du script:


devkitARM r23b
libnds d'octobre 2007
libfat d'octobre 2007 (la dernière version n'est pas compatible DS, mais Wii/gamecube uniquement)
dswifi 0.3.4
exemple libnds d'Avril 2008
PAlib community de Février 2008
Installation de la µLib de brunni
Installation de la liblobby (svn requis)
Réorganisation des répertoires lors de l'installation
Installation de documentation pour consultation offline.



J'ai testé les exemples de la libnds et de la PALib sur plusieurs machines avec des linux différents, et tout marche.

Ce matin, j'ai également regardé les différentes lib existante pour DS, et voici donc un aperçus de la prochaine version de ce script:

Installation de la libEFS V2 (ok)
Installation de mikmod (todo)
Installation de la libellen (todo)
Installation de la rebootlib (todo)


J'espère que je n'oublie rien. (Si c'est le cas, n'oubliez pas de me le dire :p)

J'hésite à donner un pack comprenant déjà l'ensemble de l'installation pour des questions de légalité. Je préfère donc ce petit script qui récupère là ou il faut les bons logiciels.

Voilà, plus d'excuse pour ne pas coder sous Linux pour DS maintenant.

Solevis
04/09/2008, 19h24
Merci pour ce tutoriel, mais j'aimerai savoir compiler mon code source en utilisant cette solution ?
Pour la psp, il y avait une commande "make" specifique, mais sur la DS je sais pas =s

kuri
23/09/2008, 21h28
@Tiwaz :
merci pour ce tuto, je viens de tout compiler, par contre j etai afk pendant l install et le script ne gere pas les erreurs, ni n a de log, donc globalement faut croiser les doigts, ce qui n est pas tres pratique.

pour ce qui est de faire un package, c est pas tant un probleme de droits, c est plutot un soucis d origine, et authenticite des fichiers


@Solevis :
si tu passes tjs par la, l annee derniere je compilai grace a un makefile dont le code est ici : http://pastebin.com/m8455abd

GuZnaK
16/10/2008, 21h46
Bonsoir tout le monde,
je suis rebuté depuis quelques jours par un problème embêtait: étant sous linux, je code aussi avec PAlib sur cette plateforme. Au début, j'utilisais les sprites fournis avec les exemples mais maintenant que j'en ai créé moi-même, j'aimerais pouvoir les convertir. Malheureusement, je suis heurté à quelques problèmes :ph34r: :
-Avec PAGfx Converter.exe, j'obtiens une bouillie de pixel après convertion (sur l'écran de la DS, au lieu d'avoir mon sprite j'ai un carré de 64x64 avec du noir, du vert, du magenta...Plein de pixels un peu comme ce qui reste à l'écran de la DS quand on l'éteint).
-Avec PAGfx version linux, j'ai une erreur à la fin de la compilation (pourtant j'ai les dépendances, etc). En fouinant un peu je me suis rendu compte que la version linux exploitait la version windows, je me trompe ? Si j'ai bon alors ca revient au même que le 1er tiret.
-Avec GBA Graphics, tout a l'air d'être bien converti mais j'ai plein d'erreurs de compilation en rapport aléatoire en rapport avec des fichiers propres à PAlib (/PAlib/lib/PA_CreateSprite.h ou un truc du genre....).

Donc mes questions sont : Y a-t-il d'autres softs de conversions fonctionnant sous Linux ?
-D'autres peronnes ont-elles ces problèmes ? Sont-ils solvables ?
Merci de votre intêret :)

omg
16/10/2008, 22h01
Tu utilise GBAGraphics sous Linux (http://playeradvance.org/forum/showthread.php?t=20701)?
Peut être que tu as aussi un probleme au niveau de ton code...

GuZnaK
16/10/2008, 22h06
Oui, j'ai suivi ton tuto en mettant la bonne dll à sa place.
Au niveau du code, je pense qu'il doit être bon puisqu'il marchait bien avant avec les sprites de PAlib...Pour être sur, j'ai même utilisé un des exemples de PAlib en remplacant juste les noms et fichiers du sprite vaisseau (celui dans PAlib) avec le mien (en changeant le nom de la palette et du sprite dans le code, et en modifiant all_gfx.c et all_gfx.h en conséquence).
Je ferais un essai demain sous Windows...En attendant ca reste handicapant pour moi :/

omg
16/10/2008, 22h11
Je comprends...
J'ai travaillé sur des map via GBAGraphics sous Linux por Yodajr mais il ne m'a pas fait remonter de problèmes...

GuZnaK
16/10/2008, 22h32
Merci pour ton investissement en tout cas ^^
Sinon, peut-être que le concepteur de PAGfx pourrait expliquer comment les sprites sont convertis, voir si ya moyen de faire un petit script ou autre ? Ou à la limite Anarx, vu qu'il a commencé à porter la version linux...Je verrais quand il aura finalisé son frontend linux, si ca marche ou si ca merdouille encore.