Cracktro en ASM [Programmez]

12 sujets de 1 à 12 (sur un total de 12)

  • Jul

      #288496

      Le magazine Programmez de juillet/août a 5 pages consacrées à la programmation d’une cracktro Amiga en assembleur (un cube tracé au Blitter). Ces 5 pages sont une première partie. La suite dans les prochains numéros.

      Il s’agit de l’étude cette cracktro :

      https://www.youtube.com//watch?v=UQ6R32HAp4Y

      Cette série de tutoriels est écrite par Denis Duplan, présenté comme “sociologue et développeur à ses heures”.

      D’autres tutoriels d’assembleur Amiga sont présents sur son site :

      http://www.stashofcode.fr

      Le code source de l’article de Programmez est téléchargeable à cette adresse :

      http://www.stashofcode.fr/code/coder-une-cracktro-sur-amiga-1/cracktro.zip

       

      Prédateur Chess | Amiga 500 + ACA500 | Amiga 1200 + ACA1233

      Jérôme

        #288506

        Ah super ça! Je vais aller jeter un oeil, car j’adore les cracktros. A l’époque, que ce soit sur St ou Amiga, je lançais souvent les jeux juste pour voir et surtout écouter la musique des cracktros.

        Ça me manque beaucoup aujourd’hui, car n’y en a pas sur whdload. Sur Falcon, ce n’est pas mieux, car j’utilise des versions patchées pour la compatibilité. Et là encore, les cracktros ont été virées.

        Je n’y connais rien en asm, mais je vais regarder ça avec un grand intérêt ! Un énorme merci !

        Amiga 1200+aca 1233n@40Mhz / Atari Falcon 030+CT60e@95Mhz/Atari STE 4Mo.

        Charles Attend

          #288536

          Merci de partager l’info 😀

          Je suis en plein retour vers l’ASM68K, ça tombe donc super bien ! Ce site contient pas mal d’infos intéressante … J’aime beaucoup la protection contre les “lamers” dans le scrolltext 😀

          A500 Rev6, A501, Wicher 500i, Indivision ECS, Gotek
          Entre Nivelles et La Louvière ...

          Sodapop

            #288633

            Excellente serie d’articles !!!
            Merci pour l’info !
            A noter que Frédéric Mazué, qui rédigeait (brillamment) dans l’ANT à l’époque de Commodore Revue, écrit aussi dans Programmez!

            A500 (1.3 / 2.0 / ACA500+) - A2000 - A1200

            Jérôme

              #288635

              Question con, mais comment se procure-t-on ce magazine? Ou comment consulter une version en ligne ?

               

              Merci

              Amiga 1200+aca 1233n@40Mhz / Atari Falcon 030+CT60e@95Mhz/Atari STE 4Mo.

              Sodapop

                #288636

                Réponse con… en kiosque ou sur leur site… 😉

                A500 (1.3 / 2.0 / ACA500+) - A2000 - A1200

                Mathdea

                  #288640

                  Merci pour l’info! Allez hop!

                  move.l #$4e714e71,(a0)+

                  ++

                  Amiga 500 Rev6
                  Amiga 500 Rev5
                  Amiga 1200 + MTEC68030
                  Amiga 4000/030

                  Anonyme

                    #288675

                    Message supprimé à la demande de son auteur

                    __sam__

                      #288687

                      @gibs_ c’est le principe du move quick. Ca prend un octet signé et l’envoie en 32bits sur le  registre destination. L’intruction tient sur 16bits seulement et s’execute en 2 cycles si je me souviens bien [nb: timing 68000]. Bref petite et rapide cette forme de move est préférée au movel.l #-1,d1 qui est à la fois plus lent et plus long (6 octets).

                      Samuel.

                      Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
                      A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
                      A500 Vampire V2+ ^8^ 🙂
                      (mais aussi TO8, TO8D, TO9. Groupe PULS.)

                      Jul

                        #288694

                        @Gibs :

                        Le 68k représente les nombres négatifs selon une technique appelée “complément à 2”.

                        Sur un octet :

                        00000001 = 1 (=%0001)

                        01111111 = 127

                        10000000 = -127

                        10000001 = -126

                        11111111 = -1 (=%ffff)

                         

                         

                        Prédateur Chess | Amiga 500 + ACA500 | Amiga 1200 + ACA1233

                        __sam__

                          #288697

                          @jul: 10000000 = -128 et pas -127. De même 10000001=-127 et pas -126. Tu as écrit le complément à 1 (et pas à 2) sauf pour le -1 final 😉

                          Donc reprenons:

                          00000000 = 0

                          00000001 = 1

                          00000010 = 2

                          00000011 = 3

                          00000100 = 4

                          01111111 = 127

                          10000000 = -128

                          10000001 = -127

                          111111100 = -4

                          111111101 = -3

                          11111110 = -2

                          11111111 = -1

                          Et là c’est bon. On constate même que le décalage à gauche (cad ajouter un 0 à droite) marche aussi pour les valeurs négatives (comparer 1,  2 et 4 puis -1, – 2 et -4).

                          En complément à 2 l’opposé d’une valeur v se calcule en faisant not(v)+1. Le not(v) inverse tous les bits. C’est le complément à 1. Et comme on ajoute 1 en plus, on appelle ca le complément à 2 (moyen mnémotechnique: cxomplément à 2 = complement à 1 + 1).

                          Au fait pourquoi  not(v)+1? C’est facile à retrouver. Comme dit plus haut not(v) a tous les bits inversés par rapport à v, donc v+not(v) = 1111….1 (que des 1). Or en binaire signé 1111111 vaut la valeur -1 (calculer 00000001+111111111 en binaire pour comprendre pourquoi ca donne 00000000).

                          Résumons v+not(v)=111…1=-1. Si on réarrange le tout on retrouve -v=not(v)+1. CQFD.

                          Samuel.

                          Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
                          A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
                          A500 Vampire V2+ ^8^ 🙂
                          (mais aussi TO8, TO8D, TO9. Groupe PULS.)

                          thellier

                            #288753

                            Il y a beaucoup plus simple comme raisonnement:
                            11111111 est le dernier chiffre possible (tout les bits sont au max cad a 1)
                            Donc 11111111+1=0
                            donc 11111111 = -1

                          12 sujets de 1 à 12 (sur un total de 12)

                          • Vous devez être connecté pour répondre à ce sujet.

                          Forums AmigaOS, MorphOS et AROS Développement Cracktro en ASM [Programmez]

                          Amiga Impact