Version 0.1.7
Image2PCE II est un outil de conversion d'images pour la console PC-Engine / TurboGrafx-16. Il transforme n'importe quelle image en données graphiques compatibles avec les contraintes matérielles de la console :
- Résolution : Variable (32 à 128 tuiles en largeur, 32 à 64 tuiles en hauteur)
- Couleurs : RGB333 (512 couleurs possibles)
- Palettes : 16 palettes de 16 couleurs chacune
- Tuiles : 8×8 pixels avec déduplication automatique
- Calcul VRAM : Affichage en temps réel de l'occupation mémoire (BAT + tuiles)
- Interface
- Courbe RGB333
- Visualiseurs
- Masque de dithering
- Groupes de palettes
- Éditeur de tuiles
- Palettes générées
- Workflow recommandé
- Fichiers projet
- Formats d'export
- Format technique PC-Engine
- Raccourcis et astuces
- Dépannage
| Bouton | Description |
|---|---|
| Open image | Ouvrir une image source (PNG, JPEG, GIF, WebP, BMP) |
| Load project | Charger un projet sauvegardé (.i2p) |
| Save project | Sauvegarder le projet complet (image, réglages, masque, groupes) |
| Save binaries | Crée un répertoire et exporte .bat, .tiles, .pal |
| Save .asm | Exporter en format assembleur commenté |
| VRAM | Adresse de base VRAM pour les tuiles (défaut: $4000) |
Choisissez l'algorithme de mise à l'échelle :
- lanczos : Haute qualité, recommandé pour les photos
- nearest : Pixels nets, idéal pour le pixel art
- catmullrom : Bon compromis qualité/netteté
Définit le nombre de palettes générées (1 à 16). Plus il y a de palettes, plus les couleurs seront fidèles, mais chaque tuile ne peut utiliser qu'une seule palette.
- auto : La couleur de fond est détectée automatiquement
- fixée : Cliquez sur une couleur dans les palettes générées pour la définir comme couleur 0 (transparence)
- aucun : Pas de tramage
- Floyd–Steinberg : Diffusion d'erreur pour un rendu progressif
- ordered : Motif régulier de points
Le paramètre Seed contrôle le comportement déterministe du dithering Floyd-Steinberg.
Pourquoi une seed ? L'algorithme de clustering des palettes utilise des structures de données dont l'ordre d'itération peut varier. La seed garantit que le même résultat soit reproductible.
| Élément | Description |
|---|---|
| Champ numérique | Entrez une valeur de seed (0 à 9 quadrillions) |
| Bouton 🎲 | Génère une nouvelle seed aléatoire |
Utilisation :
- Même seed + même image = même résultat (toujours identique)
- Seed différente = résultat potentiellement différent (distribution des palettes différente)
- Cliquez sur 🎲 pour explorer différentes variations du dithering
- Notez la seed d'un résultat qui vous plaît pour pouvoir le reproduire
Astuce : Si le résultat du dithering ne vous convient pas, essayez plusieurs seeds avec le bouton 🎲 jusqu'à obtenir un rendu satisfaisant, puis conservez cette seed.
- Transparence : Active la gestion de la transparence
- Keep ratio : Préserve le ratio d'aspect de l'image source
- Masque dithering : Active le masque éditable sur l'image source
Couleur utilisée pour remplir les zones vides (si le ratio est préservé).
La PC-Engine supporte plusieurs tailles de BAT (Block Address Table). Ce groupe de réglages permet de configurer la taille de la BAT, les dimensions de l'image et son positionnement.
Taille BAT Sélectionnez la taille de la BAT parmi les 5 tailles supportées :
- 32×32 (1024 tuiles, 2 Ko) - mode standard
- 64×32 (2048 tuiles, 4 Ko)
- 128×32 (4096 tuiles, 8 Ko)
- 64×64 (4096 tuiles, 8 Ko)
- 128×64 (8192 tuiles, 16 Ko)
Largeur / Hauteur Définissent la taille de l'image convertie en tuiles. Les valeurs maximales sont limitées par la taille de la BAT sélectionnée. L'image peut être plus petite que l'espace BAT disponible.
Offset X / Offset Y Positionnent l'image dans la BAT. Ces valeurs sont automatiquement contraintes pour que l'image reste entièrement dans la BAT :
- Offset X max = Largeur BAT - Largeur image
- Offset Y max = Hauteur BAT - Hauteur image
Les zones de la BAT en dehors de l'image contiennent des tuiles vides (index 0, palette 0).
L'éditeur de courbe permet d'ajuster la quantification des couleurs vers RGB333 (3 bits par canal = 8 niveaux).
- Axe horizontal : Valeur d'entrée (0-255)
- Axe vertical : Valeur de sortie (0-255, puis quantifiée en 8 niveaux)
- Points de contrôle : Glissez pour modifier la courbe
- Reset : Réinitialise la courbe linéaire
Astuce : Une courbe en S augmente le contraste. Relever les ombres ou abaisser les hautes lumières peut améliorer certaines images.
Affiche l'image originale chargée.
- Zoom : Utilisez le curseur ou la molette de la souris pour agrandir (1x à 8x)
- Navigation : Cliquez et glissez pour déplacer l'image
Affiche le résultat de la conversion en temps réel.
- Survol : Passez la souris sur une tuile pour voir sa palette associée
- Zoom tuile : Un aperçu 10x de la tuile survolée s'affiche
- Calcul VRAM : L'occupation mémoire est affichée (BAT + tuiles uniques)
- Si la taille dépasse 64 Ko, un avertissement en rouge s'affiche
- La déduplication des tuiles permet d'économiser de la VRAM
Simulez l'affichage sur un écran cathodique :
| Mode | Description |
|---|---|
| Aucune | Pas de simulation |
| Scanlines | Lignes de balayage horizontales |
| Aperture Grille | Bandes RGB verticales (style Trinitron) |
| Shadow Mask | Motif de points RGB (TV classique) |
| Composite | Combinaison complète avec vignettage |
Un léger flou analogique est automatiquement appliqué lorsqu'un mode CRT est sélectionné.
La carte mémoire VRAM affiche visuellement l'occupation de la mémoire vidéo de 64 Ko de la PC-Engine. Elle se trouve sous l'histogramme dans le panneau des réglages.
VRAM Map (64 Ko) 42%
[█████BAT█████| |████████Tiles████████| ]
$0000 $4000 $8000 $C000 $FFFF
BAT: $0000-$0800 (2 Ko) Tuiles: $4000-$A400 (25.2 Ko)
| Élément | Description |
|---|---|
| Barre BAT (bleu) | Position et taille de la BAT, toujours à $0000 |
| Barre Tuiles (violet) | Position et taille des tuiles à l'adresse VRAM configurée |
| Échelle | Adresses hexadécimales de $0000 à $FFFF |
| Pourcentage | Occupation totale de la VRAM |
La VRAM Map détecte automatiquement les problèmes de configuration :
| Alerte | Description |
|---|---|
| Chevauchement BAT/Tuiles | La zone de chevauchement s'affiche en rouge rayé avec le message d'alerte |
| Dépassement VRAM | Les tuiles débordent au-delà de $FFFF |
Conseil : Ajustez l'adresse VRAM dans la barre supérieure pour éviter les chevauchements. La BAT occupe les premiers octets à partir de $0000, placez donc vos tuiles plus loin (ex: $4000 par défaut).
Le masque de dithering permet de contrôler précisément où le tramage est appliqué sur l'image. Activez-le avec la checkbox Masque dithering dans les réglages.
Cliquez sur le bouton crayon (✏️) sous l'image source pour activer le mode édition. Le masque apparaît en semi-transparence sur l'image.
| Outil | Description |
|---|---|
| Pinceau (🖌️) | Peint en noir = zones avec dithering |
| Gomme (🧽) | Peint en blanc = zones sans dithering |
| Cercle (⭕) | Trace un cercle plein (clic = centre, glisser = rayon) |
| Rectangle (⬜) | Trace un rectangle plein (clic = coin, glisser = coin opposé) |
| Polygone (🔷) | Trace un polygone (clic = ajouter point, fermer ou double-clic = terminer) |
| Annuler (↩️) | Annule la dernière action |
| Rétablir (↪️) | Rétablit l'action annulée |
| Taille | Ajuste le diamètre du pinceau (5-100 pixels) |
| Effacer | Remplit tout le masque en blanc (aucun dithering) |
| Remplir | Remplit tout le masque en noir (dithering partout) |
| Inverser | Inverse le masque (noir ↔ blanc) |
- Par défaut, les formes remplissent en noir (dithering)
- Double-clic sur le bouton : bascule en mode blanc (pas de dithering)
- Un indicateur visuel (fond bicolore) montre le mode actif
- Shift pendant le tracé : inverse temporairement la couleur
| Touche | Action |
|---|---|
| X | Basculer entre pinceau et gomme |
| Ctrl+Z | Annuler |
| Ctrl+Y | Rétablir |
| Escape | Annuler le polygone en cours |
| Clic droit | Annuler le polygone en cours |
| Shift + glisser | Déplacer l'image pendant l'édition |
| Molette | Zoomer/dézoomer |
- Noir = le dithering sera appliqué dans cette zone
- Blanc = pas de dithering, couleurs unies
Le masque est automatiquement redimensionné pour correspondre à l'image de sortie, y compris si l'option "Keep ratio" est activée.
L'éditeur de groupes de palettes permet de forcer certaines tuiles à utiliser une palette spécifique lors de la conversion. C'est utile pour garantir que des zones particulières de l'image utilisent les mêmes couleurs, ou pour optimiser manuellement la distribution des palettes.
L'image source est découpée en tuiles virtuelles correspondant aux tuiles PCE de sortie. La grille virtuelle a les mêmes dimensions que la sortie configurée (ex: 32×32 tuiles).
- Une image source de 512×512 pixels avec sortie 32×32 tuiles → tuiles virtuelles de 16×16 pixels
- Une image source de 640×480 pixels avec sortie 64×32 tuiles → tuiles virtuelles de 10×15 pixels
Cliquez sur le bouton cible (🎯) sous l'image source pour activer le mode édition. La grille des tuiles virtuelles apparaît en superposition sur l'image.
| Outil | Description |
|---|---|
| Pinceau (🖌️) | Assigne les tuiles au groupe sélectionné |
| Gomme (🧽) | Retire l'assignation (retour au mode automatique) |
| Taille | Ajuste la taille du pinceau (1-5 tuiles) |
| Annuler (↩️) | Annule la dernière action |
| Rétablir (↪️) | Rétablit l'action annulée |
| Effacer tout | Supprime toutes les assignations |
Une grille de 16 boutons colorés (0-F) permet de sélectionner le groupe de palette actif. Chaque groupe correspond à une des 16 palettes PC-Engine :
- Les tuiles assignées à un groupe seront forcées à utiliser cette palette lors de la conversion
- Les tuiles non assignées seront optimisées automatiquement par l'algorithme de clustering
| Touche | Action |
|---|---|
| X | Basculer entre pinceau et gomme |
| Ctrl+Z | Annuler |
| Ctrl+Y | Rétablir |
| 0-9, A-F | Sélectionner directement un groupe (0-15) |
| Shift + glisser | Déplacer l'image pendant l'édition |
| Molette | Zoomer/dézoomer |
- Les tuiles avec contraintes sont pré-assignées à leur groupe
- Les couleurs de ces tuiles contribuent à la composition de leur palette
- L'algorithme de clustering optimise uniquement les tuiles non contraintes
- Les tuiles contraintes conservent leur groupe, même si d'autres couleurs seraient plus proches
Note : Si vous changez les dimensions de sortie, les assignations sont réinitialisées car la grille de tuiles change.
L'éditeur de tuiles permet de retoucher les pixels individuels du résultat converti, après la conversion initiale. Chaque tuile fait 8×8 pixels et utilise une seule palette parmi les 16 disponibles.
Cliquez sur le bouton 🎨 en bas du visualiseur de sortie (à droite) pour activer le mode édition. La barre d'outils se déploie avec les contrôles disponibles.
| Outil | Icône | Description |
|---|---|---|
| Pinceau | 🖌️ | Dessine les pixels avec la couleur sélectionnée |
| Sélection | 🔍 | Verrouille toutes les tuiles sauf celles de la palette cliquée |
| Annuler | ↩️ | Annule la dernière action (jusqu'à 50 états) |
| Rétablir | ↪️ | Rétablit l'action annulée |
- Convertir l'image : L'éditeur n'est disponible qu'après une conversion
- Activer l'édition : Cliquez sur 🎨, le curseur devient une croix
- Sélectionner une zone :
- Cliquez sur 🔍 (outil Sélection)
- Cliquez sur une tuile dans l'image
- Toutes les tuiles utilisant d'autres palettes sont verrouillées (overlay semi-transparent)
- La palette de la tuile sélectionnée s'affiche
- Choisir une couleur : Cliquez sur une des 16 couleurs de la palette affichée
- Dessiner :
- Cliquez sur 🖌️ (outil Pinceau)
- Cliquez et glissez sur les tuiles déverrouillées pour peindre pixel par pixel
- Les tuiles verrouillées ne peuvent pas être modifiées
En mode pinceau (🖌️), un clic droit sur une tuile affiche un menu contextuel :
| Option | Description |
|---|---|
| Convert to palette... | Convertit la tuile vers une autre palette |
Cette fonction permet de changer la palette d'une tuile individuelle :
- Clic droit sur la tuile à convertir
- Sélectionnez "Convert to palette..."
- Choisissez la palette cible parmi les 16 disponibles
- Les pixels de la tuile sont automatiquement convertis aux couleurs les plus proches de la nouvelle palette
- La sélection bascule sur la nouvelle palette
Note : Cette opération est annulable avec Ctrl+Z / Cmd+Z (les pixels et la palette de la tuile sont restaurés).
| Raccourci | Action |
|---|---|
| X | Basculer entre Pinceau et Sélection |
| Ctrl+Z / Cmd+Z | Annuler |
| Ctrl+Y / Cmd+Y | Rétablir |
| Ctrl+Shift+Z / Cmd+Shift+Z | Rétablir (alternative) |
| Clic droit | Menu contextuel (en mode pinceau) |
- Sélection requise : L'outil Pinceau nécessite d'abord une sélection via l'outil 🔍
- Tuiles vides : Les tuiles entièrement de couleur 0 ne sont pas éditables
- Verrouillage par palette : Toutes les tuiles d'une même palette partagent le même état de verrouillage
- Historique limité : 50 états maximum (les plus anciens sont supprimés si dépassé)
- Désactivation : Cliquer à nouveau sur 🎨 réinitialise l'éditeur (sélection, historique, verrouillage)
Après conversion, les 16 palettes sont affichées avec leur utilisation :
- Le nombre de tuiles utilisant chaque palette est indiqué
- Cliquez sur une couleur pour la définir comme couleur 0
- La palette survolée sur l'image de sortie est mise en évidence
- Ouvrir une image avec "Open image"
- Ajuster les paramètres selon le type d'image :
- Photo : lanczos + Floyd-Steinberg + 16 palettes
- Pixel art : nearest + aucun dithering + palettes réduites
- Modifier la courbe RGB333 si nécessaire
- Convertir en cliquant sur le bouton bleu
- Vérifier le résultat avec la simulation CRT
- Sauvegarder le projet pour reprendre plus tard (optionnel)
- Exporter dans le format souhaité
Les fichiers projet permettent de sauvegarder et reprendre votre travail ultérieurement. Un fichier .i2p contient :
- Chemin de l'image source : L'image originale sera rechargée automatiquement
- Tous les réglages de conversion : Redimensionnement, palettes, dithering, seed, etc.
- La seed de dithering : Pour reproduire exactement le même résultat
- La courbe RGB333 : Points de contrôle personnalisés
- Le masque de dithering : Zones avec/sans tramage
- Les groupes de palettes : Assignations manuelles des tuiles
- Cliquez sur Save project dans la barre supérieure
- Choisissez l'emplacement et le nom du fichier
- Le fichier
.i2pest créé avec toutes les données
- Cliquez sur Load project dans la barre supérieure
- Sélectionnez un fichier
.i2p - L'image source, les réglages, le masque et les groupes sont restaurés
Note : Si l'image source a été déplacée ou supprimée, seuls les réglages seront restaurés.
| Raccourci | Action |
|---|---|
| Ctrl+S / Cmd+S | Sauvegarder le projet |
| Ctrl+Shift+O / Cmd+Shift+O | Charger un projet |
Le bouton Save project change de couleur (orange pulsant) lorsque le projet contient des modifications non sauvegardées :
- Modification des réglages de conversion
- Chargement d'une nouvelle image
- Édition du masque de dithering
- Assignation de groupes de palettes
Le bouton retrouve sa couleur normale après une sauvegarde réussie ou le chargement d'un projet.
L'export binaire crée un répertoire portant le nom choisi, contenant 3 fichiers :
| Fichier | Contenu | Taille |
|---|---|---|
.bat |
Block Address Table (mots 16 bits, little-endian) | Variable (2 × nb tuiles) |
.tiles |
Données des tuiles (format planaire PCE) | Variable (32 × nb tuiles uniques) |
.pal |
16 palettes × 16 couleurs × 2 octets | 512 octets |
Important : Le fichier .tiles commence toujours par une tuile vide (32 octets à zéro) en position 0. Les tuiles vides de l'image pointent toutes vers cette première tuile, ce qui permet d'économiser de la VRAM.
Fichier texte avec :
- Données BAT formatées en
.dw - Données des tuiles en
.db - Données des palettes avec commentaires
- Statistiques (tuiles uniques, doublons, taille mémoire)
Bit 15-12 : Index de palette (0-15)
Bit 11-0 : Adresse VRAM >> 4
Octets 0-7 : Plan 0, lignes 0-7
Octets 8-15 : Plan 1, lignes 0-7
Octets 16-23 : Plan 2, lignes 0-7
Octets 24-31 : Plan 3, lignes 0-7
0000 000G GGRR RBBB
│ │ └── Bleu (3 bits, positions 0-2)
│ └────── Rouge (3 bits, positions 3-5)
└────────── Vert (3 bits, positions 6-8)
- Molette souris : Zoomer/dézoomer sur les visualiseurs
- Glisser : Déplacer l'image dans un visualiseur
- Shift + glisser : Déplacer l'image pendant l'édition du masque
- Les réglages sont sauvegardés automatiquement
- Double-cliquez sur le preview couleur 0 pour ouvrir le sélecteur de couleur
- L'adresse VRAM accepte les formats
$4000ou0x4000 - Les tuiles vides (entièrement couleur 0) sont automatiquement dédupliquées
L'image est trop sombre/claire après conversion → Ajustez la courbe RGB333 pour compenser
Les couleurs sont trop différentes de l'original → Augmentez le nombre de palettes ou essayez un autre mode de dithering
L'export binaire ne fonctionne pas → Vérifiez que vous avez bien converti l'image avant d'exporter
La simulation CRT n'apparaît pas → Sélectionnez un mode autre que "Aucune" dans le menu déroulant
