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 >
Wrap
Text File
|
1990-01-01
|
6KB
|
138 lines
PROGRAMMATION EN GFA BASIC 3.5
LES MUSICS SOUNDCHIPS
-----------------------
Ha... voilà ma rubrique... où personne pourra, dans l'équipe
de rédaction contredire le grand Golden Fingers, sous peur de
rendre totalement fausses les informations ci-dessus données...
Hé oui... on vas parler des musics soundchips... so, the show
must go on...
I - Qu'est ce qu'une musique sound-chip?
----------------------------------------
Une musique soundchip est le type le plus répandu de musique
sur ST(f), mais qui tente (heureusement) à disparaitre (tout du
moins dans les démos... En effet, ces musiques sont entièrement
générés par le processeur sonore Yamaha sur trois voies que tout
ST (et Falcon, par ailleurs...) possède... A l'opposé, se trouve
les musiques soundtracks (voir autre article...) qui elles, sont
composées d'instrument digitilasées sur quatre voies... On les
appelle, dans le jargon des démos et meme du jeu, les zax bip-bip
inutile donc de vous faire un dessin... c'est à cause d'elle que
le ST fait si mauvaise figure par rapport à l'Amiga (et on
comprend les Amigaga quand on voit les zax (soundtracks) dont ils
se targue...) Mais bon... voilà... elle ont un avantage énorme:
elle ne prennent pas (ou peu de temps machine...), autant dire
que l'on à presque la totalité du temps de libre, ce qui est loin
d'etre le cas pour les digits et modules (sur ST). C'est parceque
le temps machine est primordiale en GFA que je vais vous
apprendre à les utiliser...
II - Comment les utiliser?
--------------------------
En général, elle sont constitués de 3 routines différentes:
une d'initialisation, un player appelée toute les VBL (chaque
fois que l'ioniseur d'écran a fini d'envoyer les électrons par
le tube cathodique) & une autre qui stoppe le son (bien que cette
dernière soit rarement utilisée...).Il se peut qu'il y ai +sieurs
musiques dans le meme fichier (comme pour les musax de madmax
(le tristement célebre)) pour une taille allant de 4 à 20 Ko max.
Le but de la manoeuvre étant d'initialiser la zic et de la jouer
tout les 50eme de seconde... tout ça serait bien si il n'y avait
pas différent types de fichiers soundchips (à la guise des zicos)
La routine fournie propose de jouer la plupart des musiques
existente, en faisant simplement changer ce que l'on appele
l'init et la valeur VBL (init% et vbl% dans le programme...),
voilà les offsets des principaux formats:
-Megatizer (Jedi/SCT1), Mad Max (/TEX from The Union), An Cool
(/TCB), Ens et certaines Lap (/Next):
INIT:0 VBL:8
-Count Zero (/Electronic Image from Inner Circle):
INIT:0 VBL:6
-Big Alec (Delta Force from The Union), Tao (/ACF) et Ben
Daglish: INIT:0 VBL:4
-Reanimators (Mr Frazer, Beast):
INIT:0 VBL:10
- Lap 1991 (rare...): INIT:0 VBL:22
- David Wittacker (offsets changeant très souvent...):
INIT:0 VBL:0E (en général...)
Voilà pour les plus connues...
passons au listing, il est ci-dessous ainsi que sur la disquette
(que ne ferais t'on pas pour nos lecteurs...)
III - La routine...
-------------------
CLS ! éfface l'ecran
init%=0 ! valeur d'initialisation de la musique
vbl%=6 ! valeur en vbl
'
FILESELECT "a:\*.mus","",file$ ! sélectionne un fichier...
IF EXIST(file$)=0 ! il existe?
bye_bye ! non, alors aurevoir...
ENDIF ! c'est clair...
OPEN "i",#1,file$ ! ouvre le fichier
len%=LOF(#1) ! prend la taille
RESERVE FRE(0)-len% ! réserve de la mémoire
music%=MALLOC(len%) ! attribue la mémoire
BGET #1,music%,len% ! charge le fichier
CLOSE #1 ! ferme le fichier: c+ propre
DIM r%(16) ! registres A(X) et D(X) pour RCALL
super%=GEMDOS(&H20,L:0) ! passe en mode superviseur
POKE &H484,BCLR(PEEK(&H484),0) ! coupe le clic du clavier
ON ERROR GOSUB bye_bye ! en cas d'erreur ou
ON BREAK GOSUB bye_bye ! d'arret pendant l'éxecution
HIDEM ! cache la souris
OUT 4,18 ! et on la bloque
play(1) ! joue la premiere musique
RETURN
PROCEDURE play(x|)
IF LONG{&H4DA}=music%+vbl%
GOSUB music_off
ENDIF
'
r%(0)=x|
RCALL music%+init%,r%()
{&H4DA}=music%+vbl%
RETURN
PROCEDURE music_off ! procédure d'arret de la musique
{&H4DA}=0 ! VBL à zéro...
WAVE 0,0 ! coupe le générateur sonore
RETURN
PROCEDURE bye_bye ! sortie...
CLS ! ???
GOSUB music_off ! on éteint la musique
POKE &H484,BSET(PEEK(&H484),0)! remet le clic
~GEMDOS(&H20,L:super%) ! on repasse en mode utilisateur
~MFREE(music%) ! libère la mémoire...
RESERVE fre% ! et on rend la mémoire du début
ON ERROR ! on ré-installe la routine d'erreurs GEM
ON BREAK ! annule le sauit en cas de coupure
SHOWM ! coucou revoila la souris
OUT 4,8 ! et en plus elle bouge
'
EDIT ! salut et bonne année a tous
RETURN
IV - La fin...
--------------
Voilà... c'est tout... on pourrait me faire remarquer qu'il n'y a
pas de routine assembleur mais que l'on utilise tout de meme un
RCALL (équivallent de CALL mais avec accès aux registres
d'adresse et de données (A(X) et D(X))...) mais c'est faux, il y
en a bien une... celle contenue dans le fichier musique... hé
oui... vous croyez tout de meme pas que l'on vas la réécrire deux
foix, non mais...
Bon... alors une question qui vous trote dans la tete? passez sur
RTEL en bal GOLDEN FINGERS... I'm waiting for you...
Golden Fingers/Supremacy pour Bazaar IV n°1
routine de zax dans le domaine public...