1798Fermer1800
PolluxLe 01/09/2003 à 23:46
Euh encore une fois j'ai l'impression qu'on peut améliorer significativement l'algorithme en redéfinissant la variable _fcounter1 : tu fais une nouvelle variable _fcounter_extended1 qui vaut "_fcounter1 - play_frequency - (frequency_voice1)/2", et ensuite tu fais :

play:
  lea _fcounter_extended1(pc),a0
  move.w frequency_voice1(pc),d0
  bne.s son_1
  add.w (a0),d0
  bcc.s son_1
  sub.w play_frequency(pc),d0
patch_playmode_1
  eori.b #123,($60000E)    ; à patcher en 1 en stéréo, 3 en mono
son_1
  move.w d0,(a0)
  subq.w #1,_ucounter1  ; et tu peux l'améliorer en mettant _ucounter1 juste après _fcounter1
  rts


Tu peux faire une fonction de mise à jour de _fcounter_extended1 à chaque fois que tu joues une nouvelle note.