Et qui sait, ça servira peut-être à quelqu'un.
Donc merci à Anata, car sans lui, je n'aurais jamais trouvé le truc et j'aurais abandonné (faut dire que je n'étais pas encore sous pression )
Sujet : utiliser des .wav dans ses développement Lynx
Outils nécessaire :
- wav2lsf
- bin2c
- compilo Lynx...
Première chose, procurez un fichier .wav (pas trop gros quand même)
L'idéal semblant être 8 bits mono, 8khz (de toutes manières, la Lynx ne peut pas faire beaucoup mieux, je rappelle que la stéréo de la Lynx 2 n'est pas une vraie stéréo, on peut juste affecter chacun des 4 canaux sonores à l'haut-parleur de droite ou gauche).
1/ convertir le fichier .wav
wav2lsf test.wav -o test.lsf
2/ convertir le fichier .lsf (Lynx Sound Format) en fichier .h
bin2c -i test.lsf -o test.h -l test -c
explication des options :
- i test.lsf : nom du fichier en entrée
- o test.h : fichier en sortie
- l test : nom du tableau contenant le sample
- c : on génère au format c
3/ voilà, vous avez maintenant un fichier .h à inclure dans votre source c
Seule contrainte : éditez le fichier .h, la première ligne est sous la forme :
unsigned char test[16256] =
ou le nombre (16256) correspond à la longeur du tableau, enlevez cette information, i lvous reste donc :
unsigned char test[] =
4/ votre source c ressemble à ça :
#include <lynx.h> #include <lynxlib.h> #include "test.h" #define BUTTON_OUTER 0x01 #define BUFFER1 0x9000 // assembler vertical retrace syncronisation routine void Vsync() { #asm vretrace: lda $fd0a bne vretrace #endasm } main() { InitIRQ(); CLI; SetBuffers(BUFFER1,0,0); SmpInit(0,1); EnableIRQ(1); for( ; ; ) { Vsync(); if(joystick & BUTTON_OUTER) SmpStart(test, 0); } }
Le sample est joué à l'appui sur le bouton.
Je vous laisse consulter les docs BLL pour en savoir plus sur les fonctions Smp*
5/ remarques diverses
- à priori, évitez les samples trop long, la restitution étant plutôt aléatoire
- je me suis fait un fichier wav2h.bat pour réaliser plus facilement les opérations 1 et 2 :
@echo off cls wav2lsf "%1.wav" -o "%1.lsf" bin2c -i "%1.lsf" -o "%1.h" -l %1 -c
qui s'utilise comme ça : wav2h test
- si vous voulez wav2lsf ou bin2c :
http://fadest.free.fr/DevLynx/tutowav.zip
Il y a les outils, le sample (quelques secondes converties en 8bits mono depuis un mp3 rippé d'un de mes CD), les sources et le .o pour Handy.
J'ai remarqué que le sample restitue mal certaines fois, réessayez dans ce cas
- à vous de jouer, mais n'oubliez pas que si vous sonorisez votre jeu, vous empécherez les braves gens (ceux là même qui ralent contre les jeux silencieux sur ce forum) de dormir à la prochaine JC
- Vince, tu peux mettre se message en annonce si tu le juges utile...
- Vince, tu peux effacer ce message si tu préfères, mais laisses le au moins le temps que le message privé qui suit soit lu par la personne concernée
[Message privé]
Cool, maintenant que je sais jouer des .wav, j'aurais de beaux graphs
[/Message privé]
[Edit] : ajout du lien vers les binaires et les sources