         
                DJ-MAP-EDITOR V2.22 (C)1991 'DE JANEIRO'
                ----------------------------------------
         
                          'THE AVENGERS'
                        -------------------
    
* Historique ....  

    Tout d'abord,je voudrais remercier les utilisateurs de ce programme qui y 
trouveront je l'spre ce qu'ils en attendaient ..
     Ce programme a vu de nombreuses versions , de la 1.00 jusqu' la 2.22 il 
s'est pass un an et demi..Je vous laisse deviner la gueule de la premire 
version ...
    J'ai crit cette DOC en franais afin qu'elle soit accessible et surtout 
comprehensible pour ceux qui la liront (J'aurais bien sur prfr l'crire en 
Anglais mais je ne suis pas certain que meme des anglais l'auraient compris 
..).
    Ce programme devait servir dans un premier temps a composer des Cartes ( 
MAP ) pour des dcors de jeu ou autres,rassurez vous il sert toujours a cela 
,mais depuis la version 2.20 ,le dcoupage des blocs graphiques ne se fait 
plus a partir d'un programme en GFA BASIC mais  partir du MAP EDITOR lui meme 
...    Le programme en BASIC ne marchait qu'en BASSE,et je vous laisse 
imaginer les dlires du slecteur de fichier,de la souris ,des boites 
d'alertes lorsqu'on lance le programme en moyenne.Il est bien gnant lorsqu'on 
programme en moyenne sous GENST (par ex.) avec UIS III et FLEXDISC bourr de 
fichiers de devoir rebooter en basse pour pouvoir profiter du programme de 
dcoupage de sprites ( surtout si on n'a pas de Disque Dur , comme moi ! 
),aussi  partir des versions 2.10 j'ai dcid d'intgrer ma propre gestion 
souris,possible en overscan ainsi que mon propre gestionnaire de menu.On peut 
maintenant lancer MAP-EDITOR  partir de GENST que l'on soit en basse ou 
moyenne rsolution et ce sans problmes..Il est  noter que pour la gestion du 
slecteur de fichiers j'ai choisi la solution de facilit ( passage momentan 
dans la rsolution courante du bureau et utilisation de son slecteur de 
fichier, Cela m'vitait d'en reprogrammer un,qui aurait t surement moins 
bien que celui du GEM ( faon de parler,j'utilise UIS III de toute faon ...).
    
    Mis  part la cration de MAP ,on peut donc dcouper des BLOCS graphiques 
de 1,2,3 ou 4 plans d'une certaine taille pour diffrentes utilisations ( pour 
la cration de dmos on a besoin de fichiers de fontes o chaque bloc est une 
lettre,on peut aussi avoir besoin d'un logo d'une certaine taille sur un 
nombre limit de plans et aucun  programme ne permet ce type de 
manipulation... Un dsavantage de mes fichiers de fontes et que tous les BLOCS 
ont la meme taille,si l'on veut d'autres tailles de blocs,il faut avoir un 
autre fichier mais rien n'empeche d'en avoir plusieurs ; un pour les BLOCS 
16x16, un autre pour les BLOCS 32x32 ... ou tout autre taille de 1x1  320x200 
pixels.De toute faon dans un programme ,la taille des sprites est 
gnralement toujours la meme,une routine gnrale d'affichage est plus 
lente,et pour vous qui sans doute voulez programmer un jeu ou une dmo la 
vitesse est importante ....

    Toutefois les graphiques doivent etres dcoups dans des pages d'images au 
format DEGAS *.P?1 ,de toute faon les graphistes utilisent toujours un 
programme de dessin pour faire leurs oeuvres,ils disposent de tous les outils 
ncessaires. Je pense intgrer un diteur de BLOC dans une prochaine 
version,mais pour l'instant il faut s'en passer.

    Ce programme a subi de nombreux dboguages,toutefois il n'est pas exempt 
de bugs ,mais je n'en ai pas rencontr dans les dernires versions qui 
conduisaient au plantage du programme.Veuillez quand meme viter de faire des 
manipulations trop bizzares..     
    Reportez vous  la fin de cette documentation afin de connaitre les 
quelques consignes  respecter...


* Format des fichiers ......

    *.MAP ( fichiers de carte ).
    
    Ces fichiers dpendent de la taille x,y de la carte que l'on manipule et 
pour chacun des octets qui la compose correspond un numero de BLOC graphique 
(de 0  255).. Une carte peut etre dfinie au maximum avec 256 BLOCS 
graphiques.

    Un fichier de carte ne sert  rien s'il n'est pas associ  un fichier de 
BLOC (*.FNT) qui contient les graphiques...
    Voici donc le format d'un fichier de ce type.
         
    offset    + 0.L:  header d'identification "MAP!".
              + 4.L:  largeur de la carte sur un mot.
              + 8.L:  hauteur de la carte sur un mot.
              +12.B ...:  les octets correspondants  chaque sprite..
         
    *.FNT ( fichier de graphiques ).
    
    
    Ces fichiers contiennent les BLOCS dcoups avec l'utilitaire..
    
    offset    + 0.W:  largeur x en pixels des blocs.
              + 2.W:  hauteur y en pixels des blocs.
              + 4.W:  nombre des plans (1,2,3 ou 4).
              + 6.W:  nombre de blocs dans le fichier
              + 8.L:  "FNT2" header d'identification du fichier              
                    Je sais qu'en principe c'est en premier qu'on
                   le met mais c'tait afin de conserver une certaine
                   compatibilit avec d'autres versions..
              +12.W(3) :  3 mots non utiliss,plus tard peut etre ..
              +18.w(16):  16 mots,la palette ..
              +50 ...: Les donnes ; blocs par blocs ,lignes par lignes
                   ,par colonnes de 16 pixels ,plans par plans..
                   Comme l'organisation de la memoire graphique..
                   A ceci prs que si l'on veut afficher un BLOC
                   de moins de 4 plans  l'cran il faudra sauter
                   les plans graphiques inutiliss ..
              
                        J'spre que vous avez compris ...
                   
     voici une petite formule pour trouver l'adresse du bloc N
    dans le fichier ...
    
         adr_bloc_N=adr_fichier+50+y*2*nplanes*N*Xbloc
    avec Xbloc=int((x-1)/16)+1
    
         Xbloc correspond au nombre de blocs de 16 pixels ncessaires en 
largeur pour stocker le BLOC,ce sont des impratifs lis au ST,il aurait t 
impensable de faire autrement ...Il ressort donc que tout bloc ne faisant pas 
un multiple de 16 pixels en largeur est complt par des pixels de couleur 0 
jusqu' concurrence du multiple de 16 suprieur le plus proche ...             
    Vous en dduirez aisment que lorsque vous voulez faire une MAP il est 
ncessaire d'avoir des blocs avec une largeur multiple de 16 sans quoi il 
apparaitra une zone sans pixels sur chaque sprites..Les routines d'affichages 
de blocs de MAPEDITOR ne peuvent d'ailleurs afficher les blocs qu' des 
multiples de 16 ,ce qui est trs rapide,dans un jeu il est impensable 
d'afficher un dcor avec une routine gnrale qui permet d'afficher un BLOC  
n'importe quel pixel,le traitement serait beaucoup trop lent ....
    
         Ouf !! je m'excuse de m'etre tendu sur ces dtails mais c'tait 
namoins ncessaire afin de voir les limitations de MAPEDITOR,mais ceux qui 
sont habitus au ST ont dj compris depuis un moment ....
    
    
     
              LES FONCTIONS DU MAPEDITOR
              
         
        Elles sont de 3 types;fonctions sur les sprites,sur la map et sur le 
buffer d'image,elles sont toutes lies entre elles.
    Je tiens  prciser que tous les messages du programme sont en anglais et 
ne poseront pas trop de problmes  tous les rfractaires de la langue de 
SHAKESPEARE , les messages du type LOAD ,SAVE ,LOAD PIC ,SEE,CHOOSE 
SPRITES,FILE ERROR....ne devraient pas vous laisser indiffrents...
    Ce programme n'est de toute faon pas trs bavard et n'est pas  l'preuve 
de toutes les fantaisies de l'utilisateur.N'en dduisez pas pour autant que 
vous pouvez faire n'importe quoi avec,il est assez strict sur les fichiers,la 
gestion mmoire et il controle la validit de toutes les informations 
donnes.Mais dans le cas d'une erreur lors d'une lecture ou sauvegarde il se 
contentera d'un simple " file error " , vous de dterminer le problme ( 
verrouillage criture,pas assez de place ....).

    Un dtail avant de continuer,toutes les options de MAP ne peuvent pas etre 
actives tant qu'un fichier FNT n'est pas charg ou n'est pas cr  partir 
d'une image..et toute modification d'un fichier de sprites tels qu'un 
chargement ou une nouvelle saisie entraine la perte de la carte,mais de toute  
faon vous etes prvenus si cela devait arriver!

    Les fonctions sprites et images sont dcrites dans la meme rubrique.

FONCTIONS SPRITES:

    Disponibles sur la droite du panneau d'affichage,il suffit de dplacer la 
souris sur l'option souhaite et cliquer (certaines parties ragissent 
diffremment selon que l'on fait un clique gauche ou droit ).. pour valider 
correctement il faut appuyer et lacher dans la meme zone.

    * LOAD : charge un fichier de sprites s'il y'a assez de mmoire,les 
    options MAP sont accessibles( on peut charger,crr une carte).

    * SAVE : sauvegarde du fichier de sprites.

    * SEE  : Visualisation des pages de sprites s'il y'en a en mmoire.
    		( voir FONCTIONS MAP option LOOK pour complment )
    		    
    * LOAD PICT. :Charge une image DEGAS compacte ou pas et affiche l'image.
          cliquer pour retourner au menu.
    * SET : permet de visualiser l'image et de fixer les paramtres de saisie
         OX,OY,TX,TY  ...
          Noter que dans toutes les options de visualisation l'affichage de
         toutes les couleurs de la palette a lieu en haut de l'cran.
    
         pour choisir OX,OY il suffit de cliquer sur la position voulue ( 
affiche en haut de l'cran ) et ne pas lacher le bouton.On tire alors un 
cadre et on fixe les parametres TX,TY en lachant la souris  la valeur voulue.
          Se reporter plus loin pour l'explication de ces valeurs.

    * PLANE 0123 : en cliquant sur les chiffres on active ou pas le 
traitement des plans concerns,si on visualise le buffer d'image on ne voit 
alors que les plans que l'on a choisi ( Permet de voir si des sprites 
utilisent moins de plans et lesquels sont concerns).
         
         ATTENTION: Lors de la saisie de sprites,seuls les plans
              choisis sont pris en compte..
           
    * OPT : Cette option est trs pratique,si vous choisissez de l'xecuter 
           elle va optimiser l'image c'est  dire ,reconstruire l'image
           en utilisant seulement les couleurs utilises ( la nouvelle
           image prend la place de l'autre,c'est irrversible )..
            A partir de l,on voit nettement le nombre de couleurs,de plans
           utiliss par l'image..Cela remet aussi de l'ordre dans une image
           o toutes les couleurs seraient disperses dans la palette...
                Cette opration dure quelques secondes .
        
        * PARAMETRES OX,OY,TX,TY,DX,DY:
         
         Ces paramtres sont utiliss dans la saisie AUTOMATIQUE
    des sprites.Il est inutile de les fixer pour la saisie d'un
    seul sprite ( option CUT 1 ) o il suffit de tirer un cadre
    sur le sprite  dcouper..
         On peut fixer les valeurs de DX,DY en cliquant
    sur les flches soit d'un clique gauche ( +- 1) ou droit (+- 10).
    
         OX,OY: coordonnes de dpart de la saisie.
         TX,TY: taille du bloc  saisir .
         DX,DY: nombres de pixels  sauter sur les x et y
              entre chaque sprite..
              
         Pour faire une saisie automatique il est primordial que les sprites 
soient rgulirement espacs. Avec un peu d'entrainement on peut dcouper 
toutes sortes de fichiers de sprites,par exemple les multiples fichiers de 
fontes pour dmo que l'on trouve un peu partout..
     Dans ce dossier figurent d'ailleurs des exemples d'images,de sprites et 
de map ( avec l'original de celle de la dmo 'GATEWAY TO HEXENLAND' faite avec 
une version moins volue de DJ-MAP-EDITOR )..
    
    
    * PANNEAU D'INFO :
    
         figurent sur ce panneau les informations concernant le fichier de 
sprites courant , savoir ...

    NP  : nbre de plans utiliss par les sprites .
    NOBJ: nbre de sprites dans le fichier.
    TX  : largeur en pixel d'un sprite.
    TY  : hauteur en pixel d'un sprite.
    
    * CUT 1 : active le dcoupage d'un sprite en tirant un cadre sur la partie 
 saisir.
    
    * AUTOCUT :
         active la saisie automatique,il faut cliquer sur la position dsire 
de fin de srie ...


FONCTIONS MAP :


         Elles ne sont accessibles qu'avec des sprites en mmoires,toutefois 
vous pouvez modifier certains paramtres LX,LY de la meme manire que pour les 
paramtres de saisie ( en cliquant sur les flches ).
    
    LOAD :    Charge une carte .
    SAVE :    Sauve une carte .
    LOOK :    Visualise la carte  condition qu'elle soit valide.
              On peut valider cette option par appui sur ESPACE.

    Lors de la visualisation d'une carte,celle ci couvre le maximum de surface 
d'cran possible ( noter que dans la largeur de l'cran si un bloc entier ne 
peut pas figurer,il y'a un vide ).

    En haut de l'cran figure les paramtres IX,IY position du bloc en haut  
gauche dans la carte ainsi que X,Y position du bloc point par le curseur 
souris. Cela vous permet de connaitre la position exacte d'un bloc dans la 
carte pour faire ventuellement des test de position ..
    Avec le click gauche vous pouvez inscrire un bloc  la position de la 
souris ,le bloc concern apparait alors  l'cran et son numro figure dans la 
carte.Tant que vous restez appuy vous inscrivez ce bloc  la position 
pointe,vous pouvez donc tapisser une surface avec un bloc.
    Vous pouvez annuler la dernire opration avec la touche UNDO qui restitue 
les derniers blocs changs depuis le dernier relachement du bouton gauche.

    Par appui sur le bouton droit ,vous passez dans le mode de visualisation 
des pages de sprites,tout nouvel appui sur le bouton droit fera alterner les 
pages de sprites s'ils ne peuvent tous tenir sur une seule page cran.
    Pour quitter ce mode,il faut imprativement choisir un ou plusieurs 
sprites en cliquant dessus ce qui a pour effet de retourner dans la page de 
visualistion de la carte .Mais vous pouvez toutefois choisir un ensemble de 
sprites en tirant un cadre sur ceux que vous choisissez,il est ds fois  
fastidieux de faire un dcor avec des blocs d'une certaine taille (16x16 par 
ex.) aussi certains sprites composs de plusieurs petits blocs peuvent etres 
saisis.. Le pointeur souris passe alors en mode BLOC,et tout le bloc sera 
affich en cas de validation dans la carte .

    Pour se dplacer dans la carte si elle dpasse la taille de l'cran,il 
suffit soit de se placer sur un bord de l'cran pour qu'il dfile ou alors 
utiliser les flches curseur pour de dplacer dans la direction choisie mais 
par saut d'une page de sprites entire ....

	Lors de la visualisation de l'image,de sprites ou de la carte,il
        il peut etre difficile s'il n'y a pas beaucoup de couleurs dans la 
        palette de voir la croix de slection,aussi il est possible d'appuyer
        sur la touche ALTERNATE ,le temps de l'appui une palette par dfaut
        est valide ,Vous voyez mieux ce que vous faites ..
        

    SET DIM:  permet de crer une carte de la dimension fixe par les 
paramtres  LX,LY.
         Les valeurs de CLX,CLY correspondent  la taille x et y de la carte 
valide en ce moment.
    LENGTH :  Taille de la carte en octets, noter que la taille rserve 
rellement en mmoire est le double afin d'avoir une copie de la carte pour le 
buffer d'UNDO.

              Pour quitter le programme ,cliquez sur le panneau en haut de 
l'cran de slection des options ou alors en pressant ESC.

    Voil ,je pense que je n'ai rien oubli sur les fonctions du MAPEDITOR.



                        PROBLEMES
                        
         Je signale dans cette partie les quelques problmes que l'on peut 
rencontrer avec MAPEDITOR.

*   Tout d'abord le fait d'utiliser ma propre gestion souris et ce avec 
l'utilisation d'un overscan m'oblige  avoir des interruptions assez 
courtes,lors de l'utilisation toutes les interruptions normales du ST sont 
supprimes car elles prennent trop de temps et rendaient impossible 
l'utilisation d'un overscan .. Donc plus de TIMER pour le bip clavier,la VBL 
est rduite et le test de changement de disque n'y est plus effectu aussi il
peut y avoir certains problmes ...

*   La gestion de la mmoire disponible fonctionne assez bien mais le 
programme n'autorise pas la saisie de sprites s'il reste moins de 32 Ko par 
scurit pour ne pas craser des donnes car le programme n'est pas capable 
d'valuer la taille de mmoire ncessaire avant de faire la saisie,il ne la 
connait qu'une fois le sprites saisis,s'il n'y avait pas assez de mmoire il 
serait trop tard.
    Toutefois cette limite de 32 Ko ne suffirait plus si vous saisissiez des 
sprites de moins de 16 pixels de largeur ( avec 1 pixel de largeur et de 
hauteur il faudrait 50+64000*8 octets pour saisir toute une page sur 4 plans, 
ne tenter qu'avec 512 ko de disponibles sinon c'est le massacre ..)..
    Vous me direz que ce BUG peut facilement etre limin, il suffit de ne pas 
mettre des paramtres fantaisistes pour la saisie,si par malheur lors de la 
saisie vous vous rendez compte d'une normite ou d'un emballement de la 
saisie automatique ,pressez ESC pour l'interrompre,il n'est peut etre pas trop 
tard..
    
    Si je n'ai pas corrig ce bug,c'est que je pense le faire prochainement 
dans une version 2.30 qui sera capable de supprimer des sprites,d'en insrer 
dans la banque et ceci en testant avant l'insertion s'il reste assez de 
mmoire,mais c'est plus compliqu  grer et cela demande de multiples 
changements dans le code. Il sera alors possible d'avoir plus d'une page de 
sprites en mmoire..


                   PROJETS
                   

*   Amlioration de la gestion mmoire,avec une relocation automatique de la 
carte en cas d'insertion/suppression de sprites pour que la carte et les 
numros de sprites coincident encore...
*   possibilit de saisir une portion de bloc dans la map pour la dupliquer 
ailleurs.
*   Insertion possible d'une carte sur disque dans la carte courante  la 
position choisie par le curseur .. permettrait de se confectionner une 
bibliothque de BLOCS complexes ...
*   extension possible du codage des blocs sur un mot, 65536 blocs possibles 
alors pour un carte,mais cela semble peu probable car 256 blocs semblent 
suffisant pour l'instant.

*   Possibilit d'un diteur de sprites avec zooms ,.... mais seulement une 
fois que tous les autres amliorations seront faites .


                        votre serviteur 'DE JANEIRO'

