Cracktro en ASM [Programmez]

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

  • Jul

    • Messages : 1110
    #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 | iBook G4 - MorphOS | Amiga 500 + ACA500 et Vampire 2+ | Amiga 1200 + ACA1233

    Jérôme

    • Messages : 246
    #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 [email protected] / Atari Falcon [email protected]/Atari STE 4Mo.

    Charles Attend

    • Messages : 33
    #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

    • Messages : 993
    #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

    • Messages : 246
    #288635

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

     

    Merci

    Amiga 1200+aca [email protected] / Atari Falcon [email protected]/Atari STE 4Mo.

    Sodapop

    • Messages : 993
    #288636

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

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

    Mathdea

    • Messages : 236
    #288640

    Merci pour l’info! Allez hop!

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

    ++

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

    Anonyme

    • Messages : 971
    #288675

    Message supprimé à la demande de son auteur

    __sam__

    • Messages : 2925
    #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

    • Messages : 1110
    #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 | iBook G4 - MorphOS | Amiga 500 + ACA500 et Vampire 2+ | Amiga 1200 + ACA1233

    __sam__

    • Messages : 2925
    #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

    • Messages : 688
    #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