--- np2/sound/psggenc.c 2003/12/08 00:55:33 1.8 +++ np2/sound/psggenc.c 2004/02/03 08:24:40 1.10 @@ -67,13 +67,22 @@ void psggen_reset(PSGGEN psg) { ZeroMemory(psg, sizeof(_PSGGEN)); for (i=0; i<3; i++) { - psg->tone[i].pvol = &psg->envvol; + psg->tone[i].pvol = psggencfg.volume + 0; } for (i=0; ireg)[i]); + } +} + void psggen_setreg(PSGGEN psg, REG8 reg, REG8 value) { UINT freq; @@ -123,10 +132,10 @@ void psggen_setreg(PSGGEN psg, REG8 reg, ch = reg - 8; keydisp_psgvol(psg, (BYTE)ch); if (value & 0x10) { - psg->tone[ch].pvol = &psg->envvol; + psg->tone[ch].pvol = &psg->evol; } else { - psg->tone[ch].pvol = ((BYTE *)&psg->reg) + reg; + psg->tone[ch].pvol = psggencfg.volume + (value & 15); } psg->tone[ch].puchi = psggencfg.puchidec; psg->puchicount = psggencfg.puchidec;