Tester avec la libfat et no$gba
Voici donc un petit tutoriel qui explique comment débugger avec la libfat, le devkitpro release 20 et no$gba. Ce tutoriel est tiré des explications trouvées sur le site gbadev, dans le topic parlant de ce problème, mais en anglais uniquement. D'où l'idée de vous faire partager mon test, et en français :).
Introduction
Depuis l’arrivée du devkitr20, Dualis n’est plus capable d’émuler la libfat. Il existe pourtant un moyen avec no$gba de pouvoir débugger nos applications utilisant cette libfat, le drivers FCSR ! Attention tout de même, no$gba est bien plus lent que dualis et il faudra de la patience pour tester son application avec ^^.
Pour ce faire, il faut avoir télécharger les programmes sur le site de GPFerror :
- le driver DLDI : fcsrDLDI.zip
- le programme de création d’une image FCSR : fcsrimage.zip
Attention, il semble que le site de GPFerror redirige vers la page de garde de son site et ne permet pas directement la sauvegarde de ces programmes, il faut donc faire un click droit / Enregistrer sous … pour pouvoir les télécharger. Vous pouvez aussi télécharger ces fichiers en local, tout en bas de cette page.
Il faut aussi copier le drivers DLDI dans le sous répertoire dldi de votre installation devkitarm, afin que l'outil dlditool puisse le retrouver sans problème.

Création de l’image des fichiers
Afin de vous montrer le fonctionnement de l'image FCSR, nous allons reprendre notre bon vieux projet d'émulateur Hal8000 (toujours disponible dans les tutoriels) et donc modifier ce dernier pour le devkitpro r20.
Copier les fichiers de l’archive fcsrimage.zip dans un répertoire, nommé pour notre projet imagefcsr, sous le répertoire du projet Hal8000. Il y a un sous répertoire fcsr dans cet archive, c’est ce dernier qui va contenir nos fichiers pour notre image FCSR.

J’ai rencontré des problèmes sous windows XP version française pour la calcul de la taille de l’archive, en effet, ce dernier n’arrivait pas à calculer correctement la taille car il recherche le mot Files et non Fichiers.
J’obtenais alors le message d’erreur suivant :

Si ce problème vous arrive, il faut éditer le fichier build.bat et modifier la ligne suivante :
for /f "tokens=3,4*" %%a in ( 'dir /w /s /-C %2 ^| findstr "File(s)"') do @set info=%%a
par
for /f "tokens=3,4*" %%a in ( 'dir /w /s /-C %2 ^| findstr "fichier(s)"') do @set info=%%a
Cela résoudra le problème certainement (merci à Ariala pour m'avoir donné la solution). Il se peut qu'il faille aussi modifier la ligne du dessous pour changer le +64 par une valeur plus grande, comme +1024 par exemple.

Sii le problème persiste toujours, vous pouvez aussi modifier la ligne du dessous en indiquant la taille maximum de votre archive (en la calculant à la main ;) ) :

Modification du makefile
Nous allons maintenant modifier notre makefile pour qu’il créer notre fichier directement avec l’image fcsr.

Résultat
Et voilà le travail, le fichier fcsr…ds.gba peut maintenant être exécuté sous no$gba et fonctionner !

Afin d'éviter d'aller chercher les fichiers à droite , à gauche, voici les fichiers issus du site de GPFError :
Fichier DLDI FCSR (356 fois) | 17 Apr 2007 | size: 17 kB |
Créateur d'image FCSR (299 fois) | 17 Apr 2007 | size: 122 kB |





