diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c index 290c1398cf3..9085c87a231 100644 --- a/src/emu/sound/ay8910.c +++ b/src/emu/sound/ay8910.c @@ -142,7 +142,7 @@ has twice the steps, happening twice as fast. #define TONE_PERIOD(_psg, _chan) ( (_psg)->regs[(_chan) << 1] | (((_psg)->regs[((_chan) << 1) | 1] & 0x0f) << 8) ) #define NOISE_PERIOD(_psg) ( (_psg)->regs[AY_NOISEPER] & 0x1f) #define TONE_VOLUME(_psg, _chan) ( (_psg)->regs[AY_AVOL + (_chan)] & 0x0f) -#define TONE_ENVELOPE(_psg, _chan) (((_psg)->regs[AY_AVOL + (_chan)] >> 4) & (_psg)->env_enabled_mask) +#define TONE_ENVELOPE(_psg, _chan) (((_psg)->regs[AY_AVOL + (_chan)] >> 4) & (((_psg)->device->type() == AY8914) ? 3 : 1)) #define ENVELOPE_PERIOD(_psg) (((_psg)->regs[AY_EFINE] | ((_psg)->regs[AY_ECOARSE]<<8))) /************************************* @@ -184,7 +184,6 @@ struct _ay8910_context /* init parameters ... */ int step; int zero_is_off; - int env_enabled_mask; UINT8 vol_enabled[NUM_CHANNELS]; const ay_ym_param *par; const ay_ym_param *par_env; @@ -438,7 +437,7 @@ INLINE UINT16 mix_3D(ay8910_context *psg) int indx = 0, chan; for (chan = 0; chan < NUM_CHANNELS; chan++) - if (TONE_ENVELOPE(psg, chan)) + if (TONE_ENVELOPE(psg, chan) != 0) { if (psg->device->type() == AY8914) // AY8914 Has a two bit tone_envelope field { @@ -665,7 +664,7 @@ static STREAM_UPDATE( ay8910_update ) if (psg->streams == 3) { for (chan = 0; chan < NUM_CHANNELS; chan++) - if (TONE_ENVELOPE(psg,chan)) + if (TONE_ENVELOPE(psg,chan) != 0) { if (psg->device->type() == AY8914) // AY8914 Has a two bit tone_envelope field { @@ -770,7 +769,6 @@ void *ay8910_start_ym(void *infoptr, device_type chip_type, device_t *device, in else info->streams = 3; - info->env_enabled_mask = (chip_type == AY8914) ? 3 : 1; // AY8914 Has a two bit tone_envelope field if (chip_type == AY8910 || chip_type == AY8914 || chip_type == AY8930) {