Page 1 sur 2

MergeBMP2PCE [Touko]

Publié : sam. 03 févr. 2024 14:56
par Kaminari
MergeBMP2PCE est un outil graphique développé par Touko et capable de générer des tilemaps, similaire à GFX2PCE d'Alek et BMP2PCE d'Orion.

Version 1.1.1 : MergeBMP2PCE

Son point fort est de pouvoir fusionner automatiquement plusieurs calques en une seule image, une fonction extrêmement pratique qui permet de se dispenser d'un logiciel de dessin comme Pro Motion pour ne pas avoir à copier/coller les tuiles à la main dans un même fichier. Vos calques doivent bien sûr être déjà dessinés sous forme de tuiles, et chaque calque limité à une palette de 16 couleurs (couleur 0 comprise). Exemple :

Calque 1
Image

Calque 2
Image

En plus de ses capacités de fusion de calques et de suppression des tuiles doublons, MergeBMP2PCE a une autre qualité par rapport à GFX2PCE : on peut spécifier l'adresse de stockage des tuiles en VRAM, alors que l'outil d'Alek est hardcodé à l'adresse 0x1000 pour respecter la convention imposée par Magic Kit et HuC — ce qui fait perdre de précieux octets, surtout quand on n'a pas besoin de la police de caractère de HuC qui occupe par défaut cet espace mémoire.



MergeBMP2PCE fonctionne en ligne de commande. L'outil va assembler et convertir tous les calques BMP indiqués en paramètres vers trois fichiers : MAP (tilemap), GFX (tuiles) et PAL (palettes).

Syntaxe :

Code : Tout sélectionner

MergeBMP2PCE.exe ADRESSE_VRAM PREMIÈRE_PALETTE fichier1.bmp fichier2.bmp [optionnel] FICHIERS_DE_SORTIE


Exemple 1 :

Code : Tout sélectionner

MergeBMP2PCE.exe 0x1000 0 bg1.bmp bg2.bmp MonSuperBackground
MergeBMP2PCE fusionne les calques "bg1.bmp" et "bg2.bmp" pour les exporter au format binaire tilemap + tuiles + palettes. Les tuiles sont placées à l'adresse VRAM 0x1000 et la palette du premier calque se voit attribuer le numéro 0. Les numéros de palette étant incrémentés automatiquement, le deuxième calque utilisera donc la palette numéro 1.

Dans cet exemple, les fichiers de sortie seront nommés "MonSuperBackground.map", "MonSuperBackground.gfx" et "MonSuperBackground.pal".



Exemple 2 :

Code : Tout sélectionner

MergeBMP2PCE.exe 0x0400 2 bg1.bmp *.bmp
Les tuiles sont placées à l'adresse 0x0400, très utile pour économiser de la VRAM si votre image ne fait pas plus de 256x224 et que vous n'avez pas besoin de la police de caractère HuC.

Le joker "*" (astérisque) vous permet de fusionner plus de deux calques à la fois, quel que soit leur nom. Tous les calques portant l'extension ".bmp" seront assemblés automatiquement avec le premier calque "bg1.bmp". Dans cet exemple, le premier calque est associé à la palette numéro 2 et les palettes suivantes seront incrémentées en conséquence (3, 4, 5 etc).



Exemple 3 :

Code : Tout sélectionner

MergeBMP2PCE.exe 0x0400 3/ bg1.bmp bg2.bmp
En plaçant un slash "/" juste après la palette (dans cet exemple, palette numéro 3), celle-ci est "figée" ; elle n'est pas incrémentée et reste bloquée sur le numéro 3 pour les deux fichiers BMP. Utile pour fusionner deux calques partageant exactement la même palette et éviter les doublons de palettes.



Exemple 4 :

Code : Tout sélectionner

MergeBMP2PCE.exe 0x0400 3/ bg1.bmp bg1.bmp
En spécifiant deux fois le même fichier en paramètres, il est possible de générer une tilemap avec un seul calque. Là encore, le slash "/" permet de bloquer le numéro de palette pour éviter des doublons inutiles.



Limitations :

Dans la version actuelle de MergeBMP2PCE, l'ordre des palettes est en fait décidé par l'outil et non par l'utilisateur. Quel que soit le premier fichier BMP que vous spécifiez dans votre ligne de commande, le calque prioritaire (et donc la première palette) choisi par MergeBMP2PCE sera obligatoirement celui qui contient la première tuile non vide en haut à gauche de vos calques (tuile 0,0).

Par exemple, si votre calque nommé "bg1.bmp" contient une tuile vide (couleur 0) en haut à gauche, et que votre calque nommé "bg2.bmp" contient une tuile dessinée (non vide) au même endroit, c'est ce deuxième calque qui sera choisi par MergeBMP2PCE comme première palette. Une petite gymnastique cérébrale dont il vaut mieux se souvenir pour éviter les mauvaises surprises.

Enfin, MergeBMP2PCE n'est pas compatible avec les fonctions de tilemapping de HuC. L'outil ne génère que des tuiles de 8x8 pixels. Les blocs (méta-tuiles) de 16x16 ne sont pas supportés.

ATTENTION ! Pour des raisons techniques, les noms de fichiers ne doivent pas contenir "_all" (genre "bg1_all.bmp").

Re: MergeBMP2PCE [Touko]

Publié : dim. 04 févr. 2024 17:15
par franz
J'y comprends rien mais c'est génial.

Re: MergeBMP2PCE [Touko]

Publié : dim. 04 févr. 2024 20:34
par Kaminari
Bah je préfèrerais que vous y compreniez quelque chose, sinon c'est que je vends mal le produit :cry:

Re: MergeBMP2PCE [Touko]

Publié : dim. 04 févr. 2024 21:04
par GuiM
C'est bien expliqué mais sans base technique, il est difficile de vraiment tout comprendre :wink:

Cela reste tout de même intéressant à lire :bomberjob:

Re: MergeBMP2PCE [Touko]

Publié : dim. 04 févr. 2024 21:20
par Laucops
Bravo les gars pour ce travail, à la fois et en premier lieu Touko pour la mise au pojnt d'un outil de développement performant, et Kami pour documenter celui-ci :bomberjob: :bomberjob: :bomberjob:

Re: MergeBMP2PCE [Touko]

Publié : dim. 04 févr. 2024 21:41
par touko
Tu as super bien expliqué et présenté l'outil, chapeau :bomberjob:

Il gère aussi les tiles dupliquées dans les calques .

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 07:00
par shubibiman
C'est beau :bomberdream:

Le début d'une nouvelle ère de développement de jeux homebrew.

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 08:53
par touko
J'irais pas jusque là qd même . :bomberperv:

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 09:44
par shubibiman
Ah mais en fait tu n'as pas le choix :bombergrin:

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 10:47
par touko
:bombergrin:
Je l'avais pas vu sous cet angle !

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 11:46
par shubibiman
Dans la vie, il y a ceux qui ont un pistolet chargé et ceux qui dév :bombergrin:

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 13:56
par Kaminari
Oh, merci de l'info pour les doublons de tuiles. Ce sont celles du premier calque qui sont conservées ?

Re: MergeBMP2PCE [Touko]

Publié : lun. 05 févr. 2024 14:28
par touko
Ce sont toutes les tiles non redondantes qu'il trouve (peut importe le calque), et actualise les tilemaps si une tile existe déjà .

Re: MergeBMP2PCE [Touko]

Publié : jeu. 20 févr. 2025 11:14
par touko
Faudrait que je teste un des ces 4 de faire un outil pour SGX en pseudo "BITPLAN" pour afficher des images plus colorées .
Par exemple utiliser les 2 plans pour avoir du 32 couleurs / TILE, voire les sprites en plus pour du 48/64 couleurs / TILE.
C'est pas spécialement utilisable dans d'autres cas que d'afficher des images, mais cela pourrait donner de bons résultats .

EDIT: J'ai essayé avec l'outil en ligne de rilden, et c'est pas vraiment concluant(bon l'image de base n'a que 55 couleurs) .

16 palettes 16 couleurs/tile
Image

8 palettes 32 couleurs/tile
Image

Avec une image de plus de 256 couleurs :
16 palettes 16 couleurs/tile
Image

8 palettes 32 couleurs/tile
Image

Re: MergeBMP2PCE [Touko]

Publié : jeu. 20 févr. 2025 11:51
par Kaminari
Cette technique a du potentiel, même pour du gameplay. En se limitant à une palette de 16 couleurs par plan, on peut reproduire facilement une image Amiga en 32 couleurs (testé avec Heart of China et Rise of the Dragon).

J'en profite pour te demander s'il serait possible à MergeBMP d'accepter le PNG dans une prochaine version ? Bon, faudra peut-être changer le nom dans la foulée, genre PIC2PCE :bombergrin: