Salut tout le monde !!
Certains d'entre vous ont peut ètre lu les tutos de RaZ sur certaines techniques graphiques avec Neo Master mais les pauvres programmeurs qu'est ce qu'ils en ont a faire !! Hein je vous pose la question ?
Détrompez vous, Neo master a quelques subtilites qui vont droit au coeur des super programmeurs que nous sommes. Lequels ? Vous ne les avez jamais vu ?
Donc on envoie la sauce.
Chargez Neo (Master), cliquez sur l'espèce de gant ou appuyez sur G(rabber). A droite, en bas les options qui nous interressent apparaissent.
Save palette *.S
Vous sauvez, avec cette option, la palette de votre image en ASCII a un format compatible avec les assembleurs.
Quand vous rechargez votre palette cela donne ca :
;Palette of PICTURE.NEO: Saved by NEOchrome V2.28 by Chaos, Inc.
dc.w $0000,$0765,$0345,$0236,$0210,$0420,$0020,$0456
dc.w $0554,$0777,$0014,$0141,$0777,$0222,$0111,$0FFF
en plus vous avez le nom de l'image, cela permet au cas ou vous avez plusieurs palettes, d'évité de cherche comme un c.. ! Votre palette est prète a etre utilisé.
Juste une petite note, Neo n'etant que 16 couleurs et pour ceux qui aime le rangement vous pouvez dégagé le premier '0' de chaque couleur, il ne sert a rien, par exemple la palette précédente deviendra cela :
;Palette of PICTURE.NEO: Saved by NEOchrome V2.28 by Chaos, Inc.
dc.w $000,$765,$345,$236,$210,$420,$020,$456
dc.w $554,$777,$014,$141,$777,$222,$111,$FFF
C-Programmeurs, Chaos (Delta Force) a meme pensé a vous, vous avez l'option :
Save palette *.C
Ce qui nous donne quand on recharge la palette :
/* Palette of PICTURE.NEO: Saved by NEOchrome V2.28 by Chaos, Inc. */
int _pal[16] = {
0x0000,0x0765,0x0345,0x0236,0x0210,0x0420,0x0020,0x0456,
0x0554,0x0777,0x0014,0x0141,0x0777,0x0222,0x0111,0x0FFF };
N'étant pas un spécialiste du C, (plutot une grosse m... !), je ne ferais pas de détails la dessus, exceptez que vous pourrez aussi nettoyez les '0' superflus.
Option suivante, très très pratique pour les jeux ou démos, si si je vous assures !! Ou pour ceux qui veulent limité la taille de leur code.
La voili !!!
CUT=>HEX.S FILE
C'est quoi que ce truc ?
Imaginons que vous vouliez affichez un sprite 16*16 pour une démo pourquoi sauvez une image complete pour juste un sprite ? Hein ?
Vous prenez l'outil qui vas bien pour coupez les blocs. Encadrez votre sprite.
(Note pratique : Neo Master possède un affichage bien sympa pour ceux qui (comme moi par moment !) ont parfois des soucis de coordonnées. Quand vous coupez votre sprite qui se trouve en 0,0 cela ne pose pas de problèmes, mais quand vous coupez votre sprite qu'est mal placé, regardez en bas a gauche, il y a un w: XXX et un h:YYYY qui sont affichés, ce sont les tailles en X et en Y, cela signifie que si ceux ci affichent w:16 et h:16 vous avez la bonne taille, c'est super pratique !)
Une fois votre sprite encadré, cliquez une fois sur le bouton droit pour faire une copie et faites F1. Ceci transfère le sprite dans le buffer. Puis revenez sur le G(rabber) et cliquez sur :
CUT=>HEX.S FILE
Neo va affiché un nom en bas (assez rapidement pour les possesseurs de disque dur !) et vas l'effacé, ce nom sera du style :
COPYBX.S
(X devenant une valeur numérique, suivant le nombre de copie que vous avez faites!. Attention la sauvegarde sera faite dans le chemin courant, ne criez donc pas tout de suite que vous retrouvez pas ce fichier !! Possesseurs de dur vous risquez de cherchez un peu !)
Ceci est le contenu du buffer de Neo. Prenez votre assembleur préféré et inserez le dedans, voila le résultat :
*
* NEOchrome V2.28 cut buffer contents (left justified):
* by Chaos, Inc. of the Delta Force (member of The Union)
*
* pixels/scanline = $0010 (bytes/scanline: $0008)
* # scanlines (height) = $0010
*
* Hardware color pallet (color 0 to 15):
*
* $0000,$0FFF,$0C64,$04DB,$0000,$0000,$0000,$0000
* $0000,$05EC,$0000,$0000,$000F,$00F0,$0F00,$0FFF
*
*
dc.w $0000,$07E0,$07E0,$07E0,$0000,$1FF8,$1FF8,$1FF8
dc.w $1E88,$2174,$3FFC,$3FFC,$2088,$5F76,$7FFE,$7FFE
dc.w $2088,$5F76,$7FFE,$7FFE,$2050,$DFAF,$FFFF,$FFFF
dc.w $1E20,$E1DF,$FFFF,$FFFF,$0000,$FFFF,$FFFF,$FFFF
dc.w $0000,$FFFF,$FFFF,$FFFF,$0F78,$F087,$FFFF,$FFFF
dc.w $1044,$EFBB,$FFFF,$FFFF,$0E44,$71BA,$7FFE,$7FFE
dc.w $0144,$7EBA,$7FFE,$7FFE,$1E78,$2184,$3FFC,$3FFC
dc.w $0000,$1FF8,$1FF8,$1FF8,$0000,$07E0,$07E0,$07E0
'It's magic !' vous trouvez pas ! On commence par la fin, non je rigoles !!! Au début une petite entête de Neo puis vient le détail technique pour les codeurs. D'abors le nombre de pixels de votre bloc : $10 (soit en décimal 16 !). Après le nombre d'octet par ligne de votre sprite : $8 (soit 8 en décimal, oui je sais....)
Puis vins la palette, au cas ou vous aurez oublié de la sauvé !!
Puis vint le sprite, beaucoup d'entre vous vont me répliquez, mais si on peut le mettre sur un écran de graffes qu'on a déjà ou d'autres trucs comme cela. Si vous avez encore de la place sur un écran de graffe, et que vous le chargez de toute façon pas de soucis. Mais si j'écris ceci c'est pour donné quelques astuces de ce super programme qu'est Neo Master et que j'utilises perso. Cela peut servir dans de nombreux cas, vous l'utiliserez peut ètre pas tout de suite, mais gardez ces options en tete cela peut dépanné. Pour ceux qui font des démos limités, les 128 (.NEO) ou 34(.PI1, PC1) octets de l'entête du fichier image seront plus pratiques utilisés a autre chose. Et meme pour du jeux.
Et ceux qui n'ont pas de dur, qui utilise des disquettes ou un ram-disk, c'est plus rapide d'avoir le sprite dans le code, que laissez l'assembleur chargez un fichier.
Vous avez en dessous de celle qui permet de sauvé le buffer, celle ci :
MASK=>HEX.M FILE
Cette option permet de sauvé le masque du bloc que vous avez coupé, comme précédemment.
Ce coup ci le fichier est :
COPYBX.M
Chargez cela donne :
*
* NEOchrome V2.28 cut buffer contents (left justified):
* by Chaos, Inc. of the Delta Force (member of The Union)
*
* pixels/scanline = $0010 (bytes/scanline: $0002)
* # scanlines (height) = $0010
*
* Monochrome mask (1 plane; background=0/non-background=1)
*
*
*
dc.w $07E0,$1FF8,$3FFC,$7FFE,$7FFE,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$7FFE,$7FFE,$3FFC,$1FF8,$07E0
Toutes les infos sont comme avant, exceptés que l'a on a pas la palette, et que le masque est monochrome. Pour ceux qui ne joue pas souvent avec les sprites ou ont débutent dans l'affichage de ceux ci, faut savoir une chose, le masque d'un sprite est exactement le meme pour tous les plans. Par exemple si vous devez utilisé le masque précédent sur les 4 plans, vous pouvez faire ceci :
lea Mask,a0
move.w (a0)+,d0
move.w d0,d1
move.w d0,d2
move.w d0,d3
(Mask:
dc.w $07E0,$1FF8,$3FFC,$7FFE,$7FFE,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$7FFE,$7FFE,$3FFC,$1FF8,$07E0)
Et voila, vous avez maintenant dans d0 le masque pour le premier plan, dans d1 le second, etc...
La dernière option, pouvant être utile a certains mais je ne ferais pas de détails, celle ci permet de sauvé le contenu du buffer dans un fichier au format .IMG (Le format officiel Atari, Hahaha !)
Voila, j'espère que cela vous aura permis d'apprécié‚ Neo Master a sa juste valeur ou vous aura aidé pour vos futurs developements.
Je reviens bientot avec un autre truc super pratique pour ceux qui utilise des fontes (Qui n'en utilise pas ?) avec un prog super pratique.
Bon developement,
GT Turbo.
