--- np2/sound/opngenc.c 2003/10/18 07:28:50 1.2 +++ np2/sound/opngenc.c 2003/10/23 15:38:13 1.5 @@ -169,6 +169,18 @@ void opngen_setvol(UINT vol) { #endif } +void opngen_setVR(BYTE channel, BYTE value) { + + if ((channel & 3) && (value)) { + opncfg.vr_en = TRUE; + opncfg.vr_l = (channel & 1)?value:0; + opncfg.vr_r = (channel & 2)?value:0; + } + else { + opncfg.vr_en = FALSE; + } +} + // ---- @@ -392,10 +404,10 @@ void opngen_reset(void) { ch++; } for (i=0x30; i<0xc0; i++) { - opngen_setreg((BYTE)i, 0xff, 0); - opngen_setreg((BYTE)i, 0xff, 3); - opngen_setreg((BYTE)i, 0xff, 6); - opngen_setreg((BYTE)i, 0xff, 9); + opngen_setreg(0, (BYTE)i, 0xff); + opngen_setreg(3, (BYTE)i, 0xff); + opngen_setreg(6, (BYTE)i, 0xff); + opngen_setreg(9, (BYTE)i, 0xff); } } @@ -543,7 +555,9 @@ void opngen_keyon(UINT chnum, BYTE value sound_sync(); opngen.keyreg[chnum] = value; + opngen.playing++; ch = opnch + chnum; + ch->playing |= value >> 4; slot = ch->slot; bit = 0x10; for (i=0; i<4; i++) {