martes, 20 de enero de 2009

Nueva versión del Replayer ayFX

Hola nuevamente:

Tras corregir el bug que había en el replayer y tener unas cuantas charlas al respecto con AR, hice unas pequeñas modificaciones en el código y aquí está la versión 1.1 como resultado. Aunque sería más correcto hablar de versiones, porque son dos diferentes.

La novedad más importante con respecto a la anterior versión es que ahora necesitamos pasar dos parámetros al llamar a ayFX_INIT: en el registro A el número del sample (de 0 a 255) y en el registro C la prioridad con la que dicho sample sonará (de 0 a 15), siendo 0 la prioridad más alta (el sample siempre sonará a menos que haya otro sonando de prioridad 0) y 15 la más baja (sólo sonará el sample si no hay otro sonando).

Bien. Eso es lo que encontraréis en la versión 1.1f, en la que el volumen de los samples es fijo y está marcado por el propio sample. De ahí el nombre "Fixed Volume" y la letra f en el número de versión.

La otra versión incluye una novedad y es que el volumen está directamente controlado por la prioridad del sample. Es decir, un sample con prioridad 0 tiene un volumen relativo de 15 (máximo volumen del PSG) y un sample con prioridad 15 tiene un volumen relativo de 0 (silencio). Esta idea viene de AR, que la resumió en una frase como:

"Los sonidos más cercanos deben sonar más alto que los lejanos y, además,
tienen que tener una prioridad más alta porque deben tapar a los lejanos"

Sin embargo, dado que los volúmenes del PSG no son lineales, es necesario recurrir a una tabla para que se pueda bajar el volumen del sample de forma adecuada. Esto es lo que hace el replayer del PT3: construye esa tabla y así puede bajar y subir el volumen relativo de los samples sin ningún problema. Puesto que ya tenemos esa tabla si usamos el replayer del PT3, es tontería no utilizarla. Por eso, la versión 1.1r ("Relative Volume") hace uso de esta tabla y la busca bajo la etiqueta VT_ (que es la que usa el replayer del PT3).

Si por un casual no usais dicho replayer, no pasa nada, ya que en el directorio de la versión 1.1r encontraréis un fichero de 240 bytes llamado vt.bin, que contiene, precisamente, la tabla ya creada. Bastará con descomentar las líneas correspondientes en ayFX-ROM.asm y ayFX-RAM.asm y todo irá como la seda.

Como siempre, os pido que probéis el software y que mandéis sugerencias y comentarios para poder mejorarlo.

No hay comentarios: