Divers :
  Softs à utiliser
  Le son
  Photo d'écran
  Identifier CRTC

Cat'arts :
  Introduction
  Ordre d'exécution
  Taire le système
  Bidouilles

Graphisme CPC :
  Introduction
  Le pixel
  Les limites
  Hinting
  Antialiasing (1)
  Antialiasing (2)
  Antialiasing (3)
  Luminosité
  Subpixel
  Gestalttheorie

Couleurs :
  Les couleurs
  Flipping
  Tableau récap.
  Complémentaires
  Fondus


Tout savoir sur la création des CAT'arts

IV - Trucs et bidouilles
écrit le 14/12/2007, révisé le 26/09/2012

Afin de pouvoir devenir le Roco des CAT, je vous propose quelques bidouilles, certaines indispensable, et d'autre plus farfelues, pouvant vous donner des idées.


1 - Cheatmodes...
Les techniques sont malheureusement presque toutes identifiables tant le nombre de commandes est réduit. Toutefois, avec un peu d'astuce on peut se diversifier.

Je n'aborderai pas ici les techniques qui viseraient à insulter le Système à coup de POKE, tant je trouve barbare cette solution. De toutes façons, mes connaissances en la matière étant limitées, je n'ai rien à en dire. Pour ma part, je trouverais un peu hors sujet de changer le système pour que le CAT devienne différent, dans la mesure où ce n'est pas le registre d'exécution du CAT. Par exemple, on pourrait imaginer un CAT ne prenant plus 2k, mais 5k, si on considérait une ROM différente (PARADOS ou autres pour lecteurs 5'1/4). Le matériel est différent, le jeu aussi.

Tout d'abord, il y a la cachette ùUSER. C'est ce qui apparaît lorsque vous tapez ùUSER,n où n est un chiffre compris entre 0 et 255. Par défaut, on est sur le USER 0. Mais il est possible de mettre des fichiers sur le USER 57 par exemple. Le truc, c'est que les fichiers d'un USER sont invisibles depuis les autres USER, on ne peut consulter qu'un USER à la fois. Bon, moi, j'avoue trouver cette bidouille pas terrible non plus, parce qu'après tout, c'est un catalogue différent, ça se passe ailleurs...

Autre technique du même acabit : cacher un CAT sur une autre piste de la disquette. Voir la rubriques "Les pires bidouilles"pour plus d'infos.

INK
Et enfin, il y a les vraies bidouilles, propres aux instructions des catalogues. Pour faire simple, on peut déjà écrire quelque chose avec une encre de la même couleur que le fond. C'est ce que font les catalogues de la protection Hexagon ou Alcatraz. Lorsque vous faites CAT, une grande zone bleue en haut apparaît vide. Si vous tapez INK 1,0, alors vous voyez apparaître leur sigle.

PEN & PAPER
Et puis il y a les bidouilles avec PEN et PAPER. Par exemple, tout le monde se met par défaut sur PAPER 0 et PEN 1, comme au démarrage du système. Imaginez que vous écriviez sur PAPER 1 sans changer PEN ou avec PEN 0 sans changer PAPER, alors il sera impossible de voir quoi que ce soit, sauf si avant de faire CAT, vous changez le PAPER ou le PEN.

SYMBOL
Imaginez un petit charabia à l'écran... utilisant des caractères pas très utiles, ou un petit texte. Imaginez que le CAT soit rempli de &19 inefficaces. Il vous suffirait alors de taper SYMBOL AFTER pour que tout ce petit monde se transforme en un texte ou un joli dessin...

06 19 (chr$) 01 02 03 04 05 (point) 07 08 15
en vert vif, les 9 paramètres de la commande &19 :
choix du caractère, puis les 8 octets définissant chaque ligne du chr$

Attention toutefois, à ne pas oublier que la commande SYMBOL AFTER n'est pas un Sésame sans limite : &19 réclamme 9 paramètres (qui seront au mieux interrompus par le point du système), et les 8ème bit est toujours filtré, mettant à 0 tous les pixels de la colonne de gauche du caractère redéfini. Bidouille utilisée dans l'AE05 (et bien cachée).

En gris, les pixels qu'il est encore possible de définir. En noir et blanc, les valeurs attribuées d'office par les contraintes.
               
 
 
 
 
 
 
 

&05
La plus inutile de toutes les commandes pourrait servir à quelque chose ? Allons donc. Vous ne choisirez certainement pas la couleur, mais il vous sera possible d'afficher un texte juste en dehors de l'écran à une ligne près (que je vous laisse le soin d'effacer pour plus de discrétion). Pour faire apparaître ce message, il suffit de positionner le curseur graphique à l'aide de MOVE, par exemple MOVE 100,100 avant de taper CAT. En revanche, faites bien attention à ne pas utiliser la commande MODE (&04) dans votre CAT, car elle initialise la position de ce curseur. Contentez-vous de choisir le mode en début de CAT, et d'effacer par la suite avec CLS (&0C) si besoin. Bidouille aussi utilisée dans l'AE05.

La philanthropie de l'ouvrier charpentier...
Il reste encore l'art le plus sublime et le plus extreme du CAT'art, la contrepétrie ! Et oui, car si on considère après quelques kilomètres d'explications que les catalogues, c'est compliqué parce que les instructions sont sujettes au mauvais temps et aux humeurs d'un système pas toujours parfaitement identique, alors il suffit d'ordonner les instructions pour qu'elles donnent un résultat différent selon l'ordre dans lequel elles sont lues...

Par exemple (en vert vif, le texte, car c'est plus clair que de l'hexadécimal) :

06 IL_FAI 17 T_ 15
13 06
BEAU 15
11 06
_ET_ 15
12 06
CHAUD 15

Si vous êtes en mode 1, vous tapez ùDIR, il vous dira "IL FAIT BEAU ET CHAUD", mais si vous faites CAT, il vous dira "IL FAIT CHAUD ET BEAU". Simple comme bonjour !

Après il suffit simplement de faire pareil avec des instructions... par exemple si 2 textes écrits au même endroit sont écrit l'un après l'autre dans le temps, alors on peut s'arranger pour que le second efface le premier... ou l'inverse, selon l'ordre de lecture des instructions... c'est encore une fois l'astuce principale qui a permis de cacher un cheatCAT dans l'AE05...


2 - Les pires bidouilles :

Attendez !
Bon, qu'est ce que j'ai d'autre comme petit truc ? Les tempo ! Ce que j'appelle une tempo, c'est par exemple quand vous avez envie de perdre du temps exprès. Si vous n'avez que ça à foutre par exemple, c'est sympa de perdre du temps. Pour ralentir un affichage, avoir le temps de voir un truc que vous effacez derrière. Il y a plusieurs solutions. CLS est très bien, et il peut être isolé dans une fenêtre. Par contre, si vous devez afficher un truc derrière, il est plus prudent de ne pas avoir à redéfinir une fenêtre à chaque fois, donc un petite LOCATE (&1F) suivi d'un &14 fera très bien l'affaire. Et si vous avez beaucoup de temps à perdre, le mieux est sans doute le définir une grande WINDOW, de vous mettre en haut, et de faire monter le curseur, c'est ce qui prend le plus de temps par rapport aux octets dépensés.

Si vous souhaitez avoir une tempo à peu près équivalente à 1VBL, il faudra faire une fenêtre d'environ 100 caractères mode 1 de surface. Mais on reste dans l'aproximatif...

Plus viiite !
Si au contraire, vous souhaitez accélérer les choses, il faut savoir que c'est l'affichage qui prend du temps, et non pas la lecture des données. Par exemple, ce point du système prendra plus de temps à être affiché que si vous le précédez d'un &17 pour qu'il soit utilisé comme commande. Il va de même pour les infos du système qui suivent le nom du fichier. Une commande &15/&06 ou &19 vous feront gagner du temps à l'affichage.

464 VS 6128
Il faut croire que le ciel n'est pas clément, puisque les inventeur de CPC nous ont caché des petites différences de compatibilité entre mes 464 et les 6128... en fait, assez peu de CATalogues fonctionnent également sur 464. La principale raison est que l'instruction &15 qui sert à interdire tout affichage ne parvient pas à interdire le retour chariot du curseur en fin de ligne sur le 464. Il est donc particulièrement délicat de faire un CAT en mode séquentiel dans ces conditions, puisqu'on ne sait plus à quelle instruction se vouer. Voir notamment la détection de CPC 464 / 6128 du CAT de la ClimaxG

Autre différence, mineure cette fois : si vous activez le mode transparent en cours de CAT, le système ne remettra pas le mode opaque comme le fait le 6128, au moment du retour au basic.

Ouvrir la fenêtre en partant
Vous n'avez malheureusement pas la place de positionner le Ready au bon endroit et mettre une instruction &15 pour éviter l'affichage de "26K free", ou encore, vous ne voulez pas que le système affiche "Ready" ? Qu'à cela ne tienne, il vous suffit de faire une fenêtre de 1 de haut. Les informations systèmes seront affichées et instantanément balayées par l'affichage de Ready, qui sera à son tour poussé hors de la fenêtre par l'apparition du curseur. C'est d'ailleurs un rare moyen de ne pas afficher ce damné curseur après un CAT. Utilisé dans Citadel et dans ClimaxG.

Scrolltext du pauvre
Beaucoup de demomakers font ça pour raconter les problèmes qu'ils ont eu lors de la création du CAT, pour annoncer des messages cachés (cheatmodes parfois) ou simplement pour raconter leur vie... il est possible d'afficher du texte en clair dans le catalogue. Les entrées de catalogue utilisées pour ces micro intros ne sont en réalité que des fichiers fictifs. Les informations destinées au système sur la taille et la position des fichiers sur le disque sont donc inutiles. On peut donc utiliser tous ces octets pour écrire ce que l'on veut. Les catalogues étant assez réduits en mémoire, on est obligé au silence pendant qu'il se déroule. C'est pourquoi on trouve assez souvent des commentaires des auteurs, ce qui permet de les rendre plus sympathiques.

Personnellement, avant de ne mettre ce genre de commentaires, j'utilise cet espace pour mettre des remarques ou des repères de travail. Parce qu'un CAT en mode mixte universel avec des fonctions croisées et des cheatmodes de partout... c'est vite le bordel à débugger...

Se cacher de l'ùDIR
Il est possible de ne pas être embêté par la fonction ùDIR. Si par exemple, vous avez bien bidouillé votre CAT et que vous découvrez que la commande ùDIR révèle une entropie trop forte à votre goût, alors il est possible simplement de rendre le CATalogue invisible à ùDIR. Pour ce faire, il faut remplacer les 4 octets suivant les 12 premiers octets de chaque entrée du CATalogue par la valeur &E5 qui correspond à un emplacement formaté (en fait, sous disco, ça correspond à terminer la ligne des 11 octets d'instruction). Le CAT semble lire et interpréter cette fonction, tandis que le ùDIR l'ignore simplement. Si alors vous faite ùDIR, le seul affichage sera composé des fichiers visibles s'il y en a, suivi de la place disponible sur la disquette.

CATalogue bien renseigné
Une idée intéressante de la part de ces chers NWC a été de mettre à jour le Catalogue en fonction de certaines informations. Par exemple, le CAT informe que ma copie est la 7ème génération de disquette à partir de l'original et que j'ai lancé la démo 159 fois. Le problème, c'est qu'il faut garder la disquette déprotégée pour cette actualisation, et que les auteurs susceptibles menacent de formater la disquette à la moindre encartade. L'idée est intéressante et pourrait être développée. On pourrait continuer sur cette lancée en proposant de personnaliser le CAT (couleurs par exemple) dans un menu de la démo, ou d'y afficher son nom : "Cette disquette appartient à machin" lors de son premier lancement. Ou pourquoi pas avoir un CAT différent à chaque lancement...

SOS besoin de place pour un CATalogue fichiers...
Vous êtes bien embêtés, vous aviez prévu de faire une belle démo en fichiers, et votre CAT'art prend presque toutes les entrées. Rassurez-vous, il existe une solution. Pourvu que vous puissiez commencer votre démo à partir d'un unique fichier de lancement, celui-ci pourra modifier le numéro de la piste contenant le CATalogue lu par le système. La commande à taper pour changer cette piste est (merci Grimmy) :
POKE &A8A8,255:POKE &A89D,piste

Crypter les CATalogues...
Lorsque vous êtes fier comme un pape de votre CAT'art et que vous refusez que quelqu'un comprenne de quoi il est fait, que vous refusez de montrer la sainte tripe d'octet à un débutant, pour cacher un message devant apparaître en cheatpart, ou simplement pour corser le perçage de mystère de votre CAT, vous souhaitez entourer son code d'un brouillard. C'est possible ! Sachant que le bit de poids fort de chaque octet est purement et simplement filtré lors de l'affichage, il suffit de l'activer à votre gré pour qu'un &65 ou "A" devienne un &E5 (caractère graphique). Naturellement, ce cryptage est simple à percer puisqu'il suffit de faire l'opération inverse et filtrer ce bit pour voir apparaître la vraie valeur de l'octet affiché. À noter cependant que cet octet est réellement utilisé par le système à 2 endroits correspondant aux 2 premiers des 3 caractères de l'extension du fichier. Le premier est utilisé pour indiquer si le fichier est protégé en écriture, le second pour indiquer si le fichier est caché. Vous pourrez utiliser le premier, si vous n'avez pas trop utilisé les espaces qui suivent cette extension, car il faut savoir qu'alors un"*" remplacera un espace. En revanche, utiliser le second reviendrait à supprimer l'entrée de CATalogue correspondante.





<<< precédent <<<