Récit D'une Compilation Ratée


Invité despe31
 Share

Messages recommandés

Invité despe31

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

Invité kojirou

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

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. dodo

Lien vers le commentaire
Partager sur d'autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share