Apprendre et programmer des jeux en Assembleur Z80 sur Amstrad CPC - Episode #5

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 20

  • @anttonmaptton8782
    @anttonmaptton8782 วันที่ผ่านมา

    Merci très clair et agréable à suivre. Vivement la suite !

    • @yreggor
      @yreggor  15 ชั่วโมงที่ผ่านมา

      Merci beaucoup :-)

  • @elronn58
    @elronn58 8 ชั่วโมงที่ผ่านมา

    Excellent merci pour le travail

    • @yreggor
      @yreggor  4 ชั่วโมงที่ผ่านมา

      Merci 🙂 !

  • @bertrand4652
    @bertrand4652 14 ชั่วโมงที่ผ่านมา

    Superbe vidéo. Ca me donne envie de programmer mon Amstrad.

    • @yreggor
      @yreggor  13 ชั่วโมงที่ผ่านมา

      Merci ! Ce commentaire me fait très plaisir. N'hésitez pas à vous lancer, vous ne le regretterez pas.

  • @zacland
    @zacland 12 ชั่วโมงที่ผ่านมา

    Tombé dessus "par hasard" ... 😅
    Super bien fait ! Merci !
    Surtout : IL FAUT CONTINUER ET NE RIEN LÂCHER !!! :3
    #Courage 😉

    • @yreggor
      @yreggor  4 ชั่วโมงที่ผ่านมา +1

      Merci pour ces encouragements 🙂 !

  • @cr5331
    @cr5331 วันที่ผ่านมา

    Nickel, là on commence à attaquer les choses sérieuses, rien de plus jubilatoire que de bouger son perso à l'écran 👍👍
    il y à 2, 3 trucs qui me dérangent, mais je t'embête pas
    continue comme ça, vidéos pas trop longues, bien expliquées, concises 💕

    • @yreggor
      @yreggor  วันที่ผ่านมา

      Merci ! Au contraire, si des choses ne te plaisent pas, n'hésites pas. En tant que débutant en assembleur, je suis preneur de toute remarque qui permette de m'améliorer. Et ca pourrait même servir à d'autres.

    • @cr5331
      @cr5331 วันที่ผ่านมา

      @@yreggor Disons que c'est pas que ça ne me plait pas.
      regarde ta BOUCLE_JEU
      tu fais un test clavier
      ensuite tu testes les touches exemple avec CP 242 suivi d'un CALL Z,GAUCHE
      à la fin de ta routine GAUCHE, tu fais un RET
      hors, ton programme vas reprendre APRES ton CALL Z,GAUCHE, soit au CP 243
      le problème de faire comme ça, c'est que tu peux avoir un "faux" positif, car au retour de ton RET, tu connais pas la valeur de A, du coup ça peut enclencher une condition qu'on ne veut pas
      il est plus judicieux de faire un JP Z,GAUCHE, et à la place de ton RET dans ta routine GAUCHE, tu le remplaces par un JP BOUCLE_JEU, ainsi ton programme vas reprendre au CALL &BB1B, recharger A, et réinitialiser ton FLAG
      quand on à plusieurs tests, et je pense qu'il vas en avoir d'autres par la suite , ça peut poser problème
      pour ce qui est du &BD19 je pense qu'en la plaçant à la fin de la routine AFFICHE_PERSO, ça devrait résoudre le problème de clignotement, sinon à la fin de la routine EFFACE_PERSO
      le fait de mettre le BD19 dans ta boucle principale, fait qu'il exécute en permanence le BD19, ralentis ta boucle, puisque tu attends à chaque fois la synchro vbl, ce qui fausse, je pense, ton keyboard speed
      voilà, rien de bien grave ;)

    • @yreggor
      @yreggor  วันที่ผ่านมา +2

      Merci pour tes remarques. Effectivement, avec tes suggestions, mon code sera largement meilleur. Merci beaucoup !

  • @jolletxavier7036
    @jolletxavier7036 11 ชั่วโมงที่ผ่านมา

    Super merci de donner envie aux gens de s'éssayer à l'assembleur Z80.
    Quelques points,
    - J'aurais fait un test de Carry JR NC,BOUCLE_JEU avec le vecteur de clavier tel qu'il est décrit... Comme A est modifié on ne sait comment si le CARRY=0, il pourrait y avoir des valeurs parasites d'après la description du vecteur...
    - Tu utilises peu JR, toujours JP... JR est plus rapide dans les boucles courtes (1 octet de moins à lire en mémoire). Perso je ne fais des JP que si JR ne marche plus (erreur de build) ou si il faut tester des flags non accessibles dans JR (positif/negatif par exemple)
    - CP fait la même chose que SUB sans modifier A. Donc c'est A - l'info dans CP (tu dis le contraire dans ta video). Pour checker le flag Zero ce n'est pas grave (0=A-Info=Info-A). Mais pour tester le Carry ou le Signe, ça inverse la logque.
    - Pour le BD19. Ca dépend un peu de ce qu'il y a à faire... Il faut faire tous les effacements / déplacements / affichages avant que l'écran n'affiche les nouveaux graphismes. Quand il y a beaucoup d'éléments et de logique, il est bon de préparer tout ce qu'il y a à faire avant de lancer le process de mise à jour de l'affichage (des fois en triant les éléments à gérer du haut vers le bas). Perso, dans ton cas, je l'aurais mis au début de la routine EFFACE_PERSO, comme ça l'effacement et l'affichage se font durant le VBL que lorsqu'il faut déplacer ton bonhomme et ta boucle d'attente n'est pas ralentie). Pour info, les tests de clavier BASIC se font tous les 300ms (lors des interuptions).

    • @yreggor
      @yreggor  4 ชั่วโมงที่ผ่านมา

      Merci beaucoup pour ces précisions. Ca va m'être très utile. 🙂

  • @cyrilf92
    @cyrilf92 วันที่ผ่านมา

    Super video, j'imagine qu'il faudrait rajouter du code pour supporter le joystick, le manuel n'est pas tres clair concernant les numeros a utiliser.

    • @cr5331
      @cr5331 23 ชั่วโมงที่ผ่านมา

      Le joystick sous le basic génére du code ascii , le vecteur utilisé devrait fonctionner avec
      En utilisant la commande
      Print asc("direction joystick")
      Il devrait te retourner la bonne valeur à tester

    • @yreggor
      @yreggor  15 ชั่วโมงที่ผ่านมา +1

      Oui, je n'ai pas creusé la question mais en y regardant rapidement, le vecteur &BB24 sert à tester les joysticks. A et H contiennent l'état du premier joystick et L l'etat du second. Les bits 0 a 5 de ces registres se placeront a 1 si les directions suivantes sont respectées ; haut, bas, gauche, droite, feu 2, feu 1. Exemple, pour un joy pointe vers le haut avec le bouton de feu enfonce, l'accumulateur aura ses bits 0 et 5 mis a 1.

    • @CopperFrance
      @CopperFrance 13 ชั่วโมงที่ผ่านมา

      Il y'a les codes ASCII suivants pour le joystick 0 : Gauche 8, Droite 9, Haut 11 et Bas 10

  • @cyrilf92
    @cyrilf92 6 ชั่วโมงที่ผ่านมา

    Après avoir vu la video d'un youtuber expliquant l'ASM sur Amiga je dirais que le call BD19 devrait se faire juste avant d'afficher et d'effacer.

    • @yreggor
      @yreggor  4 ชั่วโมงที่ผ่านมา

      Merci bien ! Je vais tester cela.