--- xmil/sound/opmgenc.c 2004/08/05 11:30:12 1.2 +++ xmil/sound/opmgenc.c 2005/02/04 06:42:12 1.7 @@ -1,13 +1,12 @@ #include "compiler.h" + +#if defined(SUPPORT_TURBOZ) || defined(SUPPORT_OPM) + #include #include "sound.h" #include "sndctrl.h" -// extern int s_cnt; -// extern DWORD basedclk; - - #define OPM_ARRATE 399128L #define OPM_DRRATE 5514396L @@ -122,6 +121,11 @@ void opmgen_initialize(UINT rate) { detune2table[3] = D2(3.0); } +void opmgen_setvol(UINT vol) { + + opmcfg.fmvol = vol; +} + // ---- @@ -179,16 +183,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; } @@ -381,11 +389,7 @@ void opmgen_setreg(REG8 reg, REG8 value) OPMCH *ch; OPMSLOT *slot; -// if (romeo_exist) { -// juliet2_YM2151W(reg, value, (basedclk * s_cnt / 1600)); -// return; -// } - + sound_sync(); c = reg & 7; ch = opmch + c; slot = ch->slot + fmslot[(reg >> 3) & 3]; @@ -471,3 +475,5 @@ void opmgen_setreg(REG8 reg, REG8 value) } } +#endif +