--- np2/sound/psggenc.c 2003/10/22 14:13:25 1.4 +++ np2/sound/psggenc.c 2003/12/04 13:54:29 1.7 @@ -80,10 +80,10 @@ void psggen_setreg(PSGGEN psg, BYTE reg, UINT ch; reg &= 15; - ((BYTE *)&psg->reg)[reg] = value; if (reg < 14) { sound_sync(); } + ((BYTE *)&psg->reg)[reg] = value; switch(reg) { case 0: case 1: @@ -114,6 +114,7 @@ void psggen_setreg(PSGGEN psg, BYTE reg, keydisp_psgmix(psg); psg->mixer = ~value; psg->puchicount = psggencfg.puchidec; +// TRACEOUT(("psg %x 7 %d", (long)psg, value)); break; case 8: @@ -129,7 +130,7 @@ void psggen_setreg(PSGGEN psg, BYTE reg, } psg->tone[ch].puchi = psggencfg.puchidec; psg->puchicount = psggencfg.puchidec; -// TRACEOUT(("%d", value)); +// TRACEOUT(("psg %x %x %d", (long)psg, reg, value)); break; case 11: @@ -155,3 +156,10 @@ BYTE psggen_getreg(PSGGEN psg, BYTE reg) return(((BYTE *)&psg->reg)[reg & 15]); } +void psggen_setpan(PSGGEN psg, UINT ch, BYTE pan) { + + if ((psg) && (ch < 3)) { + psg->tone[ch].pan = pan; + } +} +