sommaireAvertissement

sommairePrincipe

Un logo animé de démarrage Windows 9x est un bitmap Windows habituel, non compressé ("bmp", mais avec extension "sys" - une 1ère subtilité!) de 320x400 pixels, qui est étendu au moment de l'affichage en 640x400.
Ce bitmap doit obligatoirement avoir une palette de 256 couleurs (1 pixel = 1 octet)
Le fichier correspondant se nomme logo.sys et est placé dans la racine du disque C:
Sous Windows 98, le logo par défaut est directement incorporé dans le fichier IO.SYS. Mais si un fichier logo.sys existe dans la racine, il est utilisé par Windows à la place du fichier par défaut.
Donc, dans tous les cas (Windows 95 ou Windows 98), il suffit de créer (ou modifier) le fichier c:\logo.sys pour afficher son logo de démarrage personnalisé.

Les écrans affichés lors de la fermeture de Windows 9x ont les mêmes caractéristiques, et sont placés dans le répertoire principal de Windows (habituellement c:\windows). L'animation n'est pas prise en compte. Ils s'appellent respectivement :

Fichier

Message affiché
logow.sys Fermeture de Windows
logos.sys Vous pouvez maintenant éteindre votre
ordinateur en toute sécurité

sommaireRappel (succint et partiel) sur la structure des bitmaps

(pour plus de détails, consulter le document consacré exclusivement aux fichiers bitmaps) :

sommaireLa "subtilité" de la pseudo-animation

Dans le cas des bitmaps de logo, la valeur de biClrImportant est comprise entre 1 et 255, (car 0 ou 256 signifient que toutes sont importantes).
Par exemple, supposons que biClrImportant = 232 (= 0x000000E8).
Cela signifie que :

Exemple :
Soit un dessin ayant un (ou plusieurs) pixel(s) d'indice de couleur 244., doté d'une palette ayant les entrées suivantes :

Les pixels en question, jaunes au départ, vont passer en bleu, puis bleu pâle, ..., vert foncé, noir,...et ainsi de suite, d'où l'effet d'animation. Simultanément, les pixels d'indice 245 (bleu) vont passer en bleu pâle,....etc...

sommaireComment créer alors ses propres logos animés ?

Avec les outils standards ("PaintBrush" livré avec Windows), c'est impossible ! Il faut :

  1. Créer le logo en 320x400 256 couleurs à l'aide d'un logiciel de dessin sachant éditer la palette  
    (p.ex. Paint Shop Pro)
  2. Définir quelques couleurs destinées à l'animation, que l'on placera "à la fin" de la palette, et "peindre" avec ces couleurs les zones à animer.
  3. Sauver le fichier.
  4. Utiliser ensuite un éditeur hexadécimal pour modifier l'octet situé à l'offset 0x0032 du fichier et le remplacer par le nombre de couleurs animées.
    NB : On peut aussi utiliser le batch put0032.bat (free !)
    (Le fichier get0032.bat permet de lire le contenu de l'octet 0032, à titre de vérification) :
    Fichier put0032.bat (utilise debug) Fichier get0032.bat (utilise debug)
    @echo off
    if %1.==. goto syntaxe
    if %2.==. goto syntaxe
    if exist %1 goto suite
    echo.
    echo fichier %1 non trouve
    goto fin
    :suite
    echo Modification de l'octet 0032 du fichier %1
    REM creation du fichier de commandes debug
    echo.
    echo n %1 >cmddbg.txt
    echo l >>cmddbg.txt
    echo e 132 %2 >>cmddbg.txt
    echo w >>cmddbg.txt
    echo q >>cmddbg.txt
    debug <cmddbg.txt
    echo Modification effectuee
    goto fin
    :syntaxe
    echo.
    echo Syntaxe :
    echo ---------
    echo put0032 nom_de_fichier valeur
    echo.
    echo nom_de_fichier : fichier logo de demarrage Windows
    echo (extension .sys)
    echo 320x400 pixels sur 8 bits
    echo valeur : valeur hexadecimale de l'octet 0032
    echo (biClrImportant)
    echo.
    echo Exemple :
    echo ---------
    echo le fichier "monlogo.sys" a 230 couleurs importantes
    echo (donc 25 couleurs consacrees a l'animation)
    echo put0032 monlogo.sys E6
    :fin
    echo.
    @echo off
    if %1.==. goto syntaxe
    if exist %1 goto suite
    echo.
    echo fichier %1 non trouve
    goto fin
    :suite
    echo Lecture de l'octet 0032 du fichier %1
    REM creation du fichier de commandes debug
    echo.
    echo n %1 >cmddbg.txt
    echo l 0>>cmddbg.txt
    echo d 32 32 >>cmddbg.txt
    echo q >>cmddbg.txt
    debug <cmddbg.txt
    echo biClrImportant --^
    goto fin
    :syntaxe
    echo.
    echo Syntaxe :
    echo ---------
    echo get0032 nom_de_fichier valeur
    echo.
    echo nom_de_fichier : fichier logo de demarrage Windows
    echo (extension .sys)
    echo 320x400 pixels sur 8 bits
    echo.
    echo Exemple :
    echo ---------
    echo get0032 monlogo.sys
    echo retourne valeur hexadecimale de l'octet 0032
    echo (biClrImportant)
    :fin
    echo.




    Téléchargement de put0032.bat Téléchargement de get0032.bat

Un shareware, nommé XrXLogo, permet de :

Exemples d'éditeurs hexadécimaux (sharewares)
HexWorkshop
HexDecCharEditor

sommaire LOGANIM, freeware pour créer/modifier ses logos

Afin de faciliter la tâche (complexe!) de création de cette animation, j'ai conçu un petit logiciel intitulé "LOGANIM", doté d'une interface entièrement graphique que j'ai essayé de rendre la plus intuitive possible.

Comme à mon habitude, c'est un FREEWARE, à usage non commercial, entièrement gratuit et librement copiable.

C'est une première version, donc je n'exclus pas la présence de bugs, bien que je n'en ai pas détecté pour l'instant. Les seules DLL spéciales utilisées par ce programme sont JCBTOOLS.DLL, ainsi que CTL3DV2.DLL, toutes deux utilisées également par SCANBIN

Pour l'instant, l'aide se limite à un simple fichier texte loganim.txt

Téléchargement du fichier loganim.zip
(contient l'exécutable, les librairies JCBTOOLS.DLL et CTL3DV2.DLL,  et le fichier texte d'aide)

Il suffit de décompresser le fichier dans un répertoire quelconque, et de lancer loganim.exe.
Ce logiciel n'inscrit rien dans la base de registres. Sa désinstallation s'effectue par simple suppression.