BEEPOLA / 1bit Music : Phaser1, Synth Drums replayer Beta port from ZX to MSX by MSXKUN
 
Primero, ¿Que es Beepola? Es un tracker gratuito para Windows cuya peculiaridad es que genera sonido de 1bit, emulando asi el beeper del spectrum 48k (o de PCs viejunos): http://freestuff.grok.co.uk/beepola/

A raiz de una compo en Cultura Chip (http://foro.culturachip.org/viewtopic.php?id=484) vi que ademas de generar un WAV con la musica, podia generar ficheros que el mismo Spectrum puede cargar y playear. Y no solo eso, ademas tambien puede generar el codigo fuente del replayer!

Como me picaba la curiosidad de si podria adaptar el codigo (al fin y al cabo es Z80 y el MSX tb tiene una salida de 1bit) le eche un ojo. Y, asi, lo que hecho es un pequeño y rapido port del replayer de musica 1bit que genera el programa Beepola. De hecho, tiene varios motores de musica, cada cual con su replayer. Este es el modo Phaser1, Synth Drums, que es el primero al que eche un vistazo y ha resultado facil de convertir a MSX.

Basicamente el Spectrum genera sonido 1bit por el bit 4 del puerto $FE. El MSX puede hacer lo mismo con el bit 7 del puerto $AA (PPI). Esa es la idea.

El problema es que pasar ese bit4 al bit7 requiere alguna instruccion extra, aparte de cambiar el numero de puerto (que ya es irrelevante) y, por seguridad, ya que el PPI controla el LED de la tecla CAPS, la lectura de teclado y el cassette, conviene enmascarar esos bits para no tocarlos. No es solo escribir a pelo. Con ello, el uso de CPU es mayor y el timing (que afecta al tempo y frecuencia de cada tono) ya no es el mismo.

Por ahora me conformo conque suene. Y en una segunta revision he optimizado un poco el codigo, pero todavia seria mejorable y se podria conseguir un timing mejor.

Dejo aqui un fichero con el replayer+musica para quien lo quiera probar. Como digo, es una beta, es optimizable. Ademas, usa el PPI intensivamente y, en caso de haber metido la gamba, no me hago responsable de ningun daño :D Cuelgo tb un DSK por si se quiere probar en emulador, preservando asi la integridad del MSX ;)

Nota: La musica viene en los ejemplos del Beepola.

Bajar: DSK / FICHEROS SUELTOS

** Actualizado a la beta 0.2 - Parece que el timing ha mejorado, he cambiado el codigo para no tener que añadir instrucciones extra durante el proceso del sonido, de manera que ha ganado velocidad (si bien seguramente no este 100% perfecto).


 


 

Paxanga Soft