miércoles, 19 de noviembre de 2008

Nueva versión del replayer de PT3

Buenas:

Pues eso mismo. Debido a que una de las nuevas músicas que tengo para el QBIQS utiliza la tabla 1, me he visto en la necesidad de volver al código del replayer de PT3 para solucionarlo.

En un principio probé a comprimir las tablas con el BitBuster pero no se comprimen bien, así que deseché esa idea enseguida. La segunda aproximación fue meter las 4 tablas en ROM y cambiar el código de forma que se pasase la dirección de la tabla buena mediante un puntero. Funciona bien, pero ocupa bastante más (no olvidemos que cada tabla ocupa 192 bytes = 2 bytes/nota * 12 notas/octava * 8 octavas).

Así que he vuelto al código original del replayer, ya que éste crea "on the fly" las tablas según la información que tengamos en el fichero PT3. Así que me he puesto un rato... et voilà, ¡nueva versión del replayer!

Diferencias con la anterior versión:
  • Admite cualquier tabla en lugar de sólo una (por defecto viene la tabla 2 en el código).
  • Ocupa 1548 bytes en ROM en lugar de 1448 bytes (100 bytes extra). La primera versión que publiqué ocupaba 1528 bytes en ROM, pero tras volver al código vi que había datos que no se utilizaban nunca, por eso ahora la versión con tabla fija está optimizada.
  • Necesita 576 bytes en RAM en lugar de 384 (194 bytes extra = tabla en RAM + gancho para parchear código automodificable).
  • Hay que quitar los primeros 99 bytes de los ficheros PT3 en lugar de los primeros 100 bytes (en el byte 99 es, precisamente, donde está la información de la tabla utilizada).
Bueno, hay que puntualizar que aunque el aumento de tamaño en ROM no es significativo (aproximadamente un 7% extra), pero quizá 194 bytes de más en RAM (un 50% extra) resulten problemáticos si andamos algo apuradillos de RAM.

Con respecto al código, he cuidado que esté lo más parecido al programa original y he incluído algunos (no tantos como me gustaría) comentarios en la parte nueva que explican un poco por donde va el proceso.

Podéis descargar el fichero en el enlace que hay en la parte derecha. Ahora es vuestro turno: probadlo, usadlo, comentadme si os es útil... :D

No hay comentarios: