Coder un sine scroll sur Amiga (1/5)

Un des effets les plus mobilisés par les coders sur Amiga a été le sine scroll, c’est-à-dire le défilé de texte déformé en modifiant l’ordonnée de colonnes de pixels successives selon un sinus, comme par exemple dans cette intro du groupe Falon :
Un beau sine scroll par Falon sur Amiga 500, mais pas au pixel
Le must est le one pixel sine scroll, où chacune de ces colonnes est affichée à une ordonnée spécifique. Toutefois, produire un tel effet est très consommateur en temps de calcul, comme nous le montrerons en y procédant d’abord au seul moyen du CPU. Pour étendre l’effet, nous déchargerons le CPU en sollicitant deux coprocesseurs graphiques : le Blitter et le Copper.
Cet article peut être lu par n’importe qui, ayant été rédigé pour qui n’aurait jamais codé en assembleur 68000, et encore moins pour attaquer le hardware de l’Amiga.
Cliquez ici pour télécharger l’archive contenant le code et les données du programme présenté ici.
Cette archive contient plusieurs sources :
  • sinescroll.s est la version de base dont il sera question jusqu’à ce que nous optimisions ;
  • sinescroll_final.s est la version optimisée de la version de base ;
  • sinescroll_star.s est la version enjolivée de la version optimisée.
Cet article est le premier d’une série de cinq. Nous allons voir comment installer en environnement de développement sur un Amiga émulé avec WinUAE et coder la Copper list de base pour afficher quelque chose à l’écran.
NB : Cet article se lit mieux en écoutant l’excellent module composé par Nuke / Anarchy pour la partie magazine de Stolen Data #7, mais c’est affaire de goût personnel…
Mise à jour du 12/07/2017 : Suppression du positionnement de BLTPRI dans DMACON pour améliorer les performances.
Mise à jour du 17/07/2017 : Désactivation de la fonctionnalité Save marks dans ASM-One pour faciliter l’édition mixte PC / Amiga.
Click here to read this article in english.
Mise à jour du 30/05/2018 : Ceux qui utilisent Notepad++ peuvent cliquer ici pour récupérer une version améliorée de l’UDL 68K Assembly (v4).
Mise à jour du 16/06/2018 : StingRay / Scoopex a permis de corriger des co(q)uilles, d’ajuster du vocabulaire et d’ajouter des détails pour la comptabilité. Merci à lui !
Continuer la lecture de « Coder un sine scroll sur Amiga (1/5) »
Coder un sine scroll sur Amiga (1/5)

Coder une cracktro sur Amiga (2/2)

Cet article est le second, et donc le dernier, d’une série consacrée au développement d’une cracktro sur Amiga. Dans le premier article, nous avons vu comment mettre en place un environnement de développement en assembleur 68000 dans le contexte d’un émulateur Amiga, et nous sommes rentrés dans une présentation d’un des deux coprocesseurs graphique, le Blitter, exemple à l’appui. Ici, nous présenterons pareillement le Copper et nous conclurons sur l’intérêt de revisiter ce passé.
Cracktro sur Amiga
Pour rappel, vous pouvez visualiser un enregistrement de la cracktro sur YouTube ou un parfait portage en HTML5 sur Flashtro. Quant au code (à peine un gros millier d’instructions en assembleur 68000), vous pouvez le télécharger en cliquant ici.
Continuer la lecture de « Coder une cracktro sur Amiga (2/2) »
Coder une cracktro sur Amiga (2/2)

Coder une cracktro sur Amiga (1/2)

A l’occasion de la sortie du deuxième documentaire de la formidable série From bedrooms to millions cette fois consacré à l’Amiga de Commodore, prenons un instant pour revisiter ce qui fut un des nombreux aspects de la scène de l’époque : la production de cracktros. Nous prendrons pour exemple une cracktro codée il y a un quart de siècle pour le célèbre groupe Paradox :
Cracktro sur Amiga
Cette cracktro a été choisie parce que son code a été retrouvé et qu’elle exploite le Blitter et le Copper, deux des coprocesseurs de l’Amiga dont il sera ainsi possible de souligner l’originalité de l’architecture.
Noter qu’il est possible de visualiser un enregistrement vidéo du résultat produit sur YouTube. La cracktro fait même partie de la sélection de portages en HTML5 de We Are Back, mais les auteurs de ce portage ont fait l’impasse sur l’effet le plus notable : l’utilisation d’une police à espace variable… Par contre, leurs homologues de Flashtro ont parfaitement réussi.
Continuer la lecture de « Coder une cracktro sur Amiga (1/2) »
Coder une cracktro sur Amiga (1/2)