diff --git a/src/devices/apu.c b/src/devices/apu.c index c3034dc..58b5c44 100644 --- a/src/devices/apu.c +++ b/src/devices/apu.c @@ -85,10 +85,11 @@ Uint8 apu_get_vu(Apu *c) { int i; - Sint32 sum[2]; + Sint32 sum[2] = {0, 0}; if(!c->advance || !c->period) return 0; for(i = 0; i < 2; ++i) { - sum[i] = envelope(c, c->age) * c->volume[i] / 0x800; + if(!c->volume[i]) continue; + sum[i] = 1 + envelope(c, c->age) * c->volume[i] / 0x800; if(sum[i] > 0xf) sum[i] = 0xf; } return (sum[0] << 4) | sum[1];