Invité despe31 Posté(e) 4 janvier 2004 Share Posté(e) 4 janvier 2004 Allez notepad est ouvert on est parti ,ce texte est le journal de bord de ma premiere compilation d'un homebrew gamecube.Sur Gc-hack j'ai trouvé des sources qui semblent simples à compiler le fichier que j'ai téléchargé s'apelle first.zip , pour la compilation j'utiliserais une veille version du devkit et pour l'edition des sources j'utiliserais notepad par pur sado-masochisme 23:20 le 2 janvier 2004 (bonne année): Bon deja c'est la merde quand j'ouvre les makefile et les .bat ça correspond ni à ma version du devkit ni a mon installation pour les reps ; pas de probleme je vais tout faire a la main dans une bonne vieille fenetre DOS lol. Bon le premier truc que le make.bat me dis de faire c'est: powerpc-x750-elf-as crt0.s -o crt0.o Donc compiler un fichier ecrit en asm , j'ouvre le fichier asm je vois qu'il a été code par titanik de crazynation et je comprends vaguement que ça initialise la console puis ça appelle la fonction main , c'est parfait de notre appli intro1.c. Ca servira pour le linkage ça huhu. donc je compile ce truc là alors avec mes reps: powerpc-eabi-elf-as.exe crt0.s -o crt0.o et c'est bon j'ai mon fichier o de 1 Ko. bon now je continue de regarder le make.bat et je me concote une petite commande de compilation pour compiler les fichiers .c de l'app intro1 elle meme en fichier .o: powerpc-eabi-elf-gcc.exe video.cpp memory.cpp pad.cpp intro1.cpp -IC:\include\ -c -g -Wall et ça marche pour me faciliter la vie jai foutu les fichiers include de first.zip et du compilo dans un rep commun qui est c:\include\ ça nous creer les fichiers intro1.o memory.o pad.o et video.o avant d'aller plus loin laisser moi vous expliquer ce que signifie les arguments de cette commande powerpc-eabi-elf-gcc.exe c'est notre compilo video.cpp memory.cpp pad.cpp intro1.cpp nos fichiers à compiler -IC:\include\ le rep où notre compilo trouvera les fichiers d'en tete dont il aura besoin -c signifie que l'on veut juste creer des fichiers objets pas de linkage -g signifie qu'on active le mode debuggage ce qui fait des fichiers .o plus lents et plus gros mais plus faciles a debugger -Wall signifie que l'on souhaite etre averti de tous les avertissements que pourrai emettre le compilateur voila j'espere que les neophytes de gcc y verront plus clair à present , alors continuons! je continue de lire le make.bat et je vois qu'il est temps de linker les .o en un fichier executable .elf (le format elf est un type de ficher executable bien connu du monde unix) donc je concocte ma commande pour ce linkage en regle: powerpc-eabi-elf-ld.exe -o intro1.elf crt0.o video.o memory.o pad.o intro1.o -LC:\lib\ -Ttext 0x80003100 ( je suppose que -Ttext 0x80003100 c'est l'adresse dans la ram où notre prog va pouvoir se charger) j'ai mis dans c:\lib les libs du compilo et me voici donc avec un fichier intro1.elf de 238 Ko au joie maintenant on va le passer en .dol pour qu'il soit lançable sur ma petite gamecube platinum je telecharge sur gc-hack qui me permet de faire ça donc toujours sous dos je tape la commande : c:\mondol\DolTool.exe -d intro1.elf DolTool v0.3 - loser 2003 Converted intro1.elf to intro1.dol Bon ben ça l'a fait j'ai un fichier .dol de 236 Ko plus qu'à le tester avec psoload c:\truc\PSOload.exe intro1.dol ensuite je lance phantasy star et cie et là miracle de la nature que vois je ? Un ecran vert alors que quand je lance le dol fourni avec le fichier zip ça me mets une photo de bébé que je peux bouger avec le pad. Alors je me dis : merde elle dois etre assez grosse cette image où qu'elle est surement que je l'ai pas inclus. et la je vois que le fichier data.s fait appel au fichier .raw qui ma lair assez gros 222 Ko jessaye de l'ouvrir avec photoshop pour voir et bingo je trouve une image bébé deformé ! en analysant un peu plus je vois que l'image du bébé a été codé en hexa dans le fichier test.c grace à un outil fourni dans le devkit intro1.cpp contient #include "test.c" (ce qui est de la programmation de cochon) et que donc javais omis de l'include dans mon rep include (obligé de metre un .cpp dans un rep include sic) donc je l'y copie et recompile et converti les fichiers comme expliqué avant et là hop encore une taille de fichier dol trop basse et un bel ecran vert sur ma tv. Bon là ça commence à m'enerver , c'est bizarre que ce fichier là data.s soit inutilisé dans le makefile du gars je dirais meme que c'est louche je vais lincure moi meme pour voir donc je le compile en .o avec la commande C:\Documents and Settings\Administrator\Desktop\prog gamecube\devkitcube-r1\devkitcube\bin>powerpc-eabi-elf-as.exe data.s -o data.o data.s: Assembler messages: data.s:0: Warning: end of file not at end of a line; newline inserted data.s:5: Warning: truncated file `11.raw', 230397 of 230400 bytes read et je mapercois ke le .raw est inclus dans le .o mais ce warning me fais un peur , mouarf on verra bien. now je relink tout en incluant ce .o dans les commandes precedentes powerpc-eabi-elf-ld.exe -o intro1.elf crt0.o data.o video.o memory.o pad.o intro1.o -LC:\lib\ -Ttext 0x80003100 et là le fichier fait 476 Ko !!! argh c gros je le passe en dol pour voir c pas bcp mieux 460 Ko bon ben je le teste quand meme un peu desespéré et bam encore un putain d'ecran vert. Si quelqu'un qui s'amuse à compiler des progs pour la GC a deja été confronté à un ecran vert qu'il me fasse part de son experience merci !!!! Car j'aimerais bien regler ce probleme ça me saoule de ne meme pas etre arrivé à compiler un miserable prog. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Invité kojirou Posté(e) 4 janvier 2004 Share Posté(e) 4 janvier 2004 J'ai eu des problèmes avec le logiciel "DolTool", d'ailleurs si tu compares le DOL fournis dans le ZIP et le DOL que t'as produits DolTool , tu verras bien qu'ils ne sont pas identiques... Malheureusement, je ne sais pas t'aider... Lien vers le commentaire Partager sur d'autres sites More sharing options...
GranDFrère Posté(e) 4 janvier 2004 Share Posté(e) 4 janvier 2004 Je compatis à ta douleur Despe et merci pour ce cours. C'est peut-être un echec, mais c'est, en tout cas pour moi, très instructif. J'apprend le fonctionnement de la compilation. Néanmoins, j'ai vu des démos, comme pong, qui ont des graphismes sous forme de fichier.bmp . Qui est converti en fichier.raw.c grâce à un utilitaire qui s'appelle gfx2gc. Où pourrai-je trouver cet utilitaire s'il te plait. Merci pour la leçon. Moi mon pong a un écran noir sur la TV Essaye de charger ton .dol avec PSUL ald PSOload, ou alors charge un .bin et non pas un .dol avec PSOload. Bonne nuit les petits. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant