![]() |
|
![]() |
#1 | |
Administrateur
|
![]() GBFS: Le tutoriel Auteur: xFlash I-Introduction -Qu'est-ce-que GBFS? GBFS est un système d'accès a des fichiers sur votre Gameboy. En effet la GBA ne possède pas de FileSystem(FS) et on n'accède à la mémoire de nos cartouches que sous la forme d'un énorme bloc mémoire accessible depuis 0x08000000h -Pourquoi utiliser un système de fichiers? Utiliser un tel système possède plein d'avantages dans le developemment sur GBA. Cela evites les transformations ou convertions de bon nombre des ressources (gfx/sfx/map/dialogue/...) necessaires au projet, car on les inclut directement, tel quel, sans changement. Adieu les bin2h, bin2obj ,... Cela implique aussi des gains de temps dans les phases de compilation, car on evite les conversions/transformations de ses ressources lorsqu'on les modifie. -Qui a écrit GBFS? L'auteur de GBFS est Damian Yerrick- Site internet : PinEight[ -Ou peut-on récupérer ces outils? Ici : http://www.pineight.com/gba/gbfs.zip ou ici : Mirroir PA II-Comment ca marche? Chaque fichier de données que vous désirez inclure à votre ROM est ajouté à la fin de votre ROM compilé. On accède à ces fichiers à l'aide de fonctions C présentes dans l'API de Damian. Si on regrade en detail le resultat d'une ROM dans lequel est inclus GBFS et 2 fichiers par exemple, l'on obtiendrait ceci : ![]() La "ROM compilé" est le resultat produit le linker d'un compilo, le fichier .bin ou .gba de votre projet. Le "Header GBFS" est un fichier produit par l'outil (GBFS.exe fournit dans l'archive) qui decrit les entrées, noms et tailles de chaque fichiers inclus Les Fichiers "TXT01.DLG" et "TXT02.DLG" sont les fichiers de ressources désirés III-Comment l'inclure dans mon projet? - Exemple Imaginons que tel l'exemple précédent, vous ayez besoin d'inclure des fichiers de dialogues à longueur évidemment variable dans le temps et pour lequels, vous voulez y accéder depuis votre code. Attention ceci est une exemple, vous pourrez tout aussi bien le faire avec des fichiers d'images, sons, map, etc. - Procédure Il faut ordonner a Make, plusieurs operations supplementaires :
Que vous utilisez HAM ou non, la procedure est la meme. Je partirais d'un makefile issu d'un projet de HAM, car je vous sais nombreux à l'utiliser. Pour les autres, vous connaissez certainement très bien votre makefile et son langage, donc la modif ne devrait pas vous poser de soucis. - Les modifications du makefile Dans votre makefile, vous aviez avant une entrée du style: Code PHP:
Aussi on éditera le makefile ainsi: Code PHP:
- GBFS_HOME est une variable d'environnement contenant le chemin d'acces à votre distribution de GBFS décompressé. - On rajoutes aux aobjet a compiler et a linker la librairie de gbfs - GBFS.exe est l'outil qui vous générera un fichier .gbfs dans le repertoir de votre projet contenant une entete GBFS et les 2 fichiers de datas désirés. C'est ce qui est encadré en gris dans mon exemple plus haut. - PADBIN.exe est un outil permettant d'aligner votre ROM a une valeur multiple de 2. Ils remplit le trou restant avec des 00. Ceci etant necessaire car le code de GBFS scanne la ROM de manière optimale avec une plage a 256. Explication de l'auteur : Citation:
- La copie binaire concatène simplement la ROM et le fichier GBFS ensemble dans un nouveau fichier - Ne pas oublier d'inclure - Utilisation de GBFS dans le code Une fois dans votre code, l'utilisation de GBFS est assez simple. La complexité réside plus dans ce que vous allez faire de la ressource incluse, ex: Décompression, lecture de BMP/JPG, ... Aussi voici un exemple de ce que vous pouvez faire avec l'exe^mple precedent. Code PHP:
Ne pas oubliez avec GBFS:
|
|
![]() |
![]() |
![]() |
#2 |
Membre
Date d'inscription: 31/07/2008
Messages: 6
|
![]() Merci pour ces explications
Dernière modification par greg15 ; 02/08/2008 à 18h27. |
![]() |
![]() |
![]() |
Liens sociaux |
Publicité |
Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s)) | |
Outils de la discussion | |
Modes d'affichage | |
|
|