Hop, je reprends 3 questions en attente
Darkline (./4) :
Le truc c'est que lorsque je lance le BAT, j'ai une succession de "can't open x" où x est .c, puis .m65, ...
Où qu'il est le problème?
je me demande surtout comment le BAT va aller chercher le répertoire /test/ tout seul
En revanche, si je change les '%1' par 'test' ca marche sans problème! Ce qui est logique.
en fait, %1 en DOS, c'est l'utilisation d'un parametre. donc il faut taper la commande :
c test
pour compiler le projet test (%1 sera remplacer par test à l'exécution, un peu comme tu l'as fait une fois pour toutes à la main)
L'avantage d'utiliser des parametres, c'est que ça permet d'avoir plusieurs projets, mais un seul batch pour compiler. Maintenant, si tu te sens plus à l'aise avec les makefiles standard, tu devrais aussi pouvoir les utiliser, à toi de voir. Personnellement, je suis plutôt hermétique

Darkline (./4) :
Autre question (quand je commence je ne m'arrête plus...). Tu dis à Rygar que pour convertir les .bmp il faut faire : "SPRPCK -t6 -S160102 -p0 fond.bmp"
Alors que dans ton zip (kit d'aventure), c'est : "SPRPCK -t6 -S160102 -r001001 -o000000 -p0 fond.bmp fond" Et dans le zip projet_bis, c'est : "-t6 -S009009 -r001001 -o000000 -p0 building2.bmp s0"
En fait, il y a plein de parametres possibles pour SPRPCK
-t6 c'est pour dire que c'est un fichier BMP
-SXXXYYY c'est pour donner la taille du sprite à créer (XXX pixels de large par YYY pixels de haut)
- oXXXYYY c 'est l'offset (au cas ou le sprite ne soit pas en haut à gauche, on dit qu'il faut travailler à partir du pixel position XXX,YYY)
-rXXXYYY c'est pour découper un "tableau" de sprite. Par exemple, si tu a un perso avec n positions différentes pour son animation toutes à la suite, tu mettras -r010001
-p0 c'est pour forcer une création de sprite en objet linkable C, si on ne mets pas -p0, ce sera au format assembleur (ou alors à charger depuis la ROM en C à la main)
Je crois que si tu tapes sprpck sans rien tu peux récuperer l'aide
En tapant sprpck > sprpck.txt tu la récupèrera dans un fichier texte.
sinon, la voici :
Usage :
sprpck [-c][-v][-s#][-t#][-u][-p#]
[-axxxyyy][-Swwwhhh][-oxxxyyy][-iwwwhhh]
[-rxxxyyy] [-z] in [out]
or
sprpck batchfile
-c : compress color index
-v : don't be quiet
-s : sprite-depth 4,3,2,1 bit(s) per pixel (4 default)
-t : type 0 = 4bit raw, 1 = 8bit raw, 2 = SPS, 3 = PCX (3 is default)
type 4 = 1bit raw type 5 = PI1 (Atari ST), 6 = MS Windows BMP
-u : unpacked (packed is default)
-p : palette output-format : 0 - C, 1 - ASM, 2 - LYXASS(default)
-axxxyyy : action point (e.g. -a200020)
-Swwwhhh : sprite width and height (input-size is default)
-oxxxyyy : offset in data (e.g. -o010200 )
-iwwwhhh : input size (not needed for PCX)
-rxxxyyy : split picture into yyy * xxx tiles
-z : (only possible with -c) auto-set sprite-depth
in : input data
out : output filename, optional, default is in.spr
Note: With -p0 the sprite is saveed as cc65-Object file !
In batchmode, lines must have the same format as in command
line-mode, only if a input-file is defined in one line it can be
omitted in the following lines.
1bit raw = 8 pels per byte ( => -s1 is default )
4bit raw => 2 pels per byte
8bit raw => 1 pel per byte
SPS => ASCII-hex-number per pel (blank = 0)
PCX => either 8 bits / 1 plane or 1 bit /4 planes
PI1 => 1 bit / 4 planes , Atari ST Low Rez-format
BMP => either 8 bits or 4 bits not RLE encoded
Si tu veux des exemples des possibilités de sprpck, télécharges le yastuna 2 graphic pack (sur
http://fadest.free.fr/Yastuna2 ) et regarde les fichiers .txt qui sont avec les bmp. Ce sont des lignes pour sprpck en mode batch, ça te permettra de faire le lien entre l'image bmp et son découpage. pour utiliser un de ces fichiers, il suffit de lancer :
sprpck fichier.txt et tout sera généré.
Darkline (./4) :
J'en profite pour une petite dernière. Comment ton kit d'aventure fait pour récupérer le fichier .txt? J'ai beau chercher, il n'y a à aucun moment dans les BATs ou la source une référence au fichier!
Oui parce que la Lynx ne gère pas de système de fichier comme on l'netend sur PC. Il y a juste une succession de fichiers, et on y accède par leur numéro.
J'avais fait un tuto la dessus (je pense qu'il est sur mon spip), mais pour résumer :
le premier fichier est toujours insert.o
le fichier suivant est exécuté automatiquement (jeu ou menu)
ensuite, c'est au programmeur de faire comme il veut (avec le BLL PC, on est limité à 14 fichiers, Rajah a dépassé cette limite dans sa version de compilo ST je crois)
Donc, pour lire un fichier en C, il faut déclarer un descripteur de structure fichier :
extern char FileEntry[8];
/*_FileEntry : struct of 8 bytes
FileStartBlock ds 1
FileBlockOffset ds 2
FileExecFlag ds 1
FileDestAddr ds 2
FileFileLen ds 2
*/
connaitre son numéro de rang dans la rom et utiliser la fonction LoadCartDir(numero) pour se positionner au début du bloc (ce sera lstocké dans FileEntry[0]) de contenant le début du fichier (pour des raisons pratiques, j'aligne le fichier au début d'un bloc), et ensuite utiliser la fonction LoadCartBlock(FileEntry[0], destination) pour lire un bloc (de 1024 octets sur une rom de 256ko). Donc, il faut faire une boucle pour lire tout un fichier (et connaitre sa taille à l'avance aussi). Tu retrouveras ces 2 fonctions dans le kit aventure pour plus de détails.
Dans le jeu d'aventure, la rom contient donc :
insert.o
aventure.o
aventure.txt (aligné)
Comme je n'ai pas le détail du kit aventure sous les yeux, je ne peux pas te dire dans quel fichier texte c'est spécifié (celui en .mak). c'est la programme lynxer qui regroupe tous ces fichiers en une seule rom à partir du fichier .mak.
Voilà, j'espère que ça t'aura aidé.
EDIT : (vince) j'ai corrigé les erreurs de balise