'lut !
Je l'avais "écrit" pour WLA-DX, qui utilise des directives spéciales et propres aux consoles que Tniasm ne connait pas, d'où les erreurs. Tu peux surement t'arranger pour que ça marche avec Tniasm, mais je sais pas ce dont il est capable.
La table SampleStarts correspond bien aux adresses de début et de fin des samples dans le rom V, mais lues à l'envers (Explosion: $0000 à $0035).
C'est pas vraiment nécessaire de mettre l'adresse de départ de chaque sample puisque c'est forcément le fin du dernier +1, mais ça simplifiait le code donc je l'ai laissé comme ça en attendant...
Les roms V restent juste des gros fichiers sons avec des samples mis bout à bout, il y a donc aucun marqueurs à proprement dit dedans.
Les adresses de début/fin viennent directement du M1 généré par MVSTracker: elles commencent à $500 et sont dans le même ordre. En fait, seul le générateur du rom V peut donner ces pointeurs donc c'est bien ça: Création de V1 avec MVStracker, extraction des pointeurs depuis le M1, copie à SampleStarts et compilation du nouveau M1.
Les adresses effectivement utilisées dans le rom V, c'est celles là *256. Comme les samples sont lus par tranches de 256 octets, ils se sont dit que c'était pas le peine de préciser les 8 derniers bits de l'adresse puisque le départ était forcément à 0 et la fin à 255.
Ce qui fait qu'un départ à $0000 est bien à $000000, et une fin à $0035 est en fait à $0035FF.
Le driver interprète les commandes >$7F comme des lectures de samples (si le bit 7 de la commande est à 1, c'est une demande de sample). Ensuite il vire ce bit, et garde ce qu'il reste, en l'occurence 0 pour $80: donc sample 0
Sinon, ça veut pas particulièrement dire grand chose, tu peux définir toi même la signification des commandes en codant ton driver z80. Les jeux suivent presque tous le même format, mais libre à toi de faire ce que tu veux.
Tu peux même faire des commandes 16 bits en attendant deux octets avec un système de timeout en cas de problème, etc...
C'est ce que je vais faire pour changer la fréquence d'un son dans astrosmash surement.
Pour les samples je savais qu'il y avait quelque chose qui coinçait sur la console, mais pour la FM j'étais pas au courant.
D'après ce que je pige: $81 c'est pour lire une fois, $82 pour lire en boucle, et de $83 à $8F ça arrête la musique ?
Pour l'arrêter ils balancent des "key up" sur les 4 canaux FM d'après les commentaires, mais ça correspond pas trop à la description des registres (faut voir la tête de la doc aussi... c'est peut être moi qui comprend mal).
La solution radicale serait de mettre le volume FM à zéro, et le remonter quand on veut relancer la lecture.
Voilà :3
Zerosquare: Désolé, j'ai pas pu m'en empêcher pour l'alim... Je t'aurais bien montré les 3 diodes en série pour abaisser le 12V mais ça serait méchant de ma part de te rendre malade ;p
Le 5V est lié au 12V, j'ai pas pu faire ça "proprement" en changeant des résistances.
Avec une horreur pareille, j'espère que le circuit d'alim-pignolage d'Snk va prouver son efficacité en cas d'éventuelle montée de tension
