¿Como lo has averiguado?, ¿algún debugger en particular?. Yo es que juraría que tengo todos los accesos al PSG centralizados en ROUT, miraré más a fondo a ver.
¡Gracias por el chivatazo!
Bueno, yo tengo la rutina de sonido aparte, muy sencilla, y andaba mirando los registros una y otra vez, y estaban todos bien. Pero resulta que el fallo no estaba en los datos sino en un cacho de la rutina que le faltaba un inc (hl)
Por lo tanto hacia eso, leer como registro lo que en realidad era un dato. La verdad no se ni como es que sonaba
Y al final lo he visto volviendo a repasar la rutina. Como hacia dias que no lo tocaba, no me acordaba como narices iba y repasaba instruccion por instruccion, y he visto que algo no me cuadraba y efectivamente era ese inc(hl) desaparecido.
Como debugger uso el del NO$MSX. Tienes el debug normal que te muestra la ram (en hex y asm) y los registros del Z80, pero luego dentro de el en otra opcion esta el I/O Map, que te muestra todos los registros del VDP (msx1 y msx2), del psg, de los puertos del disco, el PIO, el RTC, el memory mapper, las interrupciones.... Fantastico si sabes para que son todos
yo con los del vdp (y ahora a base de ostias el psg), y poco mas ya tengo