Explication du code source de "Fli"
Table des matières
Comment compiler la version DOS
Comment compiler la version Windows
Pages apparentées
Comment compiler la version DOS
Cette version est prévue pour être compilée avec TASM 3.2,
qui était fourni il y a longtemps avec le Turbo Pascal de Borland.
Vous devez bien entendu modifier dans le fichier MakeDOS.bat les chemins d:\tasm32\tasm et
d:\tasm32\tlink, avant de lancer l'exécution
de ce makefile. Une fois l'exe créé, il est compressé par lzexe.exe, ce qui permet d'atteindre la taille finale de
4087 octets (rappel :
dans les démo-parties, la compétition réservée aux programmeurs impose une limite maximale de 4ko, soit 4096 octets).
Bien qu'il s'agisse d'une intro sous DOS, elle fonctionne correctement sous Windows 98 et Windows 2000 : double-cliquez sur l'exe, puis
(sous Windows 98) répondez "non" à la question "voulez-vous modifier les propriétés de son raccourci pour qu'il s'exécute toujours
en mode MS DOS". Après le texte, l'écran doit passer tout seul dans la résolution 320*200 256 couleurs,
si ce n'est pas le cas essayez
la combinaison ALT+ENTREE.
A tout instant de l'intro vous pouvez passer à la partie suivante en appuyant sur ENTREE, ou quitter avec ECHAP.
Comment compiler la version Windows
Cette version est conçue pour être compilée avec MASM 6.14. Si vous ne l'avez pas, procurez-vous
ce fichier, et procédez à l'installation.
Copiez ensuite dans le répertoire \include les sous-répertoires
\OpenGL et \WinExtra
qui sont dans le \Masm32_Include de mes sources. Remplacez ensuite dans le fichier MakeGL.bat
les chemins d:\masm32 par celui qui correspond à l'emplacement où vous avez installé Masm. Lancez l'exécution de MakeGL.bat,
une fois l'exe créé il est compressé par upx et passe d'une taille de 10ko à 7ko.
Quelques informations sur cette version Windows :
- elle utilise OpenGL uniquement pour afficher à l'écran les images de l'intro, mais tous les calculs sont effectués par le CPU
comme pour la version DOS. Il ne s'agit pas d'un programme accéléré par la carte 3D.
- si jamais l'intro est lente et dure plus de 2 minutes, c'est que vous avez un problème avec vos drivers graphiques ou qu'ils sont
mauvais, et que la copie vers l'écran est effectuée en software. Cela m'est arrivé une fois, l'installation de drivers plus récents a
résolu le problème. Cette intro a été testée avec succès sur GeForce 1/2/3 et Radéon, sous Windows 98 et 2000.
- l'intro s'exécute dans une fenêtre non redimensionnable de 640*400 pixels. En fait les calculs sont toujours effectués en 320*200, et
l'image est agrandie au moment de l'affichage. Certains drivers ne semblant pas apprécier d'avoir à transférer un gros buffer en une
fois (via glDrawPixels), la fenêtre est découpée en 4 parties égales.
- le passage à Windows nécessite évidemment un peu de code supplémentaire, d'où la taille de 7ko au lieu de 4. Mais je n'ai pas non plus
spécialement essayé d'optimiser la taille de cette conversion. Mis à part l'utilisation d'OpenGL, les plus grosses modifications ont
consisté à passer d'un modèle mémoire segment+offset 16 bits à un modèle 32 bits, et à supprimer le code auto-modifié (il est possible
sous Windows d'écrire dans les pages de code, mais ce n'est pas recommandable).
- les touches ENTREE et ECHAP ont le même effet que dans la version DOS (respectivement partie suivante, et quitter).
Quelques liens utiles pour faire de l'assembleur sous Windows :
Iczelion's Win32 Assembly Homepage
Hutch's home page
UPX (outil de compression pour les exécutables au format PE)
Pages apparentées
télécharger les démos "à l'ancienne"
images des démos "à l'ancienne"
la scène démos
haut de la page