--- xmil/sound/opmgenc.c 2004/08/10 09:06:57 1.4 +++ xmil/sound/opmgenc.c 2004/08/20 12:09:20 1.6 @@ -118,6 +118,11 @@ void opmgen_initialize(UINT rate) { detune2table[3] = D2(3.0); } +void opmgen_setvol(UINT vol) { + + opmcfg.fmvol = vol; +} + // ---- @@ -175,16 +180,20 @@ static void set_algorithm(OPMCH *ch, REG ch->feedback = 0; } - switch(value & 0xc0) { - case 0x40: + switch((value >> 6) & 3) { + case 0: + outd = &opmgen.feedback4; + break; + + case 1: outd = &opmgen.outdl; break; - case 0x80: + case 2: outd = &opmgen.outdr; break; - default: + case 3: outd = &opmgen.outdc; break; } @@ -366,7 +375,7 @@ void opmgen_reset(void) { ch++; } for (i=0x20; i<0x100; i++) { - opmgen_setreg((REG8)i, 0xff); + opmgen_setreg((REG8)i, 0); } }