Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Comme j'ai eu du mal à trouver les routines pour transformer les données à ma sauce du PC vers le CPC, je me suis écrit un toolkit. Puis les nouvelles fonctions s'ajoutant au fil des mois, il s'est étoffé quelque peu. Du coup, je l'ai nettoyé un peu, y ai ajouté une ligne de commande et écrit une petit notice. Il est principalement utile pour les sprites sur CPC+, les pages graphiques mode 0/1 sur CPC, la convertion de palettes PC/CPC+, possède quelques commandes pour TileStudio (mode 0) ainsi qu'un bout de code pour faire les listes DMA que j'utilise. Certaines commandes sont encore a finaliser comme la transformation des samples en AY list.
En espérant qu'il vous soit aussi utile qu'à moi
Pièce jointe :
my_cpc_toolkit.zip
Code :
BASIC cpc_toolkit basic filename
filename = nom du fichier image sans extension
Génère un sprite au format PX8 de 16*16 OCTET format PX8: [76543210] <-- un pixel (lol)
ASM cpc_toolkit asm filename
filename = nom du fichier image sans extension
Génère un sprite compilé en ASM 16*16 , le premier mot indique le temps en NOP nécéssaire pour mettre à jour le sprite
KEY cpc_toolkit key file1 file2
file1 = nom du fichier image de départ sans extension file2 = nom du fichier image d'arrivée sans extension
Génère un sprite compilé 16*16 en ASM représentant la différence entre l'image de départ et l'image d'arrivée Utile pour générer des sprites animés prenant peu de place
HALF cpc_toolkit half filename
filename = nom du fichier image sans extension
Génère un sprite au format PX4 de 16*16
OCTET format PX4 : pixel de gauche --> [7654|3210] <-- pixel de droite
RLE cpc_toolkit rle filename decoder_address
filename = nom du fichier image sans extension decoder_address = adresse du décoder RLE, obsolète mettre NONE
Génère un sprite au format RLE de 16*16
OCTET format RLE : pixel --> [7654|3210] <--nombre de pixels (SI null ALORS fin)
Décodeur RLE Z80 inclus avec ce programme.
MODE1 cpc_toolkit mode1 filename
filename = nom du fichier image sans extension La largeur de l'image doit être multiple de 4.
Génère le sprite d'une image en mode 1 (4 couleurs) , la disposition des bitplans est celle la disposition native du CPC (entrelacement), les lignes ne suivent pas la structure écran mais linéairement.
Les couleurs sont cyclées à 3, ce qui peut être utile pour travailler sur plusieurs gammes de palettes sur la même image. Exemple , la couleur 5 deviendra 1 (5 AND 3 = 1)
MODE 0 cpc_toolkit mode0 filename
filename = nom du fichier image sans extension La largeur de l'image doit être multiple de 2.
Génère le sprite d'une image en mode 0 (16 couleurs) , la disposition des bitplans est celle la disposition native du CPC (entrelacement), les lignes ne suivent pas la structure écran mais linéairement.
Les couleurs sont cyclées à 15, ce qui peut être utile pour travailler sur plusieurs gammes de palettes sur la même image. Exemple , la couleur 16 deviendra 0 (16 AND 15 = 0)
SPT cpc_toolkit spt filename
filename = nom du fichier image sans extension
Divise une image en sprites de 16*16 au format BMP. Les noms des nouvelles images sont de "filename(numéro d'image dans la colonne)-(numéro d'image dans la ligne).bmp"
PAL cpc_toolkit pal filename start_color
filename = nom du fichier image sans extension start_color = première couleur à prendre en compte
Extrait 15 couleurs à partir de start_color et les transforme au format CPC+ pour ensuite les écrire dans un fichier source ASM.
ADD0 cpc_toolkit add0 image tileset
image : nom du fichier image sans extension tileset : fichier ".set" à créer ou auquel ajouté les caractères.
Crée ou ajoute (si le fichier existe déjà) à un jeu de caractères (fichier .set) une image.L'image sera divisée en caractère de 4*8 pixels mode 0 et les caractères redondants supprimés. A la création, le fichier ".set" prend la palette de la première image.Le nombre maximum de caractères et de 255. Cette fonction est dédiée uniquement au mode 0.
FINAL0 cpc_toolkit final0 tileset
tileset : fichier ".set" crée avec la commande ADD0
Finalise un fichier ".set" en générant deux fichiers : - un BMP de 8*2048 pixels pour TileStudio (utiliser import tiles) - un fichier ".til" de 256 caractères de 4*8 pixels (16 octets) soit 4096 octets (4K) pour le CPC en mode 0.
Une fois finalisé, vous pouvez supprimer le fichier ".set". L'offset de chaque caractère se calcule simplement : offset=(nTile*16)
COL
cpc_toolkit col mapname width height
mapname : fichier sans son extension correspondant à une map exportée par TileStudio en mode 8bits,0 based (fichier .bin). width : largeur de la map height : hauteur de la map
Inverse la hauteur et la largeur d'une map.Génère un fichier ".lvl"
DMA
filename : fichier au format RAW PCM unsigned 8bits 15625hz (15KHZ) (extension .SND) sans son extension. tablename : table de conversion (fournies : table_ay1.bin ,table_ay2.bin ,table_ay3.bin par Targhan)
Converti un sample à 15Khz en un fichier source ASM pour le format "dma", la description des données est inclue dans le fichier.
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Ton "toolkit" semble bien plus ouvert que ce que j'ai fait pour la Phat 1, 2 & Pheelone en effet, mes outils étaient ultra-spécifiques à chacune de ces prods.
Donc Thumb Up pour le caractère "générique" de ton outil qui, visiblement, peut-être utilisé dans un tout autre contexte que ce que toi tu avais pensé au départ
Inscription : 20 Août 2007, 18:21 Message(s) : 4995
et c'est a une année lumière de mon bin2asm
je profite de ce topic , car je cherche des tools pour : 1) "uniformiser" la palette d'une serie d'images (que les couleurs sois dans le même ordre (bmp256c ou 16c)) 2) recadrer/couper une serie d'images, le tout paramétrable en ligne de commande (x,y,hauteur,largeur) irfanview permets de le faire par sont GUI, mais je cherche en ligne de commande.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 84 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum