--- xmil/sound/psggenc.c 2004/08/05 11:30:12 1.2 +++ xmil/sound/psggenc.c 2004/08/17 16:52:46 1.6 @@ -4,10 +4,6 @@ #include "sndctrl.h" -// extern int s_cnt; -// extern DWORD basedclk; - - PSGGENCFG psggencfg; const UINT8 psggen_deftbl[0x10] = @@ -91,15 +87,10 @@ void psggen_setreg(PSGGEN psg, REG8 reg, UINT freq; UINT ch; -// if (romeo_exist) { -// juliet2_YMF288A(reg, value, (basedclk * s_cnt / 1600)); -// return; -// } - - reg &= 15; -// if (reg < 14) { -// sound_sync(); -// } + if (reg >= 14) { + return; + } + sound_sync(); ((UINT8 *)&psg->reg)[reg] = value; switch(reg) { case 0: @@ -115,6 +106,7 @@ void psggen_setreg(PSGGEN psg, REG8 reg, } else { psg->tone[ch].freq = 0; + psg->tone[ch].count = 0; // としておかないとノイズ出ない } break; @@ -131,7 +123,6 @@ void psggen_setreg(PSGGEN psg, REG8 reg, // keydisp_psgmix(psg); psg->mixer = ~value; psg->puchicount = psggencfg.puchidec; -// TRACEOUT(("psg %x 7 %d", (long)psg, value)); break; case 8: @@ -147,7 +138,6 @@ void psggen_setreg(PSGGEN psg, REG8 reg, } psg->tone[ch].puchi = psggencfg.puchidec; psg->puchicount = psggencfg.puchidec; -// TRACEOUT(("psg %x %x %d", (long)psg, reg, value)); break; case 11: @@ -163,7 +153,7 @@ void psggen_setreg(PSGGEN psg, REG8 reg, case 13: psg->envmode = psgenv_pat[value & 0x0f]; psg->envvolcnt = 16; - psg->envcnt = 1; + psg->envcnt = 0; break; } }