J'ai compris mais cela reviens au même car le caractère affiché fera 16 en largeur donc je ne voie pas l'utilité. Mais au point de vue de la place que ça prend c'est identique puisque que 9,10... juste qu'a 16 en largeur c'est égale à 2 octets soit 16 bits. La méthode que tu décrit en haut je l'ais fait depuis longtemps mais le problème est réglè, on ce mélange les pinceaux tout les deux, je sais bien qu'il n'est pas possible d'afficher un sprite de largeur 9 sans faire 16 bits de largeur soit 2 octets. Mais ce problème là est résolus. Je parlais tout simplement de largeur 9... pour des informations sur la police.
Le problème n'est pas là, il est réglé depuis longtemps: maintenant je code mon sprite sur 16 bits pour les caractère <=8 il sont complété avec des 0 avec mon convertisseur. En effet optimiser l'affichage des caractères car là j'en suis à 2000 caractères/s en mode gras et normal et 1000 caractères/s pour italique mais je pense que c'est lent et franchement je ne sais pas comment optimser plus, est-ce que la façon de faire mon fichier:
XY,RegistreX,Sprite
correspond ou tout simplement sprite16 est trop lent?

Oui, c'est lent.
Faut faire ses propres routines de sprite ... et de préférence, optimisées pour l'affichage de caractères ...
Et si j'utilise cette méthode:
void XChar_OR(unsigned short x,register unsigned char *map,short hau,unsigned char offset,unsigned char *Plane)
{
Plane += offset;
Plane += x>>3; //adresse de la premiere ligne du sprite
x&=7;
while(hau)
{
*Plane |= (*map)>>x; //avant la séparation du sprite entre 2 Bytes
*(Plane+1) |= (*map)<<(8-x); //après la séparation
Plane +=30; //une ligne au dessous
map++;
hau--;
}
}
Si y a mieux n'hésitez pas!
J'ai des routines de dessin de chaîne de caractères, mais elles ne sont pas faites pour une telle taille. Plus de 8 pixels de large c'est énorme ! Personne n'utilise jamais ça...
Le problème est qu'elles ne sont pas finies...