Fr:Getting started with GP2X development

From wiki.gp2x.org

Contents

Vue d’ensemble

La GP2X est une console portable « open source », qui utilise le système d’exploitation Linux : son constructeur encourage le libre développement d’applications pour la machine et toutes ses spécifications techniques sont disponibles (voir composants).


Le « Linux » de la GP2X est une version compilée spécialement pour ses deux processeurs de type ARM - assez différents et surtout, non compatibles avec les Intel Pentium et AMD Atlhon. Les dossiers et fichiers systèmes de ce Linux sont stockés dans les 64 Mo de mémoire flash NAND qu’embarque la GP2X - mais n'en occupent environ que 26Mo. Une mini arborescence Linux y est présente (/, /boot, /bin, /usr, /usr/lib) et c'est là que l'on peut ajouter les libraries communes aux applications. Par exemple, la SDL pour les jeux vidéo.


Cette mémoire flash NAND contient aussi les jeux et utilitaires installés par défaut, comme les lecteurs officiels pour les images, le texte, l'audio et la vidéo mais aussi tout simplement, l'interface par défaut de la GP2X. Notez que le projet Open2X proposera bientôt un tout nouveau Linux optimisé et associé à une "toolchain" (panoplie d'outils de développement) très pratique.


Concrètement, lorsqu'on démarre la console :

  • l'écran blanc montre le démarrage du matériel ( = étape de vérification par le BIOS sur un PC),
  • le logo sur fond noir montre l'exécution du chargeur de démarrage ("bootloader" = sélection et amorce du système d'exploitation),
  • le logo sur fond vert montre le démarrage de Linux,
  • le programme /usr/gp2x/gp2xmenu est lancé, c'est l'interface graphique de la GP2X (GUI Graphical User Interface) qui propose la menu principal, les options de la console, etc. A noter que les fonctionnalités de l'explorateur de fichiers (copier, coller, couper, supprimer) ne sont en réalité qu'une interface aux commandes Linux (cp, mv, rm).


Pour développer un logiciel GP2X, on le programme sur PC, séparément - avec un clavier, une souris et tout le confort :).

Ensuite, comme les processeurs ARM de la GP2X ne comprennent pas les instructions de processeur x86 (Pentium/Atlhon), on doit compiler le code à destination de la console avec un compilateur croisé ("cross compiler"). La GP2X ne peut exécuter que des programmes compilés pour ses processeurs ARM.

Choisissez votre voie

Il y a différentes façons de développer pour GP2X.


L'Emulation

Pour faire fonctionner des jeux d'autres consoles sur GP2X, il est possible de créer des émulateurs : "l'avantage" d'un émulateur est de pouvoir faire tourner immédiatement des centaines de jeux... Par contre, l'émulation pose des problèmes de performances (il faut simuler l'autre console), de stabilité (les fonctions non-émulées entraineront des bugs) et de légalité (les données des jeux sont souvent soumises à copyright).


Ecrire un bon émulateur est un travail complexe. La préparation d'une image binaire pour la distribution est un travail plus simple. Cependant les deux sont bénéfiques à la communauté.


Le Portage

Ce chemin implique la modification du code source d'applications existantes afin qu'une fois compilés ils fonctionnent sur GP2X. Le portage permet à une application ou un cadre d'applications (framework) de fonctionner sur GP2X en réutilisant le travail effectué sur un code source existant. Le portage peut être aussi simple que la mise en correspondance (mapping) des commandes aux spécifications du GP2X ou au contraire une réécriture plus importante afin de tirer partie des attributs spécifiques du GP2X.

Voyez le jeu Super Methane Brothers comme un exemple de port. Le code source générique fonctionne sur un grand nombre de platformes et utilise ses propres routines pour animer les sprites, gèrer les polices d'écriture et dessiner chaque écran entièrement en RAM. Le port du code source pour GP2X fait correspondre la RAM à l'écran physique (en utilisant la SDL), la musique au haut-parleur (avec MikMod) et le joystick aux boutons (toujours avec la SDL). Le résultat est un jeu totallement fun et complètement fonctionnel.

Vous pouvez noter que 'porter' est le terme pour convertir n'importe quel programme prévu à la base pour une autre machine vers le GP2X. Le système d'exploitation, le framework SDL et la plupart des émulateurs sont des ports de travaux fait par ailleurs. Le portage de logiciels sur GP2X aide énormément dans la réalisation d'une plate-forme utilisable et vivante.

Bien commencer

Si vous débuter dans la programmation sur GP2X, nous vous conseillons:

  • d'installer un environnement de développement.
  • de tester la Demo.
  • de faire vos propres applications.

Installer un environnement de développement

Certaines choses à connaitre avant de commencer à programmer

Compiler des programmes pour la GP2X

arm-linux-gcc helloworld.c -o helloworld.gpe -lm -lg -static -lpthread

Il est probablement plus conseillé de linker les librairies statiquement plutôt que dynamiquement, donc vous pouvez copier le .gpe directement. Mais si vous linkez les librairies et vous devez copier les librairies en extra faites très attention. Si vous copiez des fichiers invalides par-dessus des fichiers important dans /lib vous pouvez transformer votre GP2X en une brick. Il serait conseillé d'écrire un script qui change LD_LIBRARY_PATH vers le repertoire contenant vos librairies et qui lance votre executable.

Personal tools