Página 3 de 4

Re: WYZTracker 2

Publicado: Mié, 28 Sep 2016, 23:26
por Haplo
Vale, ya he conseguido echarlo a andar :) Voy a ver si lo integro con más cuidado esta vez.

En la web existe un SFX.asm que supuestamente es para añadirlo al player y poder reproducir sonidos fx, ¿es funcional?¿con qué programa se hacen esos fx?¿valdría para los archivos que genera el AY Sound FX Editor?

Re: WYZTracker 2

Publicado: Mié, 28 Sep 2016, 23:30
por AugustoRuiz
En teoría los sfx siguen el mismo formato q las percusiones... hablo de memoria, pero creo que es así...

Re: WYZTracker 2

Publicado: Vie, 30 Sep 2016, 19:00
por Haplo
Tras descubrir un error bastante tonto que me ha mareado varios días, ya todo funciona como debe.

Ya que estaba, le he querido meter la rutina WYZPLAYER_FADE_OUT.ASM, pero falta la etiqueta "fade_player_off"
¿está sin acabar o es una errata?.

Re: WYZTracker 2

Publicado: Vie, 07 Oct 2016, 17:42
por Haplo
Me respondo a mí mismo, es una errata, en vez de

Código: Seleccionar todo

jp z,fade_player_off   


debería ser:

Código: Seleccionar todo

jp z,player_off


Lo que sí he observado es que tarda mucho en hacer el fade, he tenido que tocar el código para que tarde menos (para que sea cosa de 2-3 segundos. Otra cuestión importante es que no afecta al volumen de los efectos, que siguen sonando como si tal cosa hasta que cesa la música. :(

Re: WYZTracker 2

Publicado: Jue, 13 Oct 2016, 19:04
por Haplo
Tras pelearme bastante y probar cosas, ya me funciona el fadeout aceptablemente, es un poco chapuza pero me vale.

Código: Seleccionar todo

start_fade_out:   ld a,12         ;valor fijado de ejemplo
      ld (decay),a
      ld (decay_temp),a
      ld a,0
      ld (fade_meter),a
      ld hl,fade
      set 0,(hl)

      ret
fade_out:      
      
      ld hl,decay_temp
      dec (hl)
      jr nz,fadeojp0
      ld a,(decay)
      ld (hl),a
      ld a,(fade_meter)
      cp 10         ;fade out completo
      jp z,player_off      ;fade_player_off
      inc a
      ld (fade_meter),a
fadeojp0:      ld a,(fade_meter)
      ld c,a
      ld hl,psg_reg+8
      ld b,3
fadeobc0:      ld a,(hl)
      sub c
      jr nc,no_reset_vol
      xor a

no_reset_vol:   ld (hl),a
      inc hl
      djnz fadeobc0
      ld hl,(sfx_v)
      ld a,(hl)
      inc c
      inc c
      sub c
      ld (hl),a
      
      ret


Ahora quería poder colocar la rutina y las músicas en la ram 3 y así liberar espacio del bloque principal. El caso es que no hay manera, se me cuelga que da gusto. Lo que hago es ubicarla a partir de 49152 y en cada interrupción, pagino a la ram 3 y salto a la rutina, restaurando después de volver. Es exactamente lo mismo que hago con el player de shiru y no me da problemas.
He comprobado los saltos, direcciones de punteros y buffers y no encuentro errores. La única manera de que me funcione es ubicando la rutina entera por debajo de 49152, dando igual si las músicas las pongo en ram3 o no (paginando antes claro).

Otra cuestión: algunas canciones funcionan y otras no, supongo que es porque están hechas con otra versión del tracker, lo que me extraña es que el tracker sí las reproduce. Así que debe ser algo que falla al exportar a .asm y .mus

En definitiva, que la rutina de música me está dando ruido :D

Re: WYZTracker 2

Publicado: Jue, 13 Oct 2016, 19:11
por AugustoRuiz
Si el compilador que usas utiliza IX e IY como punteros a variables y demás, asegurate de guardar esos registros antes de llamar a la rutina y restaurarlos después.

En cuanto a la exportación, todas deberían exportarse con la misma versión, y todas las canciones deberían usar los mismos instrumentos, con los mismos id's, si no los cargas al vuelo.

Probablemente pete si la tabla de instrumentos tiene 4 instrumentos y la canción hace referencia a un instrumento con ID=5. Y lo mismo para los fx.

Re: WYZTracker 2

Publicado: Jue, 13 Oct 2016, 19:44
por Haplo
Compilador? a qué te refieres?
Ya digo que funciona perfectamente si la ubico fuera de ram paginada, por lo que lo de IX e IY no debería afectar. De todas maneras todos los registros se guardan al entrar a la interrupción y se restauran al salir, en eso no hay problema.
Es de estas cosas que te parecen absurdas que no funcionen con tan mínimos cambios. Tiene que ser algo increíblemente tonto.

Re: WYZTracker 2

Publicado: Jue, 13 Oct 2016, 20:04
por AugustoRuiz
Es raro lo que comentas porque el código de wyz, a diferencia del arkos, es reubicable.

En que lenguaje estás desarrollando? Directamente en asm?

Re: WYZTracker 2

Publicado: Jue, 13 Oct 2016, 20:23
por Haplo
Si, casi todo en asm, con algo de boriel zxbasic para facilitar cambios y pruebas. A ver si saco un rato y te mando un test con los 2 modos, el que funciona y el que no, seguramente verás algo que yo no veo.

Re: WYZTracker 2

Publicado: Vie, 14 Oct 2016, 10:53
por Haplo
Ayer se me ocurrió poner los buffers y variables antes de 49152, dejando la rutina a partir ahí y funciona :shock: