MSX Village forum

La Place des Développeurs La quête pour jouer de la musique en assembleur

z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 987

Le 26/01/2015 à 12h54

Reprise du message précédent

Metalion :
z80,



Pour séquencer une note, tu n'as pas le choix :



. soit tu utilises l'interruption du VDP à 50Hz ou 60Hz (il n'y a pas d'interruption hardware plus rapide dans un MSX)

. soit temporises dans le programme, par la succession des instructions. Plus précis et plus rapide, mais nettement plus compliqué.




Heu... ça je savais déjà :)

Mais c'est cool de confirmer ;)



Mon questionnement est centré sur la dérive temporelle note à note et encore plus de mesure en mesure.

Les arrondis temporels lié à l'utilisation de la VBL comme unité de temps la plus fine nous amène à cumuler tant d'erreur qu'il faut le prendre en compte pour recaler le temps sur chaque voix mais aussi de veiller que les voix restent synchro à minima sur les mesures.

Sinon musicalement ça va être n'importe quoi après deux ou trois mesure.

Je pense même que dès le début de la deuxième mesure on devrait être capable d'entendre que quelque chose ne se passe pas bien.

D’où mon idée de regarder dans la ROM MSX comment ce problème est géré.


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1502

Le 27/01/2015 à 14h15
z80 :
Mon questionnement est centré sur la dérive temporelle note à note et encore plus de mesure en mesure.


OK je comprends mieux ta question.

J'ai le BIOS désassemblé pour un MSX1, si ça t’intéresse ...



EDIT : Je te le mets en pièce jointe.



/upload/bios.txt Edité par Metalion Le 27/01/2015 à 17h24


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 28/01/2015 à 13h08
J'ai l'impression que le BIOS traite comme en Basic, il y a l'air d'y avoir la gestion d'une "queue" où sont stockées les notes et paramètres comme volume et tempo (voir GICINI et STRTMS).
Il faut indiquer quelle type de chaîne traiter avec l'adresse de la région de communication F958 (MCLFLG), il peut s'agir des chaînes utilisées par DRAW ou PLAY.
Les chaînes ont l'air de faire au maximum 128 octets et ont l'air d'être aussi stockées en région de communication en F975, F9F5 et FA75.

Ca m'a l'air bien compliqué !! :moue


MSX un jour, MSX toujours ! :D
Site web    
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 987

Le 28/01/2015 à 18h52
Ça c'est normale vu que le Basic fait appelle au BIOS pour traiter les play... Je ne suis pas plus étonné que ça.

C'est tout l'art du reverse engineering ! Comprends du code écrit par un autre avec peu voir pas de commentaires.

C'est comme valider des fonctions Simulink quand tu n'as pas "écrit " le dit Simulink et que tu n'as pas l'expression de besoin et les contraintes qui ont été fournies au concepteur... Edité par z80 Le 28/01/2015 à 18h57


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie