MSX Village forum

La Place des Développeurs Son PCM sur TURBO-R

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5481

Le 24/01/2015 à 13h31

Reprise du message précédent

GDX :
[quote=ericb59]



Autrement, la page 0 va de 0000h à FFFFh et la page 1 de 10000h à 1FFFFh donc il y aurait juste à ajouter un 1 devant.




10000h ca fait overflow.



J'ai trouvé comment il faut faire, mais je ne comprend pas...



10 screen8:set page 1,1:cls:bload"test,wav",s

20 call pcmplay (@65730!,93000!,0,s)



ca fait la même chose que le programme plus haut, mais avec le sample en page 2



J'ai trouvé les valeurs des adresses un peut au hazard, avec les explications trouvées ici :

http://ngs.no.coocan.jp/doc/wiki.cgi/datapack?page=4%BE%CF+BASIC



dans la partie consacrée à PCMPLAY



si je comrpend bien l'adresse de début c'est 65536+&hc2 (dans mon cas)

mais je ne pige pas comment trouver la taille des sample à jouer...


banniere-ericb59e
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 24/01/2015 à 14h50
J'ai donné deux méthodes différentes car je n'ai jamais utilisé les instructions PCM.
Donc, c'est la méthode avec SETPAGE qui fonctionne. (Le contraire aurait été étonnant.)

Je ne me souviens plus comment réagissent les sprites et la palette de couleurs en Basic. Soit c'est toujours les données de la page 0 (valeur par défaut) qui sont toujours prises en compte (ce qui serait logique avec l'instruction BASE) soit, ce sont les données de la page affichée qui sont prisent en compte.
Tu dois faire des tests pour vérifier. Si ce sont les données de la page 0 qui sont toujours prises en compte (par défaut), en page 1, tu auras toute la zone des lignes de 212 à 255 de libre (de 0D400h à 0FFFFh) sur la page 1. Edité par GDX Le 24/01/2015 à 14h52
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5481

Le 24/01/2015 à 15h06
désolé GDX, mais je ne te suis pas... :(

10 screen 8:set page 1,1:bload"test,wav",s
20 call pcmplay (@&hc2,&h6f40,0,s)

ne me joue pas mon sample qui est chargé en page 1


Le problème est d'accéder aux adresses VRAM de la page 1...
Je ne sais toujours pas comment faire un VPOKE en page 1... J'imagine que c'est la même méthode d'accès à la mémoire que ça soit pour un VPOKE ou un PCMPlay....


banniere-ericb59e
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 24/01/2015 à 16h02
Finalement, c'est la deuxieme méthode qui est bonne mais comme le Basic ne peut pas gérer une valeur hexadécimale au dessus de 0FFFFh (valeur sur 16bit). Il faut indiquer les valeurs au dessus en décimale.

Encore une bizarrerie à la Microsoft.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie