Mois : novembre 2023

Un clavier Amstrad en USB

Introduction

Je rêve depuis longtemps de pouvoir utiliser un clavier CPC464 (pour la couleur des touches et la nostalgie) en USB.

Je ne suis pas le seul à avoir eu cette envie. The Retro Stuff Guy en a même fait une vidéo.

Il utilise le kit de conversion de Tynemouth Software qui n’existe malheureusement plus et qui en plus n’était compatible qu’avec un clavier à membrane. Le CPC dont je peux récupérer le clavier est un clavier de la Revision 1. Plus solide (pas de membrane, mais un circuit imprimé) et en QWERTY.

connecteur.

Je me suis donc tourné vers une solution à base de Arduino Leonardo.

Matériel

Pourquoi l’Arduino Leonardo et pas un Uno plus compact ? Pour ces entrées/sorties. Le clavier a besoin de 19 connexions pour sa matrice.

newimage.

Par exemple, en appuyant sur la touche k, les lignes 8 et 15 sont connectées. Au programme tournant sur l’Arduino de comprendre cela et d’envoyer l’appui de la touche k via l’USB.

L’autre raison d’utiliser un Arduino Leonardo, c’est que Mavalero a déjà fait tout le programme pour moi.

Le connecteur du clavier semble assez standard (2.54mm de séparation entre chaque pin, 20 pins) mais possède des détrompeurs. J’ai donc du trouver un adaptateur pour pouvoir connecter mes câbles. J’ai trouvé mon bonheur chez Reichelt via leur SPL 20.

newimage.

Avec cet adaptateur, le reste du câblage devrait être beaucoup plus simple.

Après réception du dit adaptateur, il se fait qu’il ne « rentre » pas… Les pins du clavier sont trop fines et l’espacement est sensiblement plus petit…

Aux grands maux, les grands remèdes… Je couperai donc le câble original et fixerai des connecteurs Dupont des deux côtes (afin qu’il fonctionne encore sur la carte mère originale si un jour j’arrive à la refaire fonctionner).

On peut donc relier les fils vers l’Arduino selon l’exemple de Mavalero et la partie hardware est terminée.

newimage.

Logiciel

Pour la partie software, je suis parti sur le code de alpinedelta que j’ai adapté au CPC.

Le code parle de lui même.

Conclusion

J’ai maintenant un clavier Amstrad qui fonctionne en USB et sans avoir réalisé quelque chose de définitif sur le CPC. Rien n’a été détruit. Super !

Mais est-ce qu’il n’y aurait pas moyen d’aller un peu plus loin ? Il reste encore plein de place dans le clavier… Est-ce qu’on ne pourrait pas faire un CPC Next avec un petit FPGA ?

Amstrad – Sudoku SD2000

Une petite curiosité Amstrad que je n’avais jamais vue.

Bien que le mode d’emploi soit en 6 langues (dont le français), toutes mes recherches sur Internet tombent sur des sites italiens.. C’est d’ailleurs là que j’ai acheté mon exemplaire. Cette page devient donc, par défaut, la page en français la plus complète sur le SD2000.

Sur Amazon, on trouve un autre modèle de chez Amstrad, le SD1000 qui, lui, semble tactile.

J’y ai joué 30 secondes et remis dans la boite. Les touches en gomme ne sont pas agréables. Il est nécessaire d’appuyer très fort pour voir le bousin réagir. Une grille imprimée sur une feuille de papier reste plus conviviale.

Cyrille « Ayor61 » Gouret possède une famiclone (clone de la Famicon) dont la boite a un air de famille avec le Sudoku: le NN-900. Sur la page BootlegGames, ils mettent en doute le fait que l’entreprise qui a sorti cette console soit notre Amstrad. Il doit en être de même pour le SD2000. Je continue mes recherches…

Donc: rigolo à posséder, mais sans aucun autre intérêt.

Compte rendu de la Benediction 2023

La Bénédiction 3 est la 3ème édition de la plus grosse demoparty CPC actuelle. (en même temps, il n’y en a pas beaucoup non plus)

Elle succède à la ReSeT organisée à Coutances déjà organisé par Olivier « Eliot » Floquet.

J’y allais avec une certaine appréhension. Je suis un vieux demoscener PC et la scène CPC m’est fortement inconnue. Je connais, de nom, une bonne partie des gens et ait chatté avec beaucoup d’eux.

Et même si j’en ai rencontré certains qui seront présent à la Benediction en convention ou demoparty (coucou Hervé « Tom et Jerry » Monchatre, Emmanuel « Genesis8Bit » Roussin, Thomas « Zisquier » Bressel et Julien « Targhan » Nevo), je ne fais pas, encore, partie de leur monde.

Comment allais-je donc être reçu ?

Le monde de l’Amstrad est rempli de conflits1. Membres de groupe Facebook ou de Discord, utilisateurs de forum, joueurs, développeurs de jeux, démomakers; tout est excuse pour se diviser. La scène Commodore 64 doit bien se gausser de nos tensions.

Une étiquette est vite collée sur la tête des gens et il est compliqué de s’en détacher. La communication virtuelle n’aidant évidemment pas.

Moi-même, j’avais trop vite catégorisé Richard « TotO » Gatineau dans le camp des infréquentables suite à une réponse sur un forum à mon propos. Mais, à la Benediction, j’avais à peine discuté 5 minutes avec lui que je m’étais rendu compte de mon erreur: ce type est adorable et une des personnes les plus captivantes que j’ai rencontrées à ce meeting.

Ça, c’est pour l’introduction. Passons maintenant aux choses sérieuses: le compte rendu.


Jeudi

Je pars avec Stéphane « Shaan1974 » Liuzzi, l’un des musiciens de Crazy Piri et un de ceux qui m’ont fait entrer dans la scène PC il y a presque 30 ans. Nous partons de Belgique jeudi soir. Shaan a un peu moins d’une heure de retard. Cela aura pour conséquence de rouler plus de nuit que prévu et de me faire rater les huitres que j’espérais manger ce soir (Shaan, je te pardonne malgré tout). La pluie fait son apparition très vite… et avec le manque de lumière sur l’autoroute, on ne peut pas dire que la France nous fait un bon accuei.

Nous dormons dans un B&B à Honfleur, histoire de ne plus avoir trop de trajets le lendemain matin


Vendredi

Bonne nuit. Nous sommes frais comme des gardons (qui est un poisson d’eau douce malgré notre proximité de l’océan) et prêts à parcourir les dernières 90 minutes qui nous séparent de la demoparty.

Nous sommes accueillis par Eliot et l’équipage sudiste composé de David « AsT », Édouard « roudoudou » Bergé et TotO. Ils ont traversé la France du sud-est au nord-ouest pendant la nuit et ont dormi quelques heures sur le parking de la Salle polyvalente de Gavray sur Sienne. Respect. Mon âge m’interdit ces choses-là.

Nous nous installons rapidement, discutons un peu.

Nous nous asseyons face à Genesis8bit et Tom et Jerry et à côté de cRACKy (le cracker, pas celui de cocOOn), Sylvestre « Supersly », le roi de la flashouille nous rejoindra vite de l’autre côté. Nous sommes en terrain connu, même si le sentiment d’intrus est toujours présent.

Genesis8Bit nous annonce qu’il est content de la concurrence. Cela me rassure et je le prends pour un compliment. Je ne me considère pas comme un concurrent. Genesis8Bit informe la communauté Amstrad sur son blog depuis plus de 20 ans et encore bien avant sur le group de newsgroup comp.sys.amstrad.8bit. Je ne tiendrai jamais aussi longtemps 2 (et c’est une des raisons pour lequel AMSnews a aussi des rédacteurs – coucou kukulcan, DarkSteph, kenshiro72, CheshireCat et BDCIron – pour des articles de fond qui me permettent de me tourner les pouces certains jours).

L’intarissable TotO vient nous accoster et la discussion se tourne vite sur les boîtes de Alcon2020 et de ces cartouches au format GX4000. Nous cherchons toujours une solution pérenne pour les futurs jeux de Crazy Piri et je suis convaincu que cela doit passer par là. On reste sur du presque standard (les cartouches fonctionnent aussi sur old via l’adaptateur plus4cpc) et il n’y aura pas de problème d’approvisionnement futurs à la différence des disquettes 3 pouces.

Hicks me remet mon exemplaire de Memory Full, son livre sur la demoscène Amstrad prè-1997. Cela me permettra d’en apprendre encore plus sur les débuts de la scène Amstrad. Lors de la dédicace, Hicks a sans doute dû me confondre avec quelqu’un d’autre, mais cela fait plaisir.

C’est déjà le moment de manger. Sommes nous réellement à une demoparty ? Entre-plat-dessert à chaque repas. Menu alléchant (et sain). Où sont passées les crasses frites de mes 20 ans ? Vieillir a quelques fois du bon. Par contre, le fait d’être en all-inclusive n’empêchera encore de manger des huitres. Si c’est pas dommage, si près de la mer.

Malgré la fausse annonce de Serge « Longshot » Querné dans les inscriptions (mais qui donc s’est fait passé pour lui ? Ayant eu quelqu’un s’étant fait passer pour plissken dans les commentaires de Amsnews et l’ayant démasqué rapidement, j’ai ma petite idée) et le fait qu’il ait sorti DSC #4 une nouvelle démo montrant la supériorité de l’émulation du CRT1 de AMSpiriT, il était virtuellement présent pendant tous le weekend. Lundi soir, certains émulateurs avaient déjà été corrigés afin de faire tourner cette nouvelle démo.

En bout de table, Adrien « PulkoMandy » Destugues sort toutes ses cartes pour le CPC. Je ne pensais pas que les extensions CPC étaient si nombreuses. Tout ceci manque de publicité.

Philippe « OffseT » Rimauro et Gilles « Zik » Rimauro arrivent en cours d’après-midi. Cela fait plaisir de voir un vieux portable mac sous MorphOS et de rencontrer, encore une fois, des légendes.

Sim1, polonais domicilié dans le sud-ouest de la France depuis de nombreuses années, est fidèle à la réputation de ses compatriotes. Il a amené beaucoup d’alcool avec lui. Et vu la faible consommation d’alcool ce weekend (à mon grand désespoir), il m’est donc plus que sympathique. Sim1 est un amigaiste et est venu présenter un super graphe sur CPC.


Samedi

Arrivée en fanfare de Zisquier, le gentil metalleu. Le Goldorak qu’il fait avec Eric « Titan » Cubizolle approche à grands pas (officiellement le 28 janvier 2024)

Je fais la connaissance de Breiztiger, grand fan comme moi du MiSTer FPGA, qui me montre ses modifications dans le core Amstrad. Il fait tourner la plupart des démos le bougre ! Vivement que ces modifications soient acceptées par le mainteneur. Breiztiger est également un des trois utilisateurs de mon site RetroANA qui permet de gérer sa collection de jeux CPC. Cela fait plaisir de mettre une tête sur un pseudo.

Frédéric « Golem13 » Poesy nous rejoint avec une grosse télévision qui met bien en valeur son Ghosts’n Goblins.

Eliott présente sa démo. Il s’agit de l’unique démo en compétition à la Bénédiction. Cela me donne vraiment envie de me bouger le cul et d’en faire une aussi (à mon humble niveau). J’ai quelques idées en tête, il ne reste plus qu’avoir assez de temps pour les réaliser.

AsT nous montre également la sienne, mais n’aura pas le temps de la finir. Cela sera pour la prochaine fois.

Juste avant de diner (déjeuner pour les Français), nous avons droit à une présentation de Memory Full par Hicks. Cette présentation aurait mérité d’être diffusée en même temps en streaming (ou au minimum, être enregistré). Hicks nous dévoile ses intentions lors de la création de son livre et les échanges avec son public auraient permis de clarifier certains trucs avec les méfiants.

Arrivée de Nicolas « Nicky One » Ader et Jérôme « Bouba » Bleton. Des anciens, parait-il. Honte sur moi: je ne les connais pas, mais ils ont l’air sympathiques.

Juste avant le repas du soir, j’ai une discussion super intéressante avec Frédéric « Fredouille » Coste et sa correction de son émulateur Caprice4ever pour faire fonctionner DSC #4. Qu’est-ce que j’adore le monde de l’émulation et ses développeurs passionnés.

Pour le souper, nous avons droit à la Roudoudou’s Pizza Demo Party. Sans doute une tradition.. je suis trop jeune dans le milieu pour le savoir.

Je vais dormir un peu avant minuit et suivrai la présentation du jeu Mighty Castle Adventure de mon lit. Les fans de Castlevania seront heureux de voir ce jeu arriver sur leur CPC.


Dimanche, dernier jour

Je me réveille vers 7h30. Tout le monde ou presque dort encore. Seul Kris le matinal et Shaan sont déjà réveillés. Le changement d’heure d’hiver nous a permis de dormir une heure de plus.

Le petit déjeuner (le déjeuner en Belgique) s’étendra un certain temps sur des discussions philosophiques.

Tanguy « Toug » Barré et Franck « Wild » Mangematin arrivent en fin de matinée. Bel échange. Messieurs, l’année prochaine, vous n’avez pas d’excuse: vous restez plus longtemps !

Nous partons juste avant le repas de midi pour rejoindre notre Belgique natale non sans avoir fait un dernier tour des participants à cette demoparty.


Conclusion

Toutes mes félicitations à Eliot pour cette superbe demoparty. L’organisation était vraiment au top. Mes excuses pour ceux que j’ai oubliés. Je n’ai malheureusement pas eu le temps de parler avec tout le monde.

Jamais, je ne me suis senti mis à l’écart et je conseille à tous les amateurs de CPC de (re)venir en 2024. S’il y a un endroit où les conflits pourront se dissiper, c’est bien là.

Vivement l’année prochaine ! Et je ferai les 4 jours !

Bonus: petit tour de table

  1. Ce texte avait été écrit avant la restructuration de AMSnews.fr vers AMSnews.be ↩︎
  2. non ↩︎

Décortiquons les roms System 1 – Pas à pas en Basic

Le firmware (et le basic) de notre CPC a été désassemblé et commenté il y a une dizaine d’années et mis sur GitHub par Mike « Bread80 » Sutton il y a 2 ans.

Ce code est un exemple d’ingénierie et de bonnes idées. Notre basic n’était pas réputé pour sa rapidité pour rien.

Cette nouvelle rubrique ira donc décortiquer des parties de ces roms System.

L’idée n’est pas de moi (qui a dit: « comme d’habitude ? ») mais de Stéphane « Siko » Sikora qui expliquait le fonctionnement de la touche COPY sur open.amstrad.info.


Premier épisode: un pas à pas en Basic

Pour mon émulateur CrocoDS, j’ai voulu implémenter un débogueur pas à pas du Basic

Pas certains que cela soit indispensable, mais ça me faisait envie et c’est le plus important.

Le pas à pas existe déjà en Basic grâce à la commande TRON.

Alors, vous me direz, pourquoi implémenter une fonction qui existe déjà ?

CrocoDS possède son propre éditeur et indiqué juste le numéro de ligne lors de l’exécution n’est pas ce que j’appelle du debugging… Par contre, c’est une bonne piste pour ce que je veux.

execute_line_atHL (ligne 7245)

Le basic exécuté ligne par ligne via la fonction execute_line_atHL.

Si le trace_flag est à 1, il exécute la fonction do_trace qui affiche le numéro de ligne entre crochets.

À l’emplacement de la fonction do_trace, je place donc l’opcode 0xED,0xFA que le Z80 ne connait pas.

Dans ma fonction des décodages des instructions Z80, j’intercepte donc cet opcode et récupère le numéro de ligne qui se trouve dans la variable address_of_line_number_LB_of_line_of_cur.

Il ne me reste plus qu’à m’amuser avec ce numéro de ligne.

Je pourrais afficher toutes les variables Basic en mémoire à ce moment, mais je ne l’ai pas encore fait.

Nous remarquons aussi que le basic perd 7 NOPs dans chaque ligne Basic pour tester ce TRON qui n’a pas dû être utilisé souvent.


Fin du premier article sur les ROMs System. Est-ce que vous voulez en voir plus ou vous trouvez cela trop chiant ? N’hésitez pas à me critiquer 🙂

Retour de la RGC

OldSchool is Beautiful / Koopa

Ce weekend se tenait la 15ème édition de la RGC, convention rétrogaming. Comme tous les ans, c’est un plaisir de revoir des membres de la famille rétro.

Niveau CPC,

  • une preview du Papy Commando pour GX4000 par Carl-Stephane « Fano » Berquez. Les bases du jeu sont là. J’espère que le projet redémarra assez rapidement
  • une preview de l’excellent Mighty Street Fighter par Alain « MaitreJoeGGP » Plantevin. Ça bouge bien. Nous attendons la version 2 joueurs.
  • une preview de Octopus 21 pour GX4000, 3ème version du jeu Game & Watch pour notre CPC. Réalisée ici par Cyrille « Ayor61 » Gouret. Bientôt disponible sur sa page GameJolt.
  • une preview d’un hack de Kung Fu Master pour GX4000 des GGP.
  • une preview de la carte multi crtc de Eric « ricolaoz » Cottencin.
  • une annonce de Amstrad Cent pour Cent #51 par Stéphane « darksteph » Grull. (la couverture est trop belle)
  • un joli scroll RGC de Claire CheshireCat, prémices d’une future démo ?
  • rien de la part des Crazy Piri mais mon petit doigt me dit qu’ils sortiront quelque chose d’ici la fin de l’année pourtant.

Plein de bonnes choses donc !

Encore une fois, une superbe édition organisée par l’association Retro-gaming Connexion.

Prochaine rencontre, à l’AC 2024 ?