Cela fait maintenant quelques années que nous essayons avec AsT de nous organiser de temps à autre des meetings plus ou moins improvisés, en petit comité. Le dernier gros en date était chez lui, avec MacDeath, Overflow, Toto, lui-même et moi. Ma femme m'ayant prévenue d'un déplacement pro, j'en profite pour inviter quelques CPCistes des environs pour faire une petite soirée CPC. Depuis que je suis sur Valence je me suis d'ailleurs rapproché de plusieurs CPCistes dont certains sont à quelques centaines de mètres de chez moi.
Un meeting à l'ancienne !
Ce sont donc Ast, MacDeath et Solorenzero qui ouvrent le bal dès vendredi soir. Les multi-prises sont prêtes et les télévisions sont sorties (je n'ai plus de moniteur de longue date mais j'arrive encore à trouver des écrans cathodiques à vil prix sur leboncoin). Une fois installés on part sur une première soirée calme, même si on discute code, le vendredi restera "chill" comme dit Solo. Les autres participants arrivent le samedi: Hwikaa (qui a pris le train d'Espagne), OffseT et TotO.
Les choses sérieuses commencent. TotO est impatient de nous présenter différentes cartes de CPC hybrides: tout d'abord le CPC-ITX qui est une carte-mère compacte avec tous les composants originaux. Certains sont sous une forme compacte mais la compatibilité électronique est totale. Le CPC-ITX dispose des trois CRTC officiels (hors pre-Asic). L'idée est de pouvoir logiciellement passer d'un CRTC à un autre, dans l'optique de développer sur la machine sans redémarrage, recompilation, ou rechargement. Il "suffirait" de donner l'ordre de bascule au bon moment et de recharger les registres. Une fois les tests terminés, le code de bascule peut être supprimé de la version à diffuser. En plus de sa compacité, ça évite de faire des transferts pour tester sur toutes les variantes de CPC. À réserver aux codeurs fous ^_^
CPC-ITX triple CRTC
Autre engin, une autre carte-mère de CPC compacte dans un boitier d'origine, dôté d'un CRTC-II. Non, pas un CRTC-2 ! Un CRTC-II ! Concrètement vu comme un CRTC-0, il ne réagit pas exactement de la même façon. Le OUT 0 dans le registre 6 laisse une ligne continue de border en haut de l'écran (au lieu d'un trait discontinu témoin de l'horloge interne) et les ruptures verticales ne semblent pas fonctionner. Le CRTC peut aller jusqu'à ne plus rien afficher mais continue cependant à envoyer des HBL et VBL. Autant dire que la Back 2 Futurs et la OneScreen colonies n'ont pas apprécié l'engin. Oui car on s'est bien évidemment amusé à malmener quelques démos sur ce matériel. Pour l'anecdote, ce CRTC-II est moins joueur mais permet en natif d'avoir des scrolls au pixel, deux curseurs, des fonctionnalités de partage d'écran, etc. mais nous n'avons pas eu le temps de jouer avec sous Basic.
OffseT nous montrait les derniers raffinements d'ACE sur son PowerBook: au menu, de la compatibilité encore plus poussée sur les timings. Il me disait qu'il n'y a eu qu'une seule version de l'Asic donc les petites différences ou pixels parasites qu'on peut voir apparaitre dans certains cas sont à priori dus aux straps sur la carte mère qui changeraient des pouillèmes de délais. Il nous a aussi montré en direct un branchement/arrachage de carte mémoire (virtuel) qui occasionne des effets rigolos sur la démo BarBar de Bénédiction. En effet, si sur un Plus nu la lecture de l'état d'impédance renvoie zéro (pratique pour effacer au LDIR), dès lors qu'on branche une carte cette valeur peut changer. Si on veut effacer l'Asic on préfèrera la pile ou une suite de LD mais rien qui repose sur la lecture !
Dream team héhé
Me concernant c'était l'occasion de voir Hwikaa en chair et en os! C'est marrant de bosser avec quelqu'un à distance et si nos échanges ont toujours été très pros, très clairs, cette symbiose est encore plus forte quand on est assis dans la même pièce! J'en ai donc profité pour lui faire une lecture commentée du code en cours et des outils développés pour améliorer toute la chaine de dev. En vrac :
- Rasm est capable depuis quelques versions d'utiliser des labels indexés avec des préfixes pour savoir dans quelle ROM se trouve le label. Le INCBIN peut lui aussi utiliser des variables numériques dans les noms ce qui permet de grosses boucles.
- Mes outils de sprites générés (transformer des graphismes en code pur) qui sont tous passés en multi-threading pour accélérer la compilation car quand on s'amuse à brasser des centaines de sprites, même le plus gros PC du moment finit par prendre plusieurs secondes.
- Un outil de réorganisation de code qui distribue tous les INCBIN dans la mémoire pour optimiser l'espace disponible.
Hwikaa nous a alors fait une démo de ses outils d'animation avec la marionnette en cours. Nous découvrons que pour faire bouger quelques pixels sur le CPC, il faut énormément exagérer les mouvements sur le dessin en haute résolution. Les mouvements sont irréalistes mais une fois sur le CPC, la magie opère et les mouvements sont hyper détaillés. On hallucine tous un peu devant la facilité avec laquelle il travaille mais en même temps hein, c'est un métier !
Les previews sont le cancer de la release
MacDeath a ressorti pour l'occasion son ordinateur spécial-party. Cet ordinateur n'est allumé qu'en meeting ce qui explique qu'à chaque redémarrage on se retrouve propulsé dans le passé! Mais le meeting est productif puisqu'un graph de plus est terminé pour une production mystère, héhéhé
Solorenzero, l'homme qui ne dort jamais a continué de bosser sur le jeu en Basic dont nous avons régulièrement des nouvelles lors de ses streams. Je sais que ce fut un peu la frustration de certains de ne pas voir de stream (coucou Golem, Sid, Siko!), que ce fut aussi notre frustration de ne pas pouvoir partager cette ambiance mais le week-end fut déjà très dense !
Après une bouffe dantesque le soir, les conversations sont nombreuses dans l'antre qui nous sert de meeting-room et je ne pense avoir participé qu'à une infime partie d'entre elles, l'occasion pour moi de passer le clavier à Hwikaa pour un autre point de vue de ces quelques jours :)
Hwikaa au clavier !
Si ma fille ne s'était pas renversé du thé bouillant sur les cuisses au moment où je partais, je n'aurais probablement pas atteint le quai juste deux petites minutes avant que mon train quitte la gare de Barcelona Sants. Et je n'aurais pas eu non plus à acheter un nouveau billet - deux fois plus cher que le précédent, sinon c'est pas drôle. C'est pas comme si j'étais déjà ultra nerveux.
Enfin installé dans le 10h10 à direction de Paris Gare de Lyon, je comprends en écoutant ce mioche insupportable assis dans le même carré que moi expliquer à sa mère résignée que, si, il sait très bien ce que c'est qu'un cheval mais que ça, dehors, c'est bel et bien un chevau, que l'Univers essaie de me faire passer un message : mon premier meeting CPC - aussi mini soit-il - ne va pas être aussi facilement accessible que je l'imaginais. Je décide de me cacher dans la capuche de mon hoodie, Airpods bien enfoncés dans les ouïes, et de ne me réveiller qu'à mon arrivée à Valence.
Là, un véhicule supersonique piloté par un Roudoudou sauvage - je l'ai reconnu parce que dans la vraie vie il a la même tête que sur Facebook et Twitch - vient me cueillir dans le froid glacial du Sud-Est de la France polaire (je crois, hein, en bon Lorrain je peux dire que je suis un peu une quiche en géographie). En guise de copilote, ni plus ni moins que Monsieur TotO. Ça me fait le même effet que lorsque j'ai vu Michael Jackson en concert ou quand je me suis retrouvé à vingt centimètres de Dominique Farrugia ; ces mecs sont des légendes, et je suis dans la même voiture qu'eux. Mode midinette = ON.
On va chercher OffseT à la gare (OffseT, quoi... LE OffseT !!! ?) et bim, en moins de temps qu'il n'en faut pour parler des abonnements aux salles de fitness, on se retrouve dans le duplex de Monsieur Oudou avec Solorenzero (mais pas dans un écran) et AsT. ? Putain, je rêve éveillé.
Je sors de mon sac les quelques bricoles que j'ai ramenées (des trucs exotiques comme du Rioja, des chocolats de la Casa Amatller ou un livre de coloriage "Posar color a Catalunya") tout en prenant bien soin d'oublier de sortir la cassette originale de Xevious pour 464 qui ne m'est d'aucune utilité et que je voulais offrir. Quel boulet.
Les conversations s'animent, on parle de tout et de n'importe quoi, on se montre nos trucs (euh...) dans l'antre de Roud'. C'est rigolo de voir l'envers du décor. Les CPC empilés dans le placard, les câbles, connexions et extensions dans tous les coins... Et j'ai enfin l'occasion de voir mon travail en cours bouger en vrai à l'écran. Ça fait plaisir.
Le sage parle
Et puis MacDeath arrive. Nom de Dieu. Ses vannes ont ponctué à peu près toutes les phrases prononcées durant ce week-end. Je m'en bidonne encore. Oui, je suis bon public. ^^
AsT me fait essayer ImpDraw v2 - que j'ai instantanément décidé d'adopter - et TotO nous montre un peu de sa sorcellerie hardware à base de triple CRTC. On s'extasie (et on se marre aussi) devant les photos d'urbex de Roud'. OffseT me montre ACE en vrai et on s'amuse à comparer les exécutions de certaines démos sur plusieurs configurations différentes...
Au bout d'un moment, je me dis que, bon, on est quand même venus pour pondre quelque chose, alors il est temps de se mettre au taf. Et quelle meilleure illustration de mon stress et de mon manque de préparation que cet instant de grâce où je réalise que... j'ai laissé mon laptop à la maison et que je n'ai qu'une tablette graphique! Dans mon malheur, mon habitude de garder mon taf dans le Cloud m'a permis de bosser un peu sur un des ordinateurs de Roudoudou et d'avancer sur mes animations. Mais j'aurais voulu en faire tellement plus et briller devant ces pointures du CPC. (NDRDD: Nan mais t'as brillé mon coco, on bavait tous devant ton showreel ^_^ )
On passe à table, Il Signore Rududu nous a fait de la pizza maison - option végétarienne pour moi, hein, boulet jusqu'au bout, faut pas déconner. J'ai encore la tête embrumée par la chaleur des boissons, des pizzas, des conversations jusqu'à pas d'heure, des vannes, de la douche, du lit de camp, des graphs montrés, du code exécuté, des anniversaires célébrés et, surtout, de la gentillesse omniprésente.
J'ai eu la chance de partager quelques heures de ce week-end de février 2020 avec des personnes qui sont bien plus que des manifestations physiques de noms légendaires ; ces mecs sont des génies, mais ils sont surtout adorables. Alors que le train du retour entre en gare à Barcelone, je ris de la nervosité que j'ai pu ressentir avant de me rendre à ce mini-meeting CPC organisé par Roudoudou. Et je me dis que, la prochaine fois, je serai prêt.
(Merde, je crois que j'ai oublié mon shampooing à l'argile douce dans leur salle de bain. Quel boulet. ?)
Bon, du coup, je ne suis resté que du samedi midi au dimanche midi, mais je crois que Solorenzero a des choses à dire aussi!
Au tour de Solorenzero
A la fin de l’Alchimie 13, Roudoudou nous avait promis l’organisation d’un meeting chez lui, puisqu’il avait enfin pu se poser sur Valence dans un appartement assez grand pour accueillir une petite tribu d’amstradistes. La date est fixée en début d’année, ce sera du 14 au 16 février.
Vendredi soir, un apéro est organisé avec AsT, Macdeath (venu en voisin et accompagné), Roud et Solorenzero (le SDF venu en squatteur), à base de Prosecco et de Saint-Joseph. Macdeath a ramené quelques bières pour compléter le tout, dont une qu’il avait spécialement fait venir de Chine pour l’occasion. Roud est d’une humeur particulièrement joviale à cause d’une certaine vidéo grivoise qui a fait tomber des têtes le jour de la Saint-Valentin, ça promet ! Les discussions s’allongent le temps que Marie arrive, mais nous n’avons pas encore atteint le bureau alors qu’elle va déjà se coucher. Opération silence plus ou moins respectée selon le niveau d’alcoolisation des participants. On a surtout l’occasion de se faire spoiler une animation vers la gauche à 25 FPS de sprites compressés sur un décor en poutres violettes. C’est minimaliste mais ça prend déjà 64 Ko ^^
Le dortoir
Samedi, démarrage en douceur en attendant l’arrivée des autres invités : TotO (venu avec une voiture pleine de hardware), OffseT et Hwikaa (venu exprès de Catalogne). Nous avons le droit à un cours de cuisine italienne by Roud sur la façon idéale de préparer la pâte à pizza, avec le même souci d’excellence qu’en programmation. Mais les pizzas, c’est pour le soir et il prévoit large ! Le temps que Roud aille chercher nos confrères à la gare, je présente à AsT le petit projet sur lequel je bosse depuis (trop) longtemps, qui est une remasterisation d’un jeu que j’avais codé avec un pote il y a 25 ans à l’époque où on bavait sur les JRPG SNES. Ce projet, c’est une sorte d’échauffement au Z80 que je souhaite terminer avant de passer à autre chose de plus ambitieux. A terme, je pourrais aussi ajouter les extensions prévues sur le jeu d’origine mais jamais sorties, j’ai encore les plans ! Ce jeu, rien de nouveau pour ceux qui ont déjà eu l’occasion de voir un de mes streams où j’en parlais (vue de dessus, tiles carrées, pas de scroll). On en profite pour regarder où faire quelques optimisations de timing et j’ai droit à un petit cours sur les transitions d’écran au registre 6 (en faisant passer la hauteur de l’écran à 0 le temps de l’affichage).
Mac arrive en « fin de matinée » comme prévu (vers 16h quoi) et le soir nous sommes rejoints par sa copine (et ses beignets polonais) et par Cicile (Triple A / Underscore) qui vient en voisine mais avec une spécialité bretonne. Après une démonstration de pizzaiolo par Roud et son apprenti TotO et un bel assortiment de desserts pour fêter l’anniversaire de Marie, on retourne dans le bureau pour la soirée. En prime time, Hwikaa nous fait une démo d’animation en grandeur réelle sur (le nouveau nom de) Flash de toutes les parties du corps d’un toon tout mimi même avec la palette limitée du CPC. Ca fait rêver, même si au final vous ne pourrez pas apprécier son travail à sa juste valeur puisque les jolis sprites seront réduits dans le jeu. Mais avec environ 64 pixels de haut animés à 25 images par seconde au demi-pixel, ça sera de loin la plus grande prouesse technique réalisée pour un jeu Amstrad.
Cela donne envie à Cicile d’interviewer notre guest star catalane dans le cadre d’une émission radio sur le développement d’un jeu vidéo oldschool avec des outils modernes mais des contraintes des années 80. Roudoudou nous glisse également quelques informations techniques : le jeu remplira les 4 Mo de ROM adressables sur CPC, ce qui devrait permettre des décors quasi-illimités (plus de 2000 écrans avec 65 000 tiles). Tout ceci sans aucune contrainte en termes de dimensions. Roud s’est créé comme à son habitude ses propres outils d’optimisation aux noms poétiques, ce qui lui permet de pondre une série de sprites compilés faisant une taille à peine supérieure à celle du rectangle qui le contient, le tout en gérant la transparence avec assez peu de NOP pour gérer simultanément plus d’une dizaine d’animations du même genre (et bien sûr, tout ça en un clin d’oeil). Le futur de l’Amstrad est en préparation et ça va tout casser !
(NDRDD: mais il spoile grave là!)
Ce jeu sera, pour simplifier, l'aventure de prince of persia qui se prend pour Saboteur dans des décors à la Metal Slug. Par contre, il ne sortira jamais car le grapheur doit produire une quarantaine de tiles par semaine pour le restant de sa vie ! De mon côté, j’ai profité de la soirée sur nos machines pour compléter le code de mon calcul de fractales, sans vraiment d’enthousiasme vu le nombre de NOP vers lequel c’est en train de tendre !
Dimanche, après un débat houleux pour savoir qui avait le plus ronflé la nuit passée, c’était matinée pantoufles et brunch puisque les premiers partaient le temps de midi. J’ai bossé sur ma routine d’affichage par symétrie d’un quart d’écran pour intégrer un dessin enregistré avec l’encre de chaque pixel. Histoire de finir avec un petit visuel, j’ai collé un petit cyclage des couleurs sur un tas de pixels d’un bel effet psychédélique. On a mis un terme à ce weekend fort sympathique en début d’après-midi, en envisageant une expansion hors des murs de l’appartement de Roud pour élargir la place allouée aux machines et faire venir plus de monde ! Toujours dans la même région viticole, vous serez les bienvenus à la micro-alchimie fin octobre, mais attention les places sont limitées !