diff --git a/src/sound/snd_ad1816.c b/src/sound/snd_ad1816.c index c989b9fad..4e929794d 100644 --- a/src/sound/snd_ad1816.c +++ b/src/sound/snd_ad1816.c @@ -129,12 +129,12 @@ ad1816_update_mastervol(void *priv) if (ad1816->iregs[14] & 0x8000) ad1816->master_l = 0; else - ad1816->master_l = ad1816_vols_5bits[(ad1816->iregs[14] >> 8) & 0x1f] / 65536.0; + ad1816->master_l = ad1816_vols_5bits[((ad1816->iregs[14] >> 8) & 0x1f) >> 1] / 65536.0; if (ad1816->iregs[14] & 0x0080) ad1816->master_r = 0; else - ad1816->master_r = ad1816_vols_5bits[(ad1816->iregs[14]) & 0x1f] / 65536.0; + ad1816->master_r = ad1816_vols_5bits[((ad1816->iregs[14]) & 0x1f) >> 1] / 65536.0; } void @@ -327,12 +327,12 @@ ad1816_poll(void *priv) if (ad1816->iregs[4] & 0x8000) ad1816->out_l = 0; else - ad1816->out_l = (int16_t) ((ad1816->out_l * ad1816_vols_6bits[(ad1816->iregs[4] >> 8) & 0x3f]) >> 16); + ad1816->out_l = (int16_t) ((ad1816->out_l * ad1816_vols_6bits[((ad1816->iregs[4] >> 8) & 0x3f) >> 1]) >> 16); if (ad1816->iregs[4] & 0x0080) ad1816->out_r = 0; else - ad1816->out_r = (int16_t) ((ad1816->out_r * ad1816_vols_6bits[ad1816->iregs[4] & 0x3f]) >> 16); + ad1816->out_r = (int16_t) ((ad1816->out_r * ad1816_vols_6bits[(ad1816->iregs[4] & 0x3f) >> 1]) >> 16); if (ad1816->count < 0) { ad1816->count = ad1816->iregs[8];