Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: j4mk3 en 01 de Octubre de 2009, 08:59:06 pm



Título: Parar el PLAY
Publicado por: j4mk3 en 01 de Octubre de 2009, 08:59:06 pm
Una pregutna muy rapida para los que controlan el MSXBASIC.

Tengo una canción sonando de fondo, al personaje le dan un golpe. Tengo que parar el PLAY que está en marcha para poner otro PLAY con el FX.
¿Hay alguna marera de parar un PLAY que ya está sonando que no sea metiendole un BEEP en la ejecución?
¿Algun DEF USR ? ¿Un Poke?

"JEEELP "


Título: Re: Parar el PLAY
Publicado por: j4mk3 en 01 de Octubre de 2009, 09:13:43 pm
Me autocontesto
DEFUSR1 =&H90

A=USR1(0)

si, me falla algunas veces. :(


Título: Re: Parar el PLAY
Publicado por: mohai en 01 de Octubre de 2009, 11:56:39 pm
¿Has probado a tocar el registro mezclador del PSG y deshabilitar todo, ruido y melodía?


Título: Re: Parar el PLAY
Publicado por: j4mk3 en 02 de Octubre de 2009, 10:03:18 am
Mohai,
El Play actua como un buffer y "man que" toques con SOUNDS, la rutina coge bytes y reentra al PSG. Solo he encontrado esta rutinica de la BIOS que elimina el buffer del PLAY.
más sugerencias ? ;)


Título: Re: Parar el PLAY
Publicado por: mohai en 10 de Octubre de 2009, 02:58:00 pm
Mohai,
El Play actua como un buffer y "man que" toques con SOUNDS, la rutina coge bytes y reentra al PSG. Solo he encontrado esta rutinica de la BIOS que elimina el buffer del PLAY.
más sugerencias ? ;)


Claro, es verdad.
Además quieres mandar otro PLAY despues de cortar el otro.

Supongo que la solución sería engañar al BASIC y trampear el buffer del PLAY. Supongo que en alguna parte dice dónde acaba con un valor cero o algo así (ignoro cómo funciona el buffer de PLAY) o la catidad de notas que quedan por tocar... luego saltar al vector de PLAY o esperar una interrupcion...

Una sugerencia es que mandes un play largo y cotillees que hay en la cola mientras escuchas y luego vuelvas a cotillear cuando esté en silencio y saques conclusiones.


Título: Re: Parar el PLAY
Publicado por: j4mk3 en 10 de Octubre de 2009, 03:16:47 pm
ya lo solucié mohai , gracias.

la funcion 90h de BIOS cumple perfectamente.

respecto al buffer de play q dudas...sino recuerdo mal en cierta MSX-CLUB con un articulo llamado "musica en codigo maquina" decia q el PLAY tiene en RAM 128 bytes de buffer por canal, es decir 128*3 = 384 bytes por ahí guardadetes.

Nah! pero de verdad, la 90h va bien para lo q queria y lo hace super rapido.
Lo utilizo en el juego que he presentado pal concurso de www.konamito.com
Ahí podeis ver un ejemplo de uso.