home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !MAGS / BAZAAR / BAZAAR4.ZIP / BAZAAR4.MSA / ARTICLES / MUSIC_ST < prev    next >
Text File  |  1990-01-01  |  6KB  |  138 lines

  1.                  PROGRAMMATION EN GFA BASIC 3.5
  2.                       LES MUSICS SOUNDCHIPS
  3.                      -----------------------
  4.  
  5.  
  6.      Ha... voilà ma rubrique... où personne pourra, dans l'équipe 
  7. de  rédaction contredire le grand Golden Fingers,  sous  peur  de 
  8. rendre  totalement fausses les informations ci-dessus  données... 
  9. Hé oui...  on vas parler des musics soundchips...  so,  the  show 
  10. must go on...
  11.  
  12. I - Qu'est ce qu'une musique sound-chip?
  13. ----------------------------------------
  14.      Une musique soundchip est le type le plus répandu de musique 
  15. sur ST(f),  mais qui tente (heureusement) à disparaitre (tout  du 
  16. moins dans les démos...  En effet,  ces musiques sont entièrement 
  17. générés par le processeur sonore Yamaha sur trois voies que  tout 
  18. ST (et Falcon,  par ailleurs...) possède... A l'opposé, se trouve 
  19. les musiques soundtracks (voir autre article...) qui elles,  sont 
  20. composées  d'instrument digitilasées sur quatre voies...  On  les 
  21. appelle, dans le jargon des démos et meme du jeu, les zax bip-bip 
  22. inutile donc de vous faire un dessin...  c'est à cause d'elle que 
  23. le  ST  fait  si mauvaise figure par rapport  à  l'Amiga  (et  on 
  24. comprend les Amigaga quand on voit les zax (soundtracks) dont ils 
  25. se targue...) Mais bon...  voilà...  elle ont un avantage énorme: 
  26. elle  ne prennent pas (ou peu de temps machine...),  autant  dire 
  27. que l'on à presque la totalité du temps de libre, ce qui est loin 
  28. d'etre le cas pour les digits et modules (sur ST). C'est parceque 
  29. le  temps  machine  est  primordiale en  GFA  que  je  vais  vous 
  30. apprendre à les utiliser... 
  31.  
  32. II - Comment les utiliser?
  33. --------------------------
  34.      En général, elle sont constitués de 3 routines  différentes:
  35. une  d'initialisation,  un  player appelée  toute les VBL (chaque
  36. fois que l'ioniseur d'écran a  fini  d'envoyer  les électrons par
  37. le tube cathodique) & une autre qui stoppe le son (bien que cette
  38. dernière soit rarement utilisée...).Il se peut qu'il y ai +sieurs
  39. musiques dans le  meme  fichier (comme  pour  les musax de madmax
  40. (le tristement célebre)) pour une taille allant de 4 à 20 Ko max.
  41. Le but de la manoeuvre étant d'initialiser la zic et  de la jouer
  42. tout les 50eme de seconde... tout ça serait bien si il n'y  avait
  43. pas différent types de fichiers soundchips (à la guise des zicos) 
  44. La  routine  fournie  propose de jouer la  plupart  des  musiques 
  45. existente,  en  faisant  simplement changer ce  que  l'on  appele 
  46. l'init  et  la valeur VBL (init% et vbl% dans  le  programme...), 
  47. voilà les offsets des principaux formats:
  48. -Megatizer (Jedi/SCT1),  Mad Max (/TEX from The Union),  An  Cool 
  49. (/TCB), Ens et certaines Lap (/Next):   
  50.                          INIT:0    VBL:8
  51. -Count Zero (/Electronic Image from Inner Circle):
  52.                          INIT:0    VBL:6
  53. -Big  Alec  (Delta  Force from The  Union),  Tao  (/ACF)  et  Ben 
  54. Daglish:                 INIT:0    VBL:4
  55. -Reanimators (Mr Frazer, Beast):
  56.                          INIT:0    VBL:10
  57. - Lap 1991 (rare...):    INIT:0    VBL:22 
  58. - David Wittacker (offsets changeant très souvent...):
  59.                          INIT:0    VBL:0E (en général...)
  60.  
  61. Voilà pour les plus connues...
  62. passons au listing,  il est ci-dessous ainsi que sur la disquette 
  63. (que ne ferais t'on pas pour nos lecteurs...)
  64.  
  65. III - La routine...
  66. -------------------    
  67.  
  68. CLS                     ! éfface l'ecran
  69. init%=0                 ! valeur d'initialisation de la musique
  70. vbl%=6                  ! valeur en vbl
  71. '
  72. FILESELECT "a:\*.mus","",file$     ! sélectionne un fichier...
  73.   IF EXIST(file$)=0       ! il existe?
  74.     bye_bye               ! non, alors aurevoir...
  75.   ENDIF                   ! c'est clair...
  76.   OPEN "i",#1,file$       ! ouvre le fichier
  77.   len%=LOF(#1)            ! prend la taille
  78.   RESERVE FRE(0)-len%     ! réserve de la mémoire
  79.   music%=MALLOC(len%)     ! attribue la mémoire
  80.   BGET #1,music%,len%     ! charge le fichier 
  81.   CLOSE #1                ! ferme le fichier: c+ propre
  82.   DIM r%(16)              ! registres A(X) et D(X) pour RCALL
  83.   super%=GEMDOS(&H20,L:0) ! passe en mode superviseur
  84.   POKE &H484,BCLR(PEEK(&H484),0)  ! coupe le clic du clavier
  85.   ON ERROR GOSUB bye_bye  ! en cas d'erreur ou
  86.   ON BREAK GOSUB bye_bye  ! d'arret pendant l'éxecution
  87.   HIDEM                   ! cache la souris
  88.   OUT 4,18                ! et on la bloque
  89.   play(1)                 ! joue la premiere musique
  90. RETURN
  91. PROCEDURE play(x|)
  92.   IF LONG{&H4DA}=music%+vbl%
  93.     GOSUB music_off
  94.   ENDIF
  95.   '
  96.   r%(0)=x|
  97.   RCALL music%+init%,r%()
  98.   {&H4DA}=music%+vbl%
  99. RETURN
  100. PROCEDURE music_off      ! procédure d'arret de la musique
  101.   {&H4DA}=0              ! VBL à zéro...
  102.   WAVE 0,0               ! coupe le générateur sonore
  103. RETURN                   
  104. PROCEDURE bye_bye        ! sortie...
  105.   CLS                    ! ???
  106.   GOSUB music_off        ! on éteint la musique
  107.   POKE &H484,BSET(PEEK(&H484),0)! remet le clic
  108.   ~GEMDOS(&H20,L:super%)        ! on repasse en mode utilisateur
  109.   ~MFREE(music%)         ! libère la mémoire...
  110.   RESERVE fre%           ! et on rend la mémoire du début
  111.   ON ERROR               ! on ré-installe la routine d'erreurs GEM
  112.   ON BREAK               ! annule le sauit en cas de coupure
  113.   SHOWM                  ! coucou revoila la souris
  114.   OUT 4,8                ! et en plus elle bouge
  115.   '
  116.   EDIT                   ! salut et bonne année a tous
  117. RETURN
  118.  
  119. IV - La fin...
  120. --------------
  121.  
  122. Voilà... c'est tout... on pourrait me faire remarquer qu'il n'y a 
  123. pas  de routine assembleur mais que l'on utilise tout de meme  un 
  124. RCALL  (équivallent  de  CALL  mais  avec  accès  aux   registres 
  125. d'adresse et de données (A(X) et D(X))...) mais c'est faux,  il y 
  126. en  a bien une...  celle contenue dans le fichier  musique...  hé 
  127. oui... vous croyez tout de meme pas que l'on vas la réécrire deux 
  128. foix, non mais...
  129.  
  130. Bon... alors une question qui vous trote dans la tete? passez sur 
  131. RTEL en bal GOLDEN FINGERS... I'm waiting for you...
  132.  
  133.  
  134.  
  135.                
  136.                     Golden Fingers/Supremacy pour Bazaar IV n°1     
  137.                     routine de zax dans le domaine public...
  138.